This commit was manufactured by cvs2svn to create tag 'v201102140000'.
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore
deleted file mode 100644
index de8b73f..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.project b/assembly/features/org.eclipse.jpt.assembly.feature/.project
deleted file mode 100644
index 1e211af..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.assembly.feature/build.properties
deleted file mode 100644
index e69de29..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/build.properties
+++ /dev/null
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties
deleted file mode 100644
index 5771e26..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools 
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools - Runtime
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml
deleted file mode 100644
index e375486..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.assembly.feature"
-      label="%featureName"
-      version="2.3.1.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.jpa.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jpa.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.dbws.eclipselink.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/license.html b/assembly/features/org.eclipse.jpt.assembly.feature/license.html
deleted file mode 100644
index 2347060..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.patch/.project b/assembly/features/org.eclipse.jpt.patch/.project
deleted file mode 100644
index b7a2bf5..0000000
--- a/assembly/features/org.eclipse.jpt.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.patch/build.properties b/assembly/features/org.eclipse.jpt.patch/build.properties
deleted file mode 100644
index c381fb2..0000000
--- a/assembly/features/org.eclipse.jpt.patch/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-src.includes = eclipse_update_120.jpg,\
-               epl-v10.html,\
-               feature.properties,\
-               feature.xml,\
-               license.html
diff --git a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html b/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html
deleted file mode 100644
index 0d115f4..0000000
--- a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Build" content="Build">
-   <title>Java Persistence Tools (JTP) 1.0.2 Patches</title>
-</head>
-
-<body>
-
-<h1>JTP 2.0.2 Patches</h1>
-
-<h2>Feature Patched: org.eclipse.jpt.patch</h2>
-<h3>Plugin(s) replaced:</h3>
-<ul><li>org.eclipse.jpt.gen</li></ul>
-<p>Bug <a href='https://bugs.eclipse.org/220297'>220297</a>. Entity generation creates Embeddables with compile errors in some cases.</p>
-
-
-</body></html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.patch/epl-v10.html b/assembly/features/org.eclipse.jpt.patch/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.patch/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.patch/feature.properties b/assembly/features/org.eclipse.jpt.patch/feature.properties
deleted file mode 100644
index a8457ea..0000000
--- a/assembly/features/org.eclipse.jpt.patch/feature.properties
+++ /dev/null
@@ -1,143 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Java Persistence Tools (JTP) Patches
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-Patch(s) for Java Persistence API (JPA) Tools. \n\
-See bug 220297 (https://bugs.eclipse.org/bugs/220297) Entity generation creates Embeddables with compile errors in some cases \n\
-
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006-08 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.patch/feature.xml b/assembly/features/org.eclipse.jpt.patch/feature.xml
deleted file mode 100644
index 4fae92b..0000000
--- a/assembly/features/org.eclipse.jpt.patch/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.patch"
-      label="%featureName"
-      version="1.0.2.qualifier"
-      provider-name="%providerName">
-
-   <description url="http://download.eclipse.org/webtools/patches/">
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="Web Tools Platform (WTP) Patches" url="http://download.eclipse.org/webtools/patches/"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.jpt.feature" version="1.0.2.v200802140100-77-7_CYQCD2CaLYCHCD" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.gen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.patch/license.html b/assembly/features/org.eclipse.jpt.patch/license.html
deleted file mode 100644
index 2347060..0000000
--- a/assembly/features/org.eclipse.jpt.patch/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.sdk/.cvsignore b/assembly/features/org.eclipse.jpt.sdk/.cvsignore
deleted file mode 100644
index bc2abf7..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.bin.dist.zip
-build.xml
-features
-plugins
diff --git a/assembly/features/org.eclipse.jpt.sdk/.project b/assembly/features/org.eclipse.jpt.sdk/.project
deleted file mode 100644
index 821d453..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.sdk</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.sdk/build.properties b/assembly/features/org.eclipse.jpt.sdk/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html b/assembly/features/org.eclipse.jpt.sdk/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.properties b/assembly/features/org.eclipse.jpt.sdk/feature.properties
deleted file mode 100644
index 64b1fab..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/feature.properties
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools project SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project SDK
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.xml b/assembly/features/org.eclipse.jpt.sdk/feature.xml
deleted file mode 100644
index 28dc74f..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/feature.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.sdk"
-      label="%featureName"
-      version="2.3.1.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.sdk/license.html b/assembly/features/org.eclipse.jpt.sdk/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore
deleted file mode 100644
index 2544693..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.bin.dist.zip
-build.xml
-org.eclipse.jpt.tests_1.0.0.*
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project
deleted file mode 100644
index f34899c..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 17acb65..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:05 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties
deleted file mode 100644
index e69de29..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties
+++ /dev/null
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties
deleted file mode 100644
index c98fef2..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml
deleted file mode 100644
index 991e458..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests.assembly.feature"
-      label="%featureName"
-      version="2.3.1.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.tests.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.tests.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html b/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-    
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.tests/.cvsignore b/assembly/features/org.eclipse.jpt.tests/.cvsignore
deleted file mode 100644
index 2544693..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.bin.dist.zip
-build.xml
-org.eclipse.jpt.tests_1.0.0.*
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests/.project b/assembly/features/org.eclipse.jpt.tests/.project
deleted file mode 100644
index 3d1dde6..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 17acb65..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:05 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jpt.tests/build.properties b/assembly/features/org.eclipse.jpt.tests/build.properties
deleted file mode 100644
index 7f47694..0000000
--- a/assembly/features/org.eclipse.jpt.tests/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.tests/epl-v10.html b/assembly/features/org.eclipse.jpt.tests/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.tests/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests/feature.properties b/assembly/features/org.eclipse.jpt.tests/feature.properties
deleted file mode 100644
index 094c58b..0000000
--- a/assembly/features/org.eclipse.jpt.tests/feature.properties
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence API (JPA) project Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence API (JPA) project Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.tests/feature.xml b/assembly/features/org.eclipse.jpt.tests/feature.xml
deleted file mode 100644
index 020fa44..0000000
--- a/assembly/features/org.eclipse.jpt.tests/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests"
-      label="%featureName"
-      version="2.1.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.tests.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.tests/license.html b/assembly/features/org.eclipse.jpt.tests/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/assembly/features/org.eclipse.jpt.tests/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/assembly/features/org.eclipse.jpt/.cvsignore b/assembly/features/org.eclipse.jpt/.cvsignore
deleted file mode 100644
index de8b73f..0000000
--- a/assembly/features/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project
deleted file mode 100644
index b7aaec2..0000000
--- a/assembly/features/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt/build.properties b/assembly/features/org.eclipse.jpt/build.properties
deleted file mode 100644
index 470b4bc..0000000
--- a/assembly/features/org.eclipse.jpt/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-               
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt/epl-v10.html b/assembly/features/org.eclipse.jpt/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/feature.properties b/assembly/features/org.eclipse.jpt/feature.properties
deleted file mode 100644
index c3cd61a..0000000
--- a/assembly/features/org.eclipse.jpt/feature.properties
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform Project
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Eclipse Web Tools Platform Project Tools - Runtime
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006-2009 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt/feature.xml b/assembly/features/org.eclipse.jpt/feature.xml
deleted file mode 100644
index b99f51d..0000000
--- a/assembly/features/org.eclipse.jpt/feature.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt"
-      label="%featureName"
-      version="2.3.1.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt/license.html b/assembly/features/org.eclipse.jpt/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/assembly/features/org.eclipse.jpt/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore
deleted file mode 100644
index bc2abf7..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.bin.dist.zip
-build.xml
-features
-plugins
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project
deleted file mode 100644
index e901372..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt_sdk.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties
deleted file mode 100644
index e69de29..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties
+++ /dev/null
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties
deleted file mode 100644
index 1f4dd69..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project SDK
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml
deleted file mode 100644
index a859b72..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt_sdk.assembly.feature"
-      label="%featureName"
-      version="2.3.1.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.jpa_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jpa.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.dbws.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html
deleted file mode 100644
index 76abfb4..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-   
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/plugins/org.eclipse.jpt/.cvsignore b/assembly/plugins/org.eclipse.jpt/.cvsignore
deleted file mode 100644
index c9401a2..0000000
--- a/assembly/plugins/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/.project b/assembly/plugins/org.eclipse.jpt/.project
deleted file mode 100644
index f51b04c..0000000
--- a/assembly/plugins/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs b/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF
deleted file mode 100644
index a5fbedd..0000000
--- a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt; singleton:=true
-Bundle-Version: 2.3.1.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/assembly/plugins/org.eclipse.jpt/about.html b/assembly/plugins/org.eclipse.jpt/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/assembly/plugins/org.eclipse.jpt/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/about.ini b/assembly/plugins/org.eclipse.jpt/about.ini
deleted file mode 100644
index 588a325..0000000
--- a/assembly/plugins/org.eclipse.jpt/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/assembly/plugins/org.eclipse.jpt/about.mappings b/assembly/plugins/org.eclipse.jpt/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/assembly/plugins/org.eclipse.jpt/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/about.properties b/assembly/plugins/org.eclipse.jpt/about.properties
deleted file mode 100644
index c74a186..0000000
--- a/assembly/plugins/org.eclipse.jpt/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2006.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/assembly/plugins/org.eclipse.jpt/build.properties b/assembly/plugins/org.eclipse.jpt/build.properties
deleted file mode 100644
index 0ccfb0e..0000000
--- a/assembly/plugins/org.eclipse.jpt/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               eclipse32.png,\
-               plugin.properties,\
-               component.xml
diff --git a/assembly/plugins/org.eclipse.jpt/component.xml b/assembly/plugins/org.eclipse.jpt/component.xml
deleted file mode 100644
index 11f133f..0000000
--- a/assembly/plugins/org.eclipse.jpt/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt" fragment="false"/>
-<plugin id="org.eclipse.jpt.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.db" fragment="false"/>
-<plugin id="org.eclipse.jpt.db.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.gen" fragment="false"/>
-<plugin id="org.eclipse.jpt.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.utility" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.gif b/assembly/plugins/org.eclipse.jpt/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/assembly/plugins/org.eclipse.jpt/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.png b/assembly/plugins/org.eclipse.jpt/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/assembly/plugins/org.eclipse.jpt/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jpt/plugin.properties b/assembly/plugins/org.eclipse.jpt/plugin.properties
deleted file mode 100644
index c3c055a..0000000
--- a/assembly/plugins/org.eclipse.jpt/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse.org
diff --git a/common/plugins/org.eclipse.jpt.common.ui/.classpath b/common/plugins/org.eclipse.jpt.common.ui/.classpath
deleted file mode 100644
index 5ee7c76..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="property_files"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jst/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/common/plugins/org.eclipse.jpt.common.ui/.project b/common/plugins/org.eclipse.jpt.common.ui/.project
deleted file mode 100644
index 7fde966..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.common.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/common/plugins/org.eclipse.jpt.common.ui/.settings/org.eclipse.jdt.core.prefs b/common/plugins/org.eclipse.jpt.common.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6e2f423..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Jan 24 09:48:38 EST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index f95b3a9..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,36 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.common.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.jpt.common.ui.JptCommonUiPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.draw2d;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.100,2.0.0)",
- org.eclipse.jst.common.project.facet.ui;bundle-version="[1.3.100,2.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.3.100,4.0.0)",
- org.eclipse.ui.views.properties.tabbed;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.jpt.common.ui,
- org.eclipse.jpt.common.ui.internal;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.jface;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.listeners;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.properties;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.swt;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.util;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.utility;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.utility.swt;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.internal.widgets;x-friends:="org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.ui.jface
-Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/common/plugins/org.eclipse.jpt.common.ui/about.html b/common/plugins/org.eclipse.jpt.common.ui/about.html
deleted file mode 100644
index be534ba..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/common/plugins/org.eclipse.jpt.common.ui/build.properties b/common/plugins/org.eclipse.jpt.common.ui/build.properties
deleted file mode 100644
index 87792f2..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-# Copyright (c) 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-source.. = src/,\
-               property_files/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/common/plugins/org.eclipse.jpt.common.ui/plugin.properties b/common/plugins/org.eclipse.jpt.common.ui/plugin.properties
deleted file mode 100644
index 4caf90e..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-pluginName= Dali Java Persistence Tools - Common UI
-providerName=Eclipse Web Tools Platform
diff --git a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties b/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties
deleted file mode 100644
index aee4769..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-# Copyright (c) 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-Boolean_True=True
-Boolean_False=False
-
-NoneSelected=<None>
-DefaultEmpty=Default
-DefaultWithOneParam=Default ({0})
-
-AddRemovePane_AddButtonText=Add...
-AddRemovePane_RemoveButtonText=Remove
-ChooserPane_browseButton=Browse...
-ClassChooserPane_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case):
-ClassChooserPane_dialogTitle=Class Selection
-PackageChooserPane_dialogTitle=Package Selection
-PackageChooserPane_dialogMessage=&Enter package name prefix or pattern (* = any string, ? =  any character):
-EnumComboViewer_default=Default ()
-EnumComboViewer_defaultWithDefault=Default ({0})
-NewNameStateObject_nameMustBeSpecified=A name must be specified.
-NewNameStateObject_nameAlreadyExists=A query with this name already exists.
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java
deleted file mode 100644
index c249775..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-public class JptCommonUiPlugin 
-	extends AbstractUIPlugin
-{
-
-	// ********** constants **********
-
-	/**
-	 * The plug-in identifier of JPT Common UI support (value {@value}).
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.jpt.common.ui"; //$NON-NLS-1$
-	public static final String PLUGIN_ID_ = PLUGIN_ID + '.';
-
-	// ********** singleton **********
-
-	private static JptCommonUiPlugin INSTANCE;
-
-	/**
-	 * Returns the singleton JPT UI plug-in.
-	 */
-	public static JptCommonUiPlugin instance() {
-		return INSTANCE;
-	}
-
-
-	// ********** logging **********
-
-	public static void log(IStatus status) {
-        INSTANCE.getLog().log(status);
-    }
-
-	public static void log(String msg) {
-        log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null));
-    }
-
-	public static void log(Throwable throwable) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable));
-	}
-
-
-	// ********** construction **********
-
-	public JptCommonUiPlugin() {
-		super();
-		if (INSTANCE != null) {
-			throw new IllegalStateException();
-		}
-		INSTANCE = this;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java
deleted file mode 100644
index 4a7154a..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui;
-
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * A widget factory is responsible for creating an SWT widget based on the right
- * style. Some style shows the widgets differently, for instance, the flat style
- * shows the widgets with less borders.
- * <p>
- * Provisional API: This interface is part of an interim API that is still under
- * development and expected to change significantly before reaching stability.
- * It is available at this early stage to solicit feedback from pioneering
- * adopters on the understanding that any code that uses this API will almost
- * certainly be broken (repeatedly) as the API evolves.
- *
- * @version 2.0
- * @since 2.0
- */
-public interface WidgetFactory {
-
-	/**
-	 * Creates a new regular button.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @return A new <code>Button</code>
-	 */
-	Button createButton(Composite parent, String text);
-
-	/**
-	 * Creates a new non-editable custom <code>Combo</code>.
-	 *
-	 * @deprecated
-	 * @param parent The parent container
-	 * @return A new <code>CCombo</code>
-	 */
-	@Deprecated
-	CCombo createCCombo(Composite parent);
-
-	/**
-	 * Creates a new check box button.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @return A new <code>Button</code>
-	 */
-	Button createCheckBox(Composite parent, String text);
-
-	/**
-	 * Creates a new non-editable <code>Combo</code>.
-	 *
-	 * @param parent The parent container
-	 * @return A new <code>Combo</code>
-	 */
-	Combo createCombo(Composite parent);
-
-	/**
-	 * Creates a new container.
-	 *
-	 * @param parent The parent container
-	 * @return A new <code>Composite</code>
-	 */
-	Composite createComposite(Composite parent);
-
-	/**
-	 * Creates a new DateTime.
-	 *
-	 * @param container The parent container
-	 * @param style The style is to tell the type of widget
-	 * (<code>SWT.DATE</code> or <code>SWT.TIME</code> or <code>SWT.CALENDAR</code>)
-	 * @return A new <code>DateTime</code>
-	 */
-	DateTime createDateTime(Composite parent, int style);
-	
-	/**
-	 * Creates a new editable custom <code>CCombo</code>.
-	 *
-	 * @deprecated
-	 * @param parent The parent container
-	 * @return A new <code>CCombo</code>
-	 */
-	@Deprecated
-	CCombo createEditableCCombo(Composite parent);
-
-	/**
-	 * Creates a new editable <code>Combo</code>.
-	 *
-	 * @param parent The parent container
-	 * @return A new <code>Combo</code>
-	 */
-	Combo createEditableCombo(Composite parent);
-
-	/**
-	 * Creates a new titled pane (group box).
-	 *
-	 * @param parent The parent container
-	 * @param title The group pane's title
-	 * @return A new <code>Group</code>
-	 */
-	Group createGroup(Composite parent, String title);
-
-	/**
-	 * Creates a new label that is shown as a hyperlink.
-	 *
-	 * @param parent The parent container
-	 * @param text The label's text
-	 * @return A new <code>Hyperlink</code>
-	 */
-	Hyperlink createHyperlink(Composite parent, String text);
-
-	/**
-	 * Creates a new label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The label's text
-	 * @return A new <code>Label</code>
-	 */
-	Label createLabel(Composite container, String labelText);
-
-	/**
-	 * Creates a new list.
-	 *
-	 * @param container The parent container
-	 * @param style The style is usually to tell what type of selection
-	 * (<code>SWT.MULTI</code> or <code>SWT.SINGLE</code>)
-	 * @return A new <code>Label</code>
-	 */
-	List createList(Composite container, int style);
-
-	/**
-	 * Creates a new label that can be wrapped on multiple lines.
-	 *
-	 * @param container The parent container
-	 * @param labelText The label's text
-	 * @return A new <code>FormText</code>
-	 */
-	FormText createMultiLineLabel(Composite container, String labelText);
-
-	/**
-	 * Creates a new editable text area.
-	 *
-	 * @param parent The parent container
-	 * @param parent The number of lines the text area should display
-	 * @return A new <code>Text</code>
-	 */
-	Text createMultiLineText(Composite parent);
-
-	/**
-	 * Creates a new editable text field that handles password.
-	 *
-	 * @param container The parent container
-	 * @return A new <code>Text</code>
-	 */
-	Text createPasswordText(Composite container);
-
-	/**
-	 * Creates a new push button (toggle between selected and unselected).
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @return A new <code>Button</code>
-	 */
-	Button createPushButton(Composite parent, String text);
-
-	/**
-	 * Creates a new radio button.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @return A new <code>Button</code>
-	 */
-	Button createRadioButton(Composite parent, String text);
-
-	/**
-	 * Creates a new section, which is a collapsable pane with a title bar.
-	 *
-	 * @param parent The parent container
-	 * @param style The style of the title bar, which can be
-	 * <code>ExpandableComposite.TWISTIE</code> and
-	 * <code>ExpandableComposite.TITLE_BAR</code>
-	 * @return A new <code>Section</code>
-	 */
-	Section createSection(Composite parent, int style);
-
-	/**
-	 * Creates a new spinner.
-	 *
-	 * @param parent The parent container
-	 * @return A new <code>Spinner</code>
-	 */
-	Spinner createSpinner(Composite parent);
-
-	/**
-	 * Creates a new table.
-	 *
-	 * @param container The parent container
-	 * @param style The style to apply to the table
-	 * @return A new <code>Table</code>
-	 */
-	Table createTable(Composite parent, int style);
-
-	/**
-	 * Creates a new editable text field.
-	 *
-	 * @param container The parent container
-	 * @return A new <code>Text</code>
-	 */
-	Text createText(Composite parent);
-
-	/**
-	 * Creates a new tri-state check box.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @return A new <code>Button</code> that has 3 selection states
-	 */
-	Button createTriStateCheckBox(Composite parent, String text);
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java
deleted file mode 100644
index 31a1080..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Localized messages used by Dali UI.
- *
- * @version 3.0
- * @since 1.0
- */
-public class JptCommonUiMessages {
-
-
-	public static String Boolean_True;
-	public static String Boolean_False;
-	
-	public static String DefaultEmpty;
-	public static String DefaultWithOneParam;
-	public static String NoneSelected;
-
-	public static String AddRemovePane_AddButtonText;
-	public static String AddRemovePane_RemoveButtonText;
-
-	public static String ChooserPane_browseButton;
-	public static String ClassChooserPane_dialogMessage;
-	public static String ClassChooserPane_dialogTitle;
-	public static String PackageChooserPane_dialogMessage;
-	public static String PackageChooserPane_dialogTitle;
-	public static String EnumComboViewer_default;
-	public static String EnumComboViewer_defaultWithDefault;
-	public static String NewNameStateObject_nameAlreadyExists;
-	public static String NewNameStateObject_nameMustBeSpecified;
-
-	private static final String BUNDLE_NAME = "jpt_common_ui"; //$NON-NLS-1$
-	private static final Class<?> BUNDLE_CLASS = JptCommonUiMessages.class;
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS);
-	}
-
-	private JptCommonUiMessages() {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java
deleted file mode 100644
index 7826015..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
-
-/**
- * This tracing class manages to convert the string value into boolean values or
- * integer values that are associated with the tracing debug flags. Those flags
- * are specified in the .options file. The supported keys are defined here as
- * constants for quick reference.
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class Tracing
-{
-	/**
-	 * A constant used to retrieve the value associated with "/debug".
-	 */
-	public static final String DEBUG = "/debug";
-
-	/**
-	 * A constant used to retrieve the value associated with "/debug/ui/db".
-	 */
-	public static final String UI_DB = "/debug/ui/db";
-
-	/**
-	 * A constant used to retrieve the value associated with "/debug/ui/detailsView".
-	 */
-	public static final String UI_DETAILS_VIEW = "/debug/ui/detailsView";
-
-	/**
-	 * A constant used to retrieve the value associated with "/debug/ui/layout".
-	 */
-	public static final String UI_LAYOUT = "/debug/ui/layout";
-
-	/**
-	 * A constant used to retrieve the value associated with "/unit-tests".
-	 */
-	public static final String UNIT_TESTS = "/unit-tests";
-
-	/**
-	 * Can't instantiate this <code>Tracing</code> class.
-	 */
-	private Tracing()
-	{
-		super();
-		throw new UnsupportedOperationException("Tracing cannot be instantiated");
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag. The default
-	 * value is <code>false</code>.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @return <code>true</code> if the given flag is active; <code>false</code>
-	 * otherwise
-	 */
-	public static boolean booleanDebugOption(String flag)
-	{
-		return booleanDebugOption(flag, false);
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @param defaultValue The default value if the value associated with the
-	 * given flag could not be found
-	 * @return <code>true</code> if the given flag is active; <code>false</code>
-	 * otherwise
-	 */
-	public static boolean booleanDebugOption(String flag, boolean defaultValue)
-	{
-		String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
-		return (string == null) ? defaultValue : Boolean.parseBoolean(string.trim());
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag. The default value
-	 * is 0.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @return The value associated with the given flag, or the given default
-	 * value
-	 */
-	public static int intDebugOption(String flag)
-	{
-		return intDebugOption(flag, 0);
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @param defaultValue The default value if the value associated with the
-	 * given flag could not be found
-	 * @return The value associated with the given flag, or the given default
-	 * value
-	 */
-	public static int intDebugOption(String flag, int defaultValue)
-	{
-		String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
-		return (string == null) ?  defaultValue : Integer.parseInt(string);
-	}
-
-	/**
-	 * Logs the given messages, appends it with this plug-in id.
-	 *
-	 * @param message The message to be logged
-	 */
-	public static void log(String message)
-	{
-		System.out.print("[" + JptCommonUiPlugin.PLUGIN_ID + "] ");
-		System.out.println(message);
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag. The default value
-	 * is an empty string.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @return The value associated with the given flag, or the given default
-	 * value
-	 */
-	public static String stringDebugOption(String flag)
-	{
-		return stringDebugOption(flag, "");
-	}
-
-	/**
-	 * Retrieves the debug value associated with the given flag.
-	 *
-	 * @param flag The flag to retrieve the debug value, which should be
-	 * contained in the .options file, the flag should start with "/"
-	 * @param defaultValue The default value if the value associated with the
-	 * given flag could not be found
-	 * @return The value associated with the given flag, or the given default
-	 * value
-	 */
-	public static String stringDebugOption(String flag, String defaultValue)
-	{
-		String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
-		return (string != null) ? string : defaultValue;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java
deleted file mode 100644
index 88822ac..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.ItemLabelProvider;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Implementation of {@link ItemLabelProvider} that provides updating
- * label information for a Model object.
- * 
- * The typical subclass will override the following methods:
- * #buildImageModel()
- * 	   return a {@link PropertyValueModel} that represents the image for the 
- *     represented model object
- * #buildTextModel()
- *     return a {@link PropertyValueModel} that represents the text for the 
- *     represented model object.
- * #buildDescriptionModel()
- * 	   return a {@link PropertyValueModel} that represents the description for 
- *     the represented model object
- * 
- * Other methods may be overridden, but take care to preserve the logic provided 
- * by this class.
- */
-public abstract class AbstractItemLabelProvider implements ItemLabelProvider
-{
-	private DelegatingContentAndLabelProvider labelProvider;
-	
-	private Model model;
-	
-	private PropertyValueModel<Image> imageModel;
-	
-	private PropertyValueModel<String> textModel;
-	
-	private PropertyValueModel<String> descriptionModel;
-	
-	private PropertyChangeListener labelChangeListener;
-	
-	
-	protected AbstractItemLabelProvider(
-			Model model, DelegatingContentAndLabelProvider labelProvider) {
-		this.model = model;
-		this.labelProvider = labelProvider;
-		this.labelChangeListener = buildLabelChangeListener();
-	}
-	
-	
-	/**
-	 * Construct a listener to update the viewer (through the label provider)
-	 * if the text or image changes
-	 */
-	protected PropertyChangeListener buildLabelChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				labelProvider().updateLabel(model());
-			}
-		};
-	}
-	
-	/**
-	 * Return the image value model
-	 * (lazy and just-in-time initialized)
-	 */
-	protected synchronized PropertyValueModel<Image> imageModel() {
-		if (this.imageModel == null) {
-			this.imageModel = buildImageModel();
-			engageImageModel();
-		}
-		return this.imageModel;
-	}
-	
-	/**
-	 * Construct an image model
-	 */
-	protected abstract PropertyValueModel<Image> buildImageModel();
-	
-	/** 
-	 * Should only be overridden with a call to super.engageImageModel() before 
-	 * subclass logic 
-	 */
-	protected void engageImageModel() {
-		this.imageModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/** 
-	 * Should only be overridden with a call to super.disengageImageModel() after 
-	 * subclass logic 
-	 */
-	protected void disengageImageModel() {
-		this.imageModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/**
-	 * Return the text value model
-	 * (lazy and just-in-time initialized)
-	 */
-	protected synchronized PropertyValueModel<String> textModel() {
-		if (this.textModel == null) {
-			this.textModel = buildTextModel();
-			engageTextModel();
-		}
-		return this.textModel;
-	}
-	
-	/**
-	 * Construct a text value model
-	 */
-	protected abstract PropertyValueModel<String> buildTextModel();
-	
-	/** 
-	 * Should only be overridden with a call to super.engageTextModel() before 
-	 * subclass logic 
-	 */
-	protected void engageTextModel() {
-		this.textModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/** 
-	 * Should only be overridden with a call to super.disengageTextModel() after 
-	 * subclass logic 
-	 */
-	protected void disengageTextModel() {
-		this.textModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/**
-	 * Return the description value model
-	 * (lazy and just-in-time initialized)
-	 */
-	protected synchronized PropertyValueModel<String> descriptionModel() {
-		if (this.descriptionModel == null) {
-			this.descriptionModel = buildDescriptionModel();
-			engageDescriptionModel();
-		}
-		return this.descriptionModel;
-	}
-	
-	/**
-	 * Construct a description value model
-	 */
-	protected abstract PropertyValueModel<String> buildDescriptionModel();
-	
-	/** 
-	 * Should only be overridden with a call to super.engageDescriptionModel() before 
-	 * subclass logic 
-	 */
-	protected void engageDescriptionModel() {
-		this.descriptionModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/** 
-	 * Should only be overridden with a call to super.disengageDescriptionModel() after 
-	 * subclass logic 
-	 */
-	protected void disengageDescriptionModel() {
-		this.descriptionModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener);
-	}
-	
-	/**
-	 * Return the model object represented by this item
-	 */
-	public Model model() {
-		return this.model;
-	}
-	
-	/**
-	 * Return the label provider that delegates to this item
-	 */
-	public DelegatingContentAndLabelProvider labelProvider() {
-		return this.labelProvider;
-	}
-	
-	public Image getImage() {
-		return imageModel().getValue();
-	}
-	
-	public String getText() {
-		return textModel().getValue();
-	}
-	
-	public String getDescription() {
-		return descriptionModel().getValue();
-	}
-	
-	public void dispose() {
-		disposeTextModel();
-		disposeImageModel();
-		disposeDescriptionModel();	
-	}
-	
-	protected synchronized void disposeTextModel() {
-		if (this.textModel != null) {
-			disengageTextModel();
-			this.textModel = null;
-		}
-	}
-	
-	protected synchronized void disposeImageModel() {
-		if (this.imageModel != null) {
-			disengageImageModel();
-			this.imageModel = null;
-		}
-	}
-	
-	protected synchronized void disposeDescriptionModel() {
-		if (this.descriptionModel != null) {
-			disengageDescriptionModel();
-			this.descriptionModel = null;
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java
deleted file mode 100644
index c5631b8..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * Implementation of {@link TreeItemContentProvider} that provides updating
- * children information for a Model object.
- * 
- * The typical subclass will override the following methods:
- * #getParent()
- *     the default behavior for this method is to return null.  there is no 
- *     property value model for this as this should not be changing for a given
- *     node.  all such changes will be provided by the parent side of the relationship.
- * #buildChildrenModel()
- *     return a {@link ListValueModel} that represents the children for the represented
- *     model object.  #buildChildrenModel(CollectionValueModel) and 
- *     #buildChildrenModel(PropertyValueModel) are provided if the children are more
- *     easily represented as a collection or as a property (single child)
- *     the default behavior is to return a {@link NullListValueModel}
- * 
- * Other methods may be overridden, but take care to preserve the logic provided 
- * by this class.
- */
-public abstract class AbstractTreeItemContentProvider<E>
-	implements TreeItemContentProvider
-{
-	private DelegatingTreeContentAndLabelProvider treeContentProvider;
-	
-	private Model model;
-	
-	private CollectionValueModel<E> childrenModel;
-	
-	private CollectionChangeListener childrenListener;
-	
-	
-	protected AbstractTreeItemContentProvider(
-			Model model, DelegatingTreeContentAndLabelProvider treeContentProvider) {
-		this.model = model;
-		this.treeContentProvider = treeContentProvider;
-		this.childrenListener = buildChildrenListener();
-	}
-	
-	/**
-	 * Construct a listener to refresh the tree (through the tree content provider)
-	 * if the children change
-	 */
-	protected CollectionChangeListener buildChildrenListener() {
-		return new CollectionChangeListener() {
-			
-			public void itemsAdded(CollectionAddEvent event) {
-				getTreeContentProvider().updateContent(getModel());
-			}
-			
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				getTreeContentProvider().updateContent(getModel());
-				for (Object item : event.getItems()) {
-					getTreeContentProvider().dispose(item);
-				}
-			}
-			
-			public void collectionChanged(CollectionChangeEvent event) {
-				getTreeContentProvider().updateContent(getModel());
-				// in the case of a list changed event, we don't have 
-				// access to the removed objects, so we can't dispose them.
-				// keep a watch on this to see if this becomes a problem.
-			}
-			
-			public void collectionCleared(CollectionClearEvent event) {
-				getTreeContentProvider().updateContent(getModel());
-				// in the case of a list cleared event, we don't have 
-				// access to the removed objects, so we can't dispose them.
-				// keep a watch on this to see if this becomes a problem.
-			}
-		};
-	}
-	
-	/**
-	 * Return the children model
-	 * (lazy and just-in-time initialized)
-	 */
-	protected synchronized Iterator<E> childrenModel() {
-		if (this.childrenModel == null) {
-			this.childrenModel = buildChildrenModel();
-			engageChildren();
-		}
-		return this.childrenModel.iterator();
-	}
-	
-	/**
-	 * Construct a children model
-	 */
-	protected CollectionValueModel<E> buildChildrenModel() {
-		return new NullCollectionValueModel<E>();
-	}
-	
-	/**
-	 * Utility method that can be used if the children model is better represented
-	 * as a collection.
-	 * This wraps the children collection model and uses it internally as a list
-	 * model.
-	 */
-	protected CollectionValueModel<E> buildChildrenModel(ListValueModel<E> lvm) {
-		return new ListCollectionValueModelAdapter<E>(lvm);
-	}
-	
-	/**
-	 * Utility method that can be used if the children model is better represented
-	 * as a single value property.
-	 * This wraps the children (child) property model and uses it internally as a list
-	 * model.
-	 */
-	protected ListValueModel<E> buildChildrenModel(PropertyValueModel<E> lvm) {
-		return new PropertyListValueModelAdapter<E>(lvm);
-	}
-	
-	/**
-	 * Return the model object represented by this node
-	 */
-	public Model getModel() {
-		return this.model;
-	}
-	
-	/**
-	 * Return the tree content provider that delegates to this node
-	 */
-	public DelegatingTreeContentAndLabelProvider getTreeContentProvider() {
-		return this.treeContentProvider;
-	}
-	
-	public Object getParent() {
-		return null;
-	}
-	
-	public Object[] getElements() {
-		return getChildren();
-	}
-	
-	public Object[] getChildren() {
-		return ArrayTools.array(this.childrenModel());
-	}
-	
-	/**
-	 * Override with potentially more efficient logic
-	 */
-	public boolean hasChildren() {
-		return this.childrenModel().hasNext();
-	}
-	
-	/**
-	 * Should only be overridden with a call to super.dispose()
-	 */
-	public void dispose() {
-		for (Object child : getChildren()) {
-			getTreeContentProvider().dispose(child);
-		}
-		disposeChildrenModel();
-	}
-	
-	/** 
-	 * Should only be overridden with a call to super.engageChildren() before 
-	 * subclass logic 
-	 */
-	protected void engageChildren() {
-		this.childrenModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.childrenListener);
-	}
-	
-	protected synchronized void disposeChildrenModel() {
-		if (this.childrenModel != null) {
-			this.disengageChildrenModel();
-			this.childrenModel = null;
-		}
-	}
-	/** 
-	 * Should only be overridden with a call to super.disengageChildren() after 
-	 * subclass logic 
-	 */
-	protected void disengageChildrenModel() {
-		this.childrenModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.childrenListener);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java
deleted file mode 100644
index bbff551..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
-
-/**
- * This filter will deny showing any file that are not JAR files or folders
- * that don't contain any JAR files in its sub-hierarchy. 
- */
-public class ArchiveFileViewerFilter 
-	extends ViewerFilter 
-{
-	private static final String[] archiveExtensions= { "jar", "zip" }; //$NON-NLS-1$ //$NON-NLS-2$ 
-	
-	
-	public ArchiveFileViewerFilter() {
-		super();
-	}
-	
-	
-	@Override
-	public boolean select(
-			Viewer viewer, Object parentElement, Object element) {
-		if (element instanceof IFile) {
-			return isArchivePath(((IFile)element).getFullPath());
-		}
-		else if (element instanceof IFolder) {
-			IFolder folder = (IFolder) element;
-			try {
-				for (IResource each : folder.members()) {
-					if (select(viewer, folder, each)) {
-						return true;
-					}
-				}
-			}
-			catch (CoreException ce) {
-				// just skip this one, then
-				JptCommonUiPlugin.log(ce);
-			}
-		}
-		return false;
-	}
-	
-	public static boolean isArchivePath(IPath path) {
-		String ext= path.getFileExtension();
-		if (ext != null && ext.length() != 0) {
-			for (int i= 0; i < archiveExtensions.length; i++) {
-				if (ext.equalsIgnoreCase(archiveExtensions[i])) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}		
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java
deleted file mode 100644
index d5df216..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2011 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory;
-
-/**
- * Extension of {@link DelegatingContentAndLabelProvider} that provides an extension
- * to provide tree content
- */
-public class DelegatingTreeContentAndLabelProvider 
-	extends DelegatingContentAndLabelProvider
-	implements ITreeContentProvider
-{
-	public DelegatingTreeContentAndLabelProvider(
-			TreeItemContentProviderFactory treeItemContentProviderFactory) {
-		super(treeItemContentProviderFactory);
-	}
-	
-	public DelegatingTreeContentAndLabelProvider(
-			TreeItemContentProviderFactory treeItemContentProviderFactory,
-			ItemLabelProviderFactory itemLabelProviderFactory) {
-		super(treeItemContentProviderFactory, itemLabelProviderFactory);
-	}
-	
-	
-	@Override
-	protected TreeItemContentProvider itemContentProvider(Object item) {
-		return (TreeItemContentProvider) super.itemContentProvider(item);
-	}
-	
-	public Object[] getChildren(Object parentElement) {
-		TreeItemContentProvider provider = itemContentProvider(parentElement);
-		return (provider == null) ? new Object[0] : provider.getChildren();
-	}
-
-	public Object getParent(Object element) {
-		TreeItemContentProvider provider = itemContentProvider(element);
-		return (provider == null) ? null : provider.getParent();
-	}
-	
-	public boolean hasChildren(Object element) {
-		TreeItemContentProvider provider = itemContentProvider(element);
-		return (provider == null) ? false : provider.hasChildren();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java
deleted file mode 100644
index e2079e0..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * Image descriptor for an image.
- */
-public class ImageImageDescriptor extends ImageDescriptor 
-{
-	
-	private Image fImage;
-	
-	/**
-	 * Constructor for ImagImageDescriptor.
-	 */
-	public ImageImageDescriptor(Image image) {
-		super();
-		this.fImage = image;
-	}
-	
-	@Override
-	public boolean equals(Object obj) {
-		return (obj != null) && getClass().equals(obj.getClass()) && this.fImage.equals(((ImageImageDescriptor) obj).fImage);
-	}
-	
-	@Override
-	public ImageData getImageData() {
-		return this.fImage.getImageData();
-	}
-	
-	@Override
-	public int hashCode() {
-		return this.fImage.hashCode();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java
deleted file mode 100644
index 1380b3d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Null implementation of the ILabelProvider interface.
- * Implemented as a singleton.
- */
-public final class NullLabelProvider 
-	implements ILabelProvider 
-{
-	public static final NullLabelProvider INSTANCE = new NullLabelProvider();
-
-	public static ILabelProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure a single instance.
-	 */
-	private NullLabelProvider() {
-		super();
-	}
-
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	public String getText(Object element) {
-		return null;
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java
deleted file mode 100644
index f050ffa..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Null implementation of the ILabelProvider interface.
- * Implemented as a singleton.
- */
-public final class NullTreeContentProvider
-	implements ITreeContentProvider 
-{
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-	public static final NullTreeContentProvider INSTANCE = new NullTreeContentProvider();
-
-	public static ITreeContentProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure a single instance.
-	 */
-	private NullTreeContentProvider() {
-		super();
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		return EMPTY_ARRAY;
-	}
-
-	public Object getParent(Object element) {
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return EMPTY_ARRAY;
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java
deleted file mode 100644
index ca95301..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.jface;
-
-import org.eclipse.jface.viewers.AbstractListViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This adapter can be used to keep an AbstractListViewer
- * (e.g. a ListViewer or ComboViewer) in synch with a ListValueModel
- * (or a CollectionValueModel).
- */
-public class StructuredContentProviderAdapter
-	implements IStructuredContentProvider
-{
-	/** The underlying model list. */
-	protected ListValueModel listHolder;
-
-	/** The list viewer we keep in synch with the model list. */
-	protected final AbstractListViewer listViewer;
-
-	/** A listener that allows us to forward changes made to the underlying model list. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** static **********
-
-	/**
-	 * Adapt the specified list viewer to the specified list holder so they
-	 * stay in synch.
-	 */
-	public static StructuredContentProviderAdapter adapt(AbstractListViewer listViewer, ListValueModel listHolder) {
-		// we need only construct the adapter and it will hook up to the list viewer etc.
-		return new StructuredContentProviderAdapter(listViewer, listHolder);
-	}
-
-	/**
-	 * Adapt the specified list viewer to the specified list holder so they
-	 * stay in synch.
-	 */
-	public static StructuredContentProviderAdapter adapt(AbstractListViewer listViewer, CollectionValueModel collectionHolder) {
-		// we need only construct the adapter and it will hook up to the list viewer etc.
-		return new StructuredContentProviderAdapter(listViewer, collectionHolder);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor.
-	 */
-	protected StructuredContentProviderAdapter(AbstractListViewer listViewer, ListValueModel listHolder) {
-		super();
-		this.listChangeListener = this.buildListChangeListener();
-		this.listViewer = listViewer;
-		this.listViewer.setContentProvider(this);
-		// the list viewer will call back to #inputChanged(Viewer, Object, Object)
-		this.listViewer.setInput(listHolder);
-	}
-
-	/**
-	 * Constructor.
-	 */
-	protected StructuredContentProviderAdapter(AbstractListViewer listViewer, CollectionValueModel collectionHolder) {
-		this(listViewer, new CollectionListValueModelAdapter(collectionHolder));
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent e) {
-				StructuredContentProviderAdapter.this.itemsAdded(e);
-			}
-			public void itemsRemoved(ListRemoveEvent e) {
-				StructuredContentProviderAdapter.this.itemsRemoved(e);
-			}
-			public void itemsReplaced(ListReplaceEvent e) {
-				StructuredContentProviderAdapter.this.itemsReplaced(e);
-			}
-			public void itemsMoved(ListMoveEvent e) {
-				StructuredContentProviderAdapter.this.itemsMoved(e);
-			}
-			public void listCleared(ListClearEvent e) {
-				StructuredContentProviderAdapter.this.listCleared();
-			}
-			public void listChanged(ListChangeEvent e) {
-				StructuredContentProviderAdapter.this.listChanged();
-			}
-			@Override
-			public String toString() {
-				return "list listener";
-			}
-		};
-	}
-
-
-	// ********** IStructuredContentProvider implementation **********
-
-	public Object[] getElements(Object inputElement) {
-		if (inputElement != this.listHolder) {
-			throw new IllegalArgumentException("invalid input element: " + inputElement);
-		}
-		return this.listHolder.toArray();
-	}
-
-	/**
-	 * This is called by the list viewer, so don't update the list viewer here.
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (viewer != this.listViewer) {
-			throw new IllegalArgumentException("invalid viewer: " + viewer);
-		}
-		if (oldInput != this.listHolder) {
-			throw new IllegalArgumentException("invalid old input: " + oldInput);
-		}
-		this.modelChanged((ListValueModel) oldInput, (ListValueModel) newInput);
-	}
-
-	public void dispose() {
-		// do nothing - listeners should've already been removed in #inputChanged(Viewer, Object, Object)
-	}
-
-
-	// ********** internal methods **********
-
-	protected void modelChanged(ListValueModel oldModel, ListValueModel newModel) {
-		if (oldModel != null) {
-			this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		}
-		this.listHolder = newModel;
-		if (newModel != null) {
-			this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		}
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the underlying list model.
-	 */
-	public ListValueModel model() {
-		return this.listHolder;
-	}
-
-	/**
-	 * Set the underlying list model.
-	 */
-	public void setModel(ListValueModel listHolder) {
-		// the list viewer will call back to #inputChanged(Viewer, Object, Object)
-		this.listViewer.setInput(listHolder);
-	}
-
-	/**
-	 * Set the underlying collection model.
-	 */
-	public void setModel(CollectionValueModel collectionHolder) {
-		this.setModel(new CollectionListValueModelAdapter(collectionHolder));
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the underlying model list.
-	 * Synchronize the list viewer.
-	 */
-	protected void itemsAdded(ListAddEvent e) {
-		int i = e.getIndex();
-		for (Object item : e.getItems()) {
-			this.listViewer.insert(item, i++);
-		}
-	}
-
-	/**
-	 * Items were removed from the underlying model list.
-	 * Synchronize the list viewer.
-	 */
-	protected void itemsRemoved(ListRemoveEvent e) {
-		this.listViewer.remove(ArrayTools.array(e.getItems(), e.getItemsSize()));
-	}
-
-	/**
-	 * Items were replaced in the underlying model list.
-	 * Synchronize the list viewer.
-	 */
-	protected void itemsReplaced(ListReplaceEvent e) {
-		this.listViewer.remove(ArrayTools.array(e.getOldItems(), e.getItemsSize()));
-		int i = e.getIndex();
-		for (Object item : e.getNewItems()) {
-			this.listViewer.insert(item, i++);
-		}
-	}
-
-	/**
-	 * Items were moved in the underlying model list.
-	 * Synchronize the list viewer.
-	 */
-	protected void itemsMoved(ListMoveEvent e) {
-		int len = e.getLength();
-		Object[] items = new Object[len];
-		int offset = e.getSourceIndex();
-		for (int i = 0; i < len; i++) {
-			items[i] = this.listHolder.get(offset + i);
-		}
-		this.listViewer.remove(items);
-
-		offset = e.getTargetIndex();
-		for (int i = 0; i < len; i++) {
-			this.listViewer.insert(items[i], offset + i);
-		}
-	}
-
-	/**
-	 * The underlying model list was cleared.
-	 * Synchronize the list viewer.
-	 */
-	protected void listCleared() {
-		this.listViewer.refresh();
-	}
-
-	/**
-	 * The underlying model list has changed "dramatically".
-	 * Synchronize the list viewer.
-	 */
-	protected void listChanged() {
-		this.listViewer.refresh();
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java
deleted file mode 100644
index 8918708..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.listeners;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Wrap another collection change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary.
- */
-public class SWTCollectionChangeListenerWrapper
-	implements CollectionChangeListener
-{
-	private final CollectionChangeListener listener;
-
-	public SWTCollectionChangeListenerWrapper(CollectionChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionCleared_(event);
-		} else {
-			this.executeOnUIThread(this.buildCollectionClearedRunnable(event));
-		}
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionChanged_(event);
-		} else {
-			this.executeOnUIThread(this.buildCollectionChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTCollectionChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTCollectionChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTCollectionChangeListenerWrapper.this.collectionCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTCollectionChangeListenerWrapper.this.collectionChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return Display.getCurrent() != null;
-	}
-
-	/**
-	 * {@link Display#asyncExec(Runnable)} seems to work OK;
-	 * but using {@link Display#syncExec(Runnable)} can somtimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnUIThread(Runnable r) {
-		Display.getDefault().asyncExec(r);
-//		Display.getDefault().syncExec(r);
-	}
-
-	void itemsAdded_(CollectionAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(CollectionRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void collectionCleared_(CollectionClearEvent event) {
-		this.listener.collectionCleared(event);
-	}
-
-	void collectionChanged_(CollectionChangeEvent event) {
-		this.listener.collectionChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java
deleted file mode 100644
index 321080d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.listeners;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Wrap another list change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary.
- */
-public class SWTListChangeListenerWrapper
-	implements ListChangeListener
-{
-	private final ListChangeListener listener;
-
-	public SWTListChangeListenerWrapper(ListChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsMoved_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsMovedRunnable(event));
-		}
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsReplaced_(event);
-		} else {
-			this.executeOnUIThread(this.buildItemsReplacedRunnable(event));
-		}
-	}
-
-	public void listCleared(ListClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listCleared_(event);
-		} else {
-			this.executeOnUIThread(this.buildListClearedRunnable(event));
-		}
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listChanged_(event);
-		} else {
-			this.executeOnUIThread(this.buildListChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final ListAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsMovedRunnable(final ListMoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.itemsMoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items moved runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.itemsReplaced_(event);
-			}
-			@Override
-			public String toString() {
-				return "items replaced runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListClearedRunnable(final ListClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.listCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "list cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListChangedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTListChangeListenerWrapper.this.listChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "list changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return Display.getCurrent() != null;
-	}
-
-	/**
-	 * {@link Display#asyncExec(Runnable)} seems to work OK;
-	 * but using {@link Display#syncExec(Runnable)} can somtimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnUIThread(Runnable r) {
-		Display.getDefault().asyncExec(r);
-//		Display.getDefault().syncExec(r);
-	}
-
-	void itemsAdded_(ListAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(ListRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void itemsMoved_(ListMoveEvent event) {
-		this.listener.itemsMoved(event);
-	}
-
-	void itemsReplaced_(ListReplaceEvent event) {
-		this.listener.itemsReplaced(event);
-	}
-
-	void listCleared_(ListClearEvent event) {
-		this.listener.listCleared(event);
-	}
-
-	void listChanged_(ListChangeEvent event) {
-		this.listener.listChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java
deleted file mode 100644
index f95fbe6..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.listeners;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Wrap another property change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited. (Typically, the adapter(s) between a <em>property</em> and
- * its corresponding UI widget are read-write; as opposed to the adapter(s)
- * between a <em>collection</em> (or <em>list</em>) and its UI widget, which
- * is read-only.)
- */
-public class SWTPropertyChangeListenerWrapper
-	implements PropertyChangeListener
-{
-	private final PropertyChangeListener listener;
-
-	public SWTPropertyChangeListenerWrapper(PropertyChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.propertyChanged_(event);
-		} else {
-			this.executeOnUIThread(this.buildPropertyChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTPropertyChangeListenerWrapper.this.propertyChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "property changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return Display.getCurrent() != null;
-	}
-
-	/**
-	 * {@link Display#asyncExec(Runnable)} seems to work OK;
-	 * but using {@link Display#syncExec(Runnable)} can somtimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnUIThread(Runnable r) {
-		Display.getDefault().asyncExec(r);
-//		Display.getDefault().syncExec(r);
-	}
-
-	void propertyChanged_(PropertyChangeEvent event) {
-		this.listener.propertyChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java
deleted file mode 100644
index 16bf119..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.listeners;
-
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Wrap another state change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public class SWTStateChangeListenerWrapper
-	implements StateChangeListener
-{
-	private final StateChangeListener listener;
-
-	public SWTStateChangeListenerWrapper(StateChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void stateChanged(StateChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.stateChanged_(event);
-		} else {
-			this.executeOnUIThread(this.buildStateChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildStateChangedRunnable(final StateChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTStateChangeListenerWrapper.this.stateChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "state changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return Display.getCurrent() != null;
-	}
-
-	/**
-	 * {@link Display#asyncExec(Runnable)} seems to work OK;
-	 * but using {@link Display#syncExec(Runnable)} can somtimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnUIThread(Runnable r) {
-		Display.getDefault().asyncExec(r);
-//		Display.getDefault().syncExec(r);
-	}
-
-	void stateChanged_(StateChangeEvent event) {
-		this.listener.stateChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java
deleted file mode 100644
index 84255e6..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.listeners;
-
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Wrap another tree change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary.
- */
-public class SWTTreeChangeListenerWrapper
-	implements TreeChangeListener
-{
-	private final TreeChangeListener listener;
-
-	public SWTTreeChangeListenerWrapper(TreeChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeAdded_(event);
-		} else {
-			this.executeOnUIThread(this.buildNodeAddedRunnable(event));
-		}
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeRemoved_(event);
-		} else {
-			this.executeOnUIThread(this.buildNodeRemovedRunnable(event));
-		}
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeCleared_(event);
-		} else {
-			this.executeOnUIThread(this.buildTreeClearedRunnable(event));
-		}
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeChanged_(event);
-		} else {
-			this.executeOnUIThread(this.buildTreeChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildNodeAddedRunnable(final TreeAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTTreeChangeListenerWrapper.this.nodeAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "node added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTTreeChangeListenerWrapper.this.nodeRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "node removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeClearedRunnable(final TreeClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTTreeChangeListenerWrapper.this.treeCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				SWTTreeChangeListenerWrapper.this.treeChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return Display.getCurrent() != null;
-	}
-
-	/**
-	 * {@link Display#asyncExec(Runnable)} seems to work OK;
-	 * but using {@link Display#syncExec(Runnable)} can somtimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnUIThread(Runnable r) {
-		Display.getDefault().asyncExec(r);
-//		Display.getDefault().syncExec(r);
-	}
-
-	void nodeAdded_(TreeAddEvent event) {
-		this.listener.nodeAdded(event);
-	}
-
-	void nodeRemoved_(TreeRemoveEvent event) {
-		this.listener.nodeRemoved(event);
-	}
-
-	void treeCleared_(TreeClearEvent event) {
-		this.listener.treeCleared(event);
-	}
-
-	void treeChanged_(TreeChangeEvent event) {
-		this.listener.treeChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java
deleted file mode 100644
index 421e498..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.properties;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jpt.common.core.JptCommonCorePlugin;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.model.value.BufferedWritablePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jst.common.project.facet.core.libprov.IPropertyChangeListener;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate;
-import org.eclipse.jst.common.project.facet.ui.libprov.LibraryFacetPropertyPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage;
-
-
-public abstract class JptProjectPropertiesPage
-		extends LibraryFacetPropertyPage {
-	
-	protected final WritablePropertyValueModel<IProject> projectModel;
-	protected final BufferedWritablePropertyValueModel.Trigger trigger;
-	
-	protected final ChangeListener validationListener;
-	
-	
-	public JptProjectPropertiesPage() {
-		super();
-
-		this.projectModel = new SimplePropertyValueModel<IProject>();
-		this.trigger = new BufferedWritablePropertyValueModel.Trigger();
-		
-		buildModels();
-		
-		this.validationListener = this.buildValidationListener();
-	}
-	
-	
-	/**
-	 * Build any additional models needed by this page.  The project model has been created at this
-	 * point.
-	 */
-	protected abstract void buildModels();
-	
-	
-	// ********** convenience methods **********
-	
-	protected static boolean flagIsSet(PropertyValueModel<Boolean> flagModel) {
-		Boolean flag = flagModel.getValue();
-		return (flag != null) && flag.booleanValue();
-	}
-	
-	
-	// ********** LibraryFacetPropertyPage implementation **********
-	
-	@Override
-	protected LibraryInstallDelegate createLibraryInstallDelegate(IFacetedProject project, IProjectFacetVersion fv) {
-		LibraryInstallDelegate lid = new LibraryInstallDelegate(project, fv, null);
-		lid.addListener(buildLibraryProviderListener());
-		return lid;
-	}
-	
-	protected IPropertyChangeListener buildLibraryProviderListener() {
-		return new IPropertyChangeListener() {
-				public void propertyChanged(String property, Object oldValue, Object newValue ) {
-					if (LibraryInstallDelegate.PROP_AVAILABLE_PROVIDERS.equals(property)) {
-						adjustLibraryProviders();
-					}
-				}
-			};
-	}
-	
-	protected abstract void adjustLibraryProviders();
-	
-	
-	// ********** page **********
-
-	@Override
-	protected Control createPageContents(Composite parent) {
-		if (this.projectModel.getValue() != null) {
-			disengageListeners();
-		}
-		
-		this.projectModel.setValue(getProject());
-		
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		createWidgets(composite);
-		
-		Dialog.applyDialogFont(composite);
-		
-		adjustLibraryProviders();
-		
-		engageListeners();
-		updateValidation();
-
-		return composite;
-	}
-	
-	/**
-	 * Build specific widgets.  Layout and validation will be taken care of.
-	 */
-	protected abstract void createWidgets(Composite parent);
-	
-	protected void engageListeners() {
-		engageValidationListener();
-	}
-	
-	protected void disengageListeners() {
-		disengageValidationListener();
-	}
-	
-	protected Link buildFacetsPageLink(Composite parent, String text) {
-		Link facetsPageLink = buildLink(parent, text);
-		facetsPageLink.addSelectionListener(buildFacetsPageLinkListener());  // the link will be GCed
-		return facetsPageLink;
-	}
-	
-	private SelectionListener buildFacetsPageLinkListener() {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				openProjectFacetsPage();
-			}
-			@Override
-			public String toString() {
-				return "facets page link listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-	protected void openProjectFacetsPage() {
-		((IWorkbenchPreferenceContainer)getContainer()).openPage(FacetsPropertyPage.ID, null);
-	}
-	
-	/**
-	 * Don't allow {@link org.eclipse.jface.preference.PreferencePage#computeSize()}
-	 * to cache the page's size, since the size of the "Library" panel can
-	 * change depending on the user's selection from the drop-down list.
-	 */
-	@Override
-	public Point computeSize() {
-		return this.doComputeSize();
-	}
-	
-	
-	// ********** widgets **********
-	
-	protected Button buildCheckBox(Composite parent, int horizontalSpan, String text) {
-		return buildButton(parent, horizontalSpan, text, SWT.CHECK);
-	}
-	
-	protected Button buildRadioButton(Composite parent, int horizontalSpan, String text) {
-		return buildButton(parent, horizontalSpan, text, SWT.RADIO);
-	}
-	
-	protected Button buildButton(Composite parent, int horizontalSpan, String text, int style) {
-		Button button = new Button(parent, SWT.NONE | style);
-		button.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = horizontalSpan;
-		button.setLayoutData(gd);
-		return button;
-	}
-	
-	protected Combo buildDropDown(Composite parent) {
-		return buildDropDown(parent, 1);
-	}
-	
-	protected Combo buildDropDown(Composite parent, int horizontalSpan) {
-		Combo combo = new Combo(parent, SWT.READ_ONLY);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = horizontalSpan;
-		combo.setLayoutData(gd);
-		return combo;
-	}
-	
-	protected Label buildLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 1;
-		label.setLayoutData(gd);
-		return label;
-	}
-	
-	protected Link buildLink(Composite parent, String text) {
-		Link link = new Link(parent, SWT.NONE);
-		GridData data = new GridData(GridData.END, GridData.CENTER, false, false);
-		data.horizontalSpan = 2;
-		link.setLayoutData(data);
-		link.setText(text);
-		return link;
-	}
-	
-	
-	// ********** OK/Revert/Apply behavior **********
-
-	@Override
-	public boolean performOk() {
-		super.performOk();
-
-		try {
-			// true=fork; false=uncancellable
-			this.buildOkProgressMonitorDialog().run(true, false, this.buildOkRunnableWithProgress());
-		}
-		catch (InterruptedException ex) {
-			return false;
-		} 
-		catch (InvocationTargetException ex) {
-			throw new RuntimeException(ex.getTargetException());
-		}
-
-		return true;
-	}
-
-	private IRunnableContext buildOkProgressMonitorDialog() {
-		return new ProgressMonitorDialog(this.getShell());
-	}
-
-	private IRunnableWithProgress buildOkRunnableWithProgress() {
-		return new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-				IWorkspace ws = ResourcesPlugin.getWorkspace();
-				try {
-					// the build we execute in #performOk_() locks the workspace root,
-					// so we need to use the workspace root as our scheduling rule here
-					ws.run(
-							buildOkWorkspaceRunnable(),
-							ws.getRoot(),
-							IWorkspace.AVOID_UPDATE,
-							monitor);
-				}
-				catch (CoreException ex) {
-					throw new InvocationTargetException(ex);
-				}
-			}
-		};
-	}
-	
-	/* private */ IWorkspaceRunnable buildOkWorkspaceRunnable() {
-		return new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				performOk_(monitor);
-			}
-		};
-	}
-	
-	// ********** OK/Revert/Apply behavior **********
-	
-	void performOk_(IProgressMonitor monitor) throws CoreException {
-		if (isBuffering()) {
-			boolean rebuild = projectRebuildRequired();
-			this.trigger.accept();
-			if (rebuild) {
-				rebuildProject();
-			}
-			this.getProject().build(IncrementalProjectBuilder.FULL_BUILD, monitor);
-		}
-	}
-	
-	protected abstract boolean projectRebuildRequired();
-	
-	protected abstract void rebuildProject();
-	
-	/**
-	 * Return whether any of the models are buffering a change.
-	 */
-	private boolean isBuffering() {
-		for (BufferedWritablePropertyValueModel<?> model : buildBufferedModels()) {
-			if (model.isBuffering()) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	protected abstract BufferedWritablePropertyValueModel<?>[] buildBufferedModels();
-	
-	@Override
-	protected void performDefaults() {
-		super.performDefaults();
-		this.trigger.reset();
-	}
-	
-	
-	// ********** dispose **********
-	
-	@Override
-	public void dispose() {
-		disengageListeners();
-		super.dispose();
-	}
-	
-	
-	// ********** validation **********
-	
-	private ChangeListener buildValidationListener() {
-		return new SimpleChangeListener() {
-			@Override
-			protected void modelChanged() {
-				validate();
-			}
-			@Override
-			public String toString() {
-				return "validation listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-	protected void validate() {
-		if ( ! getControl().isDisposed()) {
-			updateValidation();
-		}
-	}
-
-	private void engageValidationListener() {
-		for (Model model : buildValidationModels()) {
-			model.addChangeListener(this.validationListener);
-		}
-	}
-	
-	protected abstract Model[] buildValidationModels();
-	
-	private void disengageValidationListener() {
-		for (Model model : buildReverseValidationModels()) {
-			model.removeChangeListener(this.validationListener);
-		}
-	}
-	
-	protected Model[] buildReverseValidationModels() {
-		return ArrayTools.reverse(buildValidationModels());
-	}
-
-	protected static final Integer ERROR_STATUS = Integer.valueOf(IStatus.ERROR);
-	protected static final Integer WARNING_STATUS = Integer.valueOf(IStatus.WARNING);
-	protected static final Integer INFO_STATUS = Integer.valueOf(IStatus.INFO);
-	protected static final Integer OK_STATUS = Integer.valueOf(IStatus.OK);
-	
-	protected IStatus buildInfoStatus(String message) {
-		return this.buildStatus(IStatus.INFO, message);
-	}
-	
-	protected IStatus buildWarningStatus(String message) {
-		return this.buildStatus(IStatus.WARNING, message);
-	}
-	
-	protected IStatus buildErrorStatus(String message) {
-		return this.buildStatus(IStatus.ERROR, message);
-	}
-	
-	protected IStatus buildStatus(int severity, String message) {
-		return new Status(severity, JptCommonCorePlugin.PLUGIN_ID, message);
-	}
-	
-	@Override
-	protected IStatus performValidation() {
-		HashMap<Integer, ArrayList<IStatus>> statuses = new HashMap<Integer, ArrayList<IStatus>>();
-		statuses.put(ERROR_STATUS, new ArrayList<IStatus>());
-		statuses.put(WARNING_STATUS, new ArrayList<IStatus>());
-		statuses.put(INFO_STATUS, new ArrayList<IStatus>());
-		statuses.put(OK_STATUS, CollectionTools.list(Status.OK_STATUS));
-		
-		performValidation(statuses);
-		
-		if ( ! statuses.get(ERROR_STATUS).isEmpty()) {
-			return statuses.get(ERROR_STATUS).get(0);
-		}
-		else if ( ! statuses.get(WARNING_STATUS).isEmpty()) {
-			return statuses.get(WARNING_STATUS).get(0);
-		}
-		else if ( ! statuses.get(INFO_STATUS).isEmpty()) {
-			return statuses.get(INFO_STATUS).get(0);
-		}
-		else {
-			return statuses.get(OK_STATUS).get(0);
-		}
-	}
-	
-	protected void performValidation(Map<Integer, ArrayList<IStatus>> statuses) {
-		/* library provider */
-		IStatus lpStatus = super.performValidation();
-		statuses.get(Integer.valueOf(lpStatus.getSeverity())).add(lpStatus);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java
deleted file mode 100644
index c6d11fe..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java
+++ /dev/null
@@ -1,699 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import java.util.EventListener;
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-/**
- * This adapter provides a more object-oriented interface to the items and
- * selected item in a combo.
- * <p>
- * <b>listHolder</b> contains the items in the combo.<br>
- * <b>selectedItemHolder</b> contains the items in 'listHolder' that are
- * selected in the combo.
- *
- * @param <E> The type of the items in <b>listHolder</b>
- * @see ComboModelAdapter
- * @see CComboModelAdapter
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public abstract class AbstractComboModelAdapter<E> {
-
-	// ********** model **********
-	/**
-	 * A value model on the underlying model list.
-	 */
-	protected final ListValueModel<E> listHolder;
-
-	/**
-	 * A listener that allows us to synchronize the combo's contents with
-	 * the model list.
-	 */
-	protected final ListChangeListener listChangeListener;
-
-	/**
-	 * A value model on the underlying model selection.
-	 */
-	protected final WritablePropertyValueModel<E> selectedItemHolder;
-
-	/**
-	 * A listener that allows us to synchronize the combo's selection with the
-	 * model selection.
-	 */
-	protected final PropertyChangeListener selectedItemChangeListener;
-
-	/**
-	 * A converter that converts items in the model list
-	 * to strings that can be put in the combo.
-	 */
-	protected StringConverter<E> stringConverter;
-
-	// ********** UI **********
-	/**
-	 * The combo we keep synchronized with the model list.
-	 */
-	protected final ComboHolder comboHolder;
-
-	/**
-	 * A listener that allows us to synchronize our selection list holder
-	 * with the combo's text.
-	 */
-	protected ModifyListener comboModifyListener;
-
-	/**
-	 * A listener that allows us to synchronize our selection list holder
-	 * with the combo's selection.
-	 */
-	protected SelectionListener comboSelectionListener;
-
-	/**
-	 * Clients that are interested in selection change events.
-	 */
-	@SuppressWarnings("unchecked")
-	protected final ListenerList<SelectionChangeListener> selectionChangeListenerList;
-
-	/**
-	 * Clients that are interested in double click events.
-	 */
-	@SuppressWarnings("unchecked")
-	protected final ListenerList<DoubleClickListener> doubleClickListenerList;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the combo
-	 * is disposed.
-	 */
-	protected final DisposeListener comboDisposeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder, selections holder, combo, and
-	 * string converter are required.
-	 */
-	protected AbstractComboModelAdapter(
-			ListValueModel<E> listHolder,
-			WritablePropertyValueModel<E> selectedItemHolder,
-			ComboHolder comboHolder,
-			StringConverter<E> stringConverter)
-	{
-		super();
-
-		Assert.isNotNull(listHolder,         "The holder of the items");
-		Assert.isNotNull(selectedItemHolder, "The holder of the selected item cannot be null");
-		Assert.isNotNull(comboHolder,        "The holder of the combo widget cannot be null");
-		Assert.isNotNull(stringConverter,    "The string converter cannot be null");
-
-		this.listHolder         = listHolder;
-		this.selectedItemHolder = selectedItemHolder;
-		this.comboHolder        = comboHolder;
-		this.stringConverter    = stringConverter;
-
-		this.listChangeListener = this.buildListChangeListener();
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-
-		this.selectedItemChangeListener = this.buildSelectedItemChangeListener();
-		this.selectedItemHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener);
-
-		if (this.comboHolder.isEditable()) {
-			this.comboModifyListener = this.buildComboModifyListener();
-			this.comboHolder.addModifyListener(this.comboModifyListener);
-		}
-		else {
-			this.comboSelectionListener = this.buildComboSelectionListener();
-			this.comboHolder.addSelectionListener(this.comboSelectionListener);
-		}
-
-		this.selectionChangeListenerList = this.buildSelectionChangeListenerList();
-		this.doubleClickListenerList = this.buildDoubleClickListenerList();
-
-		this.comboDisposeListener = this.buildComboDisposeListener();
-		this.comboHolder.addDisposeListener(this.comboDisposeListener);
-
-		this.synchronizeCombo();
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				AbstractComboModelAdapter.this.listItemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				AbstractComboModelAdapter.this.listItemsRemoved(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				AbstractComboModelAdapter.this.listItemsMoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				AbstractComboModelAdapter.this.listItemsReplaced(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				AbstractComboModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				AbstractComboModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list listener";
-			}
-		};
-	}
-
-	protected PropertyChangeListener buildSelectedItemChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_());
-	}
-
-	protected PropertyChangeListener buildSelectedItemChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				AbstractComboModelAdapter.this.selectedItemChanged(e);
-			}
-		};
-	}
-
-	protected ModifyListener buildComboModifyListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				AbstractComboModelAdapter.this.comboSelectionChanged(event);
-			}
-
-			@Override
-			public String toString() {
-				return "combo modify listener";
-			}
-		};
-	}
-
-	protected SelectionListener buildComboSelectionListener() {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent event) {
-				AbstractComboModelAdapter.this.comboSelectionChanged(event);
-			}
-
-			@Override
-			public String toString() {
-				return "combo modify listener";
-			}
-		};
-	}
-
-	@SuppressWarnings("unchecked")
-	protected ListenerList<DoubleClickListener> buildDoubleClickListenerList() {
-		return new ListenerList<DoubleClickListener>(DoubleClickListener.class);
-	}
-
-	@SuppressWarnings("unchecked")
-	protected ListenerList<SelectionChangeListener> buildSelectionChangeListenerList() {
-		return new ListenerList<SelectionChangeListener>(SelectionChangeListener.class);
-	}
-
-	protected DisposeListener buildComboDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				AbstractComboModelAdapter.this.comboDisposed(event);
-			}
-
-			@Override
-			public String toString() {
-				return "combo dispose listener";
-			}
-		};
-	}
-
-	protected void synchronizeCombo() {
-		this.synchronizeComboItems();
-		this.synchronizeComboSelection();
-	}
-
-
-	// ********** string converter **********
-
-	public void setStringConverter(StringConverter<E> stringConverter) {
-		Assert.isNotNull(stringConverter, "The StringConverter cannot be null");
-		this.stringConverter = stringConverter;
-		this.synchronizeCombo();
-	}
-
-
-	// ********** list **********
-
-	/**
-	 * Use the string converter to convert the specified item to a
-	 * string that can be added to the combo.
-	 */
-	protected String convert(E item) {
-		return this.stringConverter.convertToString(item);
-	}
-
-	/**
-	 * Brute force synchronization of combo with the model list.
-	 */
-	protected void synchronizeComboItems() {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		int len = this.listHolder.size();
-		String[] items = new String[len];
-		for (int index = 0; index < len; index++) {
-			items[index] = this.convert(this.listHolder.get(index));
-		}
-		try {
-			this.comboHolder.setPopulating(true);
-			this.comboHolder.setItems(items);
-		}
-		finally {
-			this.comboHolder.setPopulating(false);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listItemsAdded(ListAddEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-
-		int count = this.comboHolder.getItemCount();
-		int index = event.getIndex();
-
-		for (E item : this.getItems(event)) {
-			this.comboHolder.add(this.convert(item), index++);
-		}
-
-		// When the combo is populated, it's possible the selection was already
-		// set but no items was found, resync the selected item
-		synchronizeComboSelection();
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listItemsRemoved(ListRemoveEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		this.comboHolder.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1);
-		this.synchronizeComboSelection();
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listItemsMoved(ListMoveEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		int target = event.getTargetIndex();
-		int source = event.getSourceIndex();
-		int len = event.getLength();
-		int loStart = Math.min(target, source);
-		int hiStart = Math.max(target, source);
-		// make a copy of the affected items...
-		String[] subArray = ArrayTools.subArray(this.comboHolder.getItems(), loStart, hiStart + len - loStart);
-		// ...move them around...
-		subArray = ArrayTools.move(subArray, target - loStart, source - loStart, len);
-		// ...and then put them back
-		for (int index = 0; index < subArray.length; index++) {
-			this.comboHolder.setItem(loStart + index, subArray[index]);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listItemsReplaced(ListReplaceEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		int index = event.getIndex();
-		int selectionIndex = this.comboHolder.getSelectionIndex();
-		//fixing bug 269100 by setting the populating flag to true
-		this.comboHolder.setPopulating(true);
-		try {
-			for (E item : this.getNewItems(event)) {
-				this.comboHolder.setItem(index++, this.convert(item));
-			}
-			if (selectionIndex == 0) {
-				this.comboHolder.setText(this.comboHolder.getItems()[0]);
-			}
-		}
-		finally {
-			this.comboHolder.setPopulating(false);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listCleared(ListClearEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		this.comboHolder.setPopulating(true);
-		try {
-			this.comboHolder.removeAll();
-		}
-		finally {
-			this.comboHolder.setPopulating(false);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the combo.
-	 */
-	protected void listChanged(ListChangeEvent event) {
-		this.synchronizeCombo();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getNewItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getNewItems();
-	}
-
-
-	// ********** selected items **********
-
-	protected int indexOf(E item) {
-		int length = this.listHolder.size();
-		for (int index = 0; index < length; index++) {
-			if (valuesAreEqual(this.listHolder.get(index), item)) {
-				return index;
-			}
-		}
-		return -1;
-	}
-
-	protected void synchronizeComboSelection() {
-		if (this.comboHolder.isDisposed() || this.comboHolder.isPopulating()) {
-			return;
-		}
-
-		E selectedValue = this.selectedItemHolder.getValue();
-		if (this.comboHolder.getText().equals(selectedValue)) {
-			//if the selection is still the same, don't reset it
-			return;
-		}
-		this.comboHolder.setPopulating(true);
-		try {
-			this.comboHolder.deselectAll();
-			String selectedItem = this.convert(selectedValue);
-			if (selectedItem == null) {
-				selectedItem = "";
-			}
-			this.comboHolder.setText(selectedItem);
-			this.notifyListeners(selectedValue);
-		}
-		finally {
-			this.comboHolder.setPopulating(false);
-		}
-	}
-
-	protected void selectedItemChanged(PropertyChangeEvent event) {
-		this.synchronizeComboSelection();
-	}
-
-	/**
-	 * Return whether the values are equal, with the appropriate null checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 */
-	protected final boolean valuesAreEqual(Object value1, Object value2) {
-		if ((value1 == null) && (value2 == null)) {
-			return true;	// both are null
-		}
-		if ((value1 == null) || (value2 == null)) {
-			return false;	// one is null but the other is not
-		}
-		return value1.equals(value2);
-	}
-
-	// ********** combo events **********
-
-	protected void comboSelectionChanged(SelectionEvent event) {
-		this.selectionChanged();
-	}
-
-	protected void comboSelectionChanged(ModifyEvent event) {
-		this.selectionChanged();
-	}
-
-	protected void selectionChanged() {
-		if (!this.comboHolder.isPopulating()) {
-			E selectedItem = this.selectedItem();
-			this.comboHolder.setPopulating(true);
-			try {
-				this.selectedItemHolder.setValue(selectedItem);
-				this.notifyListeners(selectedItem);
-			}
-			finally {
-				this.comboHolder.setPopulating(false);
-			}
-		}
-	}
-
-	private void notifyListeners(E selectedItem) {
-		if (this.selectionChangeListenerList.size() > 0) {
-			SelectionChangeEvent<E> scEvent = new SelectionChangeEvent<E>(this, selectedItem);
-			for (SelectionChangeListener<E> selectionChangeListener : this.selectionChangeListenerList.getListeners()) {
-				selectionChangeListener.selectionChanged(scEvent);
-			}
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	protected E selectedItem() {
-		if (this.comboHolder.isDisposed()) {
-			return null;
-		}
-
-		if (this.comboHolder.isEditable()) {
-			String text = this.comboHolder.getText();
-
-			if (text.length() == 0) {
-				return null;
-			}
-
-			for (int index = this.listHolder.size(); --index >= 0; ) {
-				E item = this.listHolder.get(index);
-				String value = this.convert(item);
-				if (valuesAreEqual(text, value)) {
-					return item;
-				}
-			}
-
-			// TODO: Find a way to prevent this type cast (it'll work if E is
-			// String but it won't work if E is something else), maybe use a
-			// BidiStringConverter instead of StringConverter
-			try {
-				return (E) text;
-			}
-			catch (ClassCastException e) {
-				return null;
-			}
-		}
-
-		int index = this.comboHolder.getSelectionIndex();
-
-		if (index == -1) {
-			return null;
-		}
-
-		return this.listHolder.get(index);
-	}
-
-	protected void comboDoubleClicked(SelectionEvent event) {
-		if (this.comboHolder.isDisposed()) {
-			return;
-		}
-		if (this.doubleClickListenerList.size() > 0) {
-			// there should be only a single item selected during a double-click(?)
-			E selection = this.listHolder.get(this.comboHolder.getSelectionIndex());
-			DoubleClickEvent<E> dcEvent = new DoubleClickEvent<E>(this, selection);
-			for (DoubleClickListener<E> doubleClickListener : this.doubleClickListenerList.getListeners()) {
-				doubleClickListener.doubleClick(dcEvent);
-			}
-		}
-	}
-
-
-	// ********** dispose **********
-
-	protected void comboDisposed(DisposeEvent event) {
-		// the combo is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.comboHolder.removeDisposeListener(this.comboDisposeListener);
-		if (this.comboHolder.isEditable()) {
-			this.comboHolder.removeModifyListener(this.comboModifyListener);
-		}
-		else {
-			this.comboHolder.removeSelectionListener(this.comboSelectionListener);
-		}
-		this.selectedItemHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener);
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listHolder);
-	}
-
-
-	// ********** double click support **********
-
-	public void addDoubleClickListener(DoubleClickListener<E> listener) {
-		this.doubleClickListenerList.add(listener);
-	}
-
-	public void removeDoubleClickListener(DoubleClickListener<E> listener) {
-		this.doubleClickListenerList.remove(listener);
-	}
-
-	public interface DoubleClickListener<E> extends EventListener {
-		void doubleClick(DoubleClickEvent<E> event);
-	}
-
-	public static class DoubleClickEvent<E> extends EventObject {
-		private final E selection;
-		private static final long serialVersionUID = 1L;
-
-		protected DoubleClickEvent(AbstractComboModelAdapter<E> source, E selection) {
-			super(source);
-			if (selection == null) {
-				throw new NullPointerException();
-			}
-			this.selection = selection;
-		}
-
-		@Override
-		@SuppressWarnings("unchecked")
-		public AbstractComboModelAdapter<E> getSource() {
-			return (AbstractComboModelAdapter<E>) super.getSource();
-		}
-
-		public E selection() {
-			return this.selection;
-		}
-	}
-
-
-	// ********** selection support **********
-
-	public void addSelectionChangeListener(SelectionChangeListener<E> listener) {
-		this.selectionChangeListenerList.add(listener);
-	}
-
-	public void removeSelectionChangeListener(SelectionChangeListener<E> listener) {
-		this.selectionChangeListenerList.remove(listener);
-	}
-
-	public interface SelectionChangeListener<E> extends EventListener {
-		void selectionChanged(SelectionChangeEvent<E> event);
-	}
-
-	public static class SelectionChangeEvent<E> extends EventObject {
-		private final E selectedItem;
-		private static final long serialVersionUID = 1L;
-
-		protected SelectionChangeEvent(AbstractComboModelAdapter<E> source, E selectedItem) {
-			super(source);
-			this.selectedItem = selectedItem;
-		}
-
-		@Override
-		@SuppressWarnings("unchecked")
-		public AbstractComboModelAdapter<E> getSource() {
-			return (AbstractComboModelAdapter<E>) super.getSource();
-		}
-
-		public E selectedItem() {
-			return this.selectedItem;
-		}
-	}
-
-	// ********** Internal member **********
-
-	/**
-	 * This holder is required for supporting <code>Combo</code> and
-	 * <code>CCombo</code> transparently.
-	 */
-	protected static interface ComboHolder {
-		void add(String item, int index);
-		void addDisposeListener(DisposeListener disposeListener);
-		void addModifyListener(ModifyListener modifyListener);
-		void addSelectionListener(SelectionListener selectionListener);
-		void deselectAll();
-		int getItemCount();
-		String[] getItems();
-		int getSelectionIndex();
-		String getText();
-		boolean isDisposed();
-		boolean isEditable();
-		boolean isPopulating();
-		void removeDisposeListener(DisposeListener disposeListener);
-		void removeModifyListener(ModifyListener modifyListener);
-		void removeSelectionListener(SelectionListener selectionListener);
-		void setItem(int index, String item);
-		void setItems(String[] items);
-		void setPopulating(boolean populating);
-		void setText(String item);
-		void remove(int start, int end);
-		void removeAll();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java
deleted file mode 100644
index 775bf91..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This adapter is used by the table model adapter to convert a model object
- * into the models used for each of the cells for the object's corresponding row
- * in the table.
- *
- * @version 2.0
- * @since 2.0
- */
-public interface ColumnAdapter<V> {
-
-	/**
-	 * Return the cell models for the specified subject
-	 * that corresponds to a single row in the table.
-	 */
-	WritablePropertyValueModel<?>[] cellModels(V subject);
-
-	/**
-	 * Returns the number of columns in the table. Typically this is static.
-	 *
-	 * @return The number of columns
-	 */
-	int columnCount();
-
-	/**
-	 * Returns the name of the column at the specified index.
-	 *
-	 * @param columnIndex The index of the column to retrieve its display text
-	 * @return The display text of the column
-	 */
-	String columnName(int columnIndex);
-
-	/**
-	 * Returns whether the specified column is editable. Typically this is the
-	 * same for every row.
-	 *
-	 * @param columnIndex The index of the column for which we determine if
-	 * the content can be modified
-	 * @return <code>true</code> to allow editing of the cell at the given
-	 * column index; <code>false</code> to keep it not editable
-	 */
-//	boolean columnIsEditable(int columnIndex);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java
deleted file mode 100644
index 39794a9..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * This adapter provides a more object-oriented interface to the items and
- * selected item in a <code>Combo</code>.
- * <p>
- * <b>listHolder</b> contains the items in the <code>Combo</code>.<br>
- * <b>selectedItemHolder</b> contains the items in 'listHolder' that are
- * selected in the <code>Combo</code>.
- *
- * @param <E> The type of the items in <b>listHolder</b>
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public class ComboModelAdapter<E> extends AbstractComboModelAdapter<E> {
-
-	// ********** static methods **********
-
-	/**
-	 * Adapt the specified model list and selection to the specified combo.
-	 * Use the default string converter to convert the model items to strings
-	 * to be displayed in the combo, which calls #toString() on the
-	 * items in the model list.
-	 */
-	public static <T> ComboModelAdapter<T> adapt(
-			ListValueModel<T> listHolder,
-			WritablePropertyValueModel<T> selectedItemHolder,
-			Combo combo)
-	{
-		return adapt(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			StringConverter.Default.<T>instance()
-		);
-	}
-
-	/**
-	 * Adapt the specified model list and selection to the specified combo.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the combo.
-	 */
-	public static <T> ComboModelAdapter<T> adapt(
-			ListValueModel<T> listHolder,
-			WritablePropertyValueModel<T> selectedItemHolder,
-			Combo combo,
-			StringConverter<T> stringConverter)
-	{
-		return new ComboModelAdapter<T>(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			stringConverter
-		);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder, selections holder, combo, and
-	 * string converter are required.
-	 */
-	protected ComboModelAdapter(
-			ListValueModel<E> listHolder,
-			WritablePropertyValueModel<E> selectedItemHolder,
-			Combo combo,
-			StringConverter<E> stringConverter)
-	{
-		super(listHolder,
-		      selectedItemHolder,
-		      new SWTComboHolder(combo),
-		      stringConverter);
-	}
-
-
-	// ********** Internal member **********
-
-	private static class SWTComboHolder implements ComboHolder {
-		private final Combo combo;
-		private final boolean editable;
-		private String selectedItem;
-
-		SWTComboHolder(Combo combo) {
-			super();
-			this.combo    = combo;
-			this.editable = (combo.getStyle() & SWT.READ_ONLY) == 0;
-		}
-
-		public void add(String item, int index) {
-			this.combo.add(item, index);
-
-			// It is possible the selected item was set before the combo is being
-			// populated, update the selected item if it's matches the item being
-			// added
-			if ((this.selectedItem != null) && this.selectedItem.equals(item)) {
-				this.setText(this.selectedItem);
-				this.selectedItem = null;
-			}
-		}
-
-		public void addDisposeListener(DisposeListener disposeListener) {
-			this.combo.addDisposeListener(disposeListener);
-		}
-
-		public void addModifyListener(ModifyListener modifyListener) {
-			this.combo.addModifyListener(modifyListener);
-		}
-
-		public void addSelectionListener(SelectionListener selectionListener) {
-			this.combo.addSelectionListener(selectionListener);
-		}
-
-		public void deselectAll() {
-			this.combo.deselectAll();
-		}
-
-		public int getItemCount() {
-			return this.combo.getItemCount();
-		}
-
-		public String[] getItems() {
-			return this.combo.getItems();
-		}
-
-		public int getSelectionIndex() {
-			return this.combo.getSelectionIndex();
-		}
-
-		public String getText() {
-			return this.combo.getText();
-		}
-
-		public boolean isDisposed() {
-			return this.combo.isDisposed();
-		}
-
-		public boolean isEditable() {
-			return this.editable;
-		}
-
-		public boolean isPopulating() {
-			return this.combo.getData("populating") == Boolean.TRUE;
-		}
-
-		public void remove(int start, int end) {
-			this.combo.remove(start, end);
-		}
-
-		public void removeAll() {
-			this.combo.removeAll();
-		}
-
-		public void removeDisposeListener(DisposeListener disposeListener) {
-			this.combo.removeDisposeListener(disposeListener);
-		}
-
-		public void removeModifyListener(ModifyListener modifyListener) {
-			this.combo.removeModifyListener(modifyListener);
-		}
-
-		public void removeSelectionListener(SelectionListener selectionListener) {
-			this.combo.removeSelectionListener(selectionListener);
-		}
-
-		public void setItem(int index, String item) {
-			this.combo.setItem(index, item);
-		}
-
-		public void setItems(String[] items) {
-			this.combo.setItems(items);
-		}
-
-		public void setPopulating(boolean populating) {
-			this.combo.setData("populating", Boolean.valueOf(populating));
-		}
-
-		public void setText(String item) {
-
-			// Keep track of the selected item since it's possible the selected
-			// item is before the combo is populated
-			if (this.combo.getItemCount() == 0) {
-				this.selectedItem = item;
-			}
-			else {
-				this.selectedItem = null;
-			}
-			this.combo.setText(item);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java
deleted file mode 100644
index 7347f3e..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.DateTime;
-
-/**
- * This adapter can be used to keep a DateTime widget in synch with
- * model integers hours, minutes, and seconds.  Has default hours,
- * minutes and seconds of 0 which corresponds to 12:00:00 AM. This model
- * adapter can only be used for a DateTime widget with the style SWT.TIME
- */
-@SuppressWarnings("nls")
-public class DateTimeModelAdapter {
-
-	/**
-	 * A value model on the underlying model hours integer.
-	 */
-	protected final WritablePropertyValueModel<Integer> hoursHolder;
-	
-	/**
-	 * A value model on the underlying model minutes integer.
-	 */
-	protected final WritablePropertyValueModel<Integer> minutesHolder;
-	
-	/**
-	 * A value model on the underlying model seconds integer.
-	 */
-	protected final WritablePropertyValueModel<Integer> secondsHolder;
-
-	/**
-	 * A listener that allows us to synchronize the dateTime's selection state with
-	 * the model hours integer.
-	 */
-	protected final PropertyChangeListener hoursPropertyChangeListener;
-	
-	/**
-	 * A listener that allows us to synchronize the dateTime's selection state with
-	 * the model minutes integer.
-	 */
-	protected final PropertyChangeListener minutesPropertyChangeListener;
-	
-	/**
-	 * A listener that allows us to synchronize the dateTime's selection state with
-	 * the model seconds integer.
-	 */
-	protected final PropertyChangeListener secondsPropertyChangeListener;
-
-	/**
-	 * The dateTime we keep synchronized with the model integers.
-	 */
-	protected final DateTime dateTime;
-
-	/**
-	 * A listener that allows us to synchronize our selection number holder
-	 * with the spinner's value.
-	 */
-	protected final SelectionListener dateTimeSelectionListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the dateTime
-	 * is disposed.
-	 */
-	protected final DisposeListener dateTimeDisposeListener;
-
-	/**
-	 * This lock is used to prevent the listeners to be notified when the value
-	 * changes from the spinner or from the holder.
-	 */
-	private boolean locked;
-
-	// ********** static methods **********
-
-	/**
-	 * Adapt the specified model integer holders to the specified dateTime.
-	 */
-	public static DateTimeModelAdapter adapt(
-			WritablePropertyValueModel<Integer> hoursHolder,
-			WritablePropertyValueModel<Integer> minutesHolder,
-			WritablePropertyValueModel<Integer> secondsHolder,
-			DateTime dateTime)
-	{
-		return new DateTimeModelAdapter(hoursHolder, minutesHolder, secondsHolder, dateTime);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the hoursHolder, minutesHolder, secondsHolder, and dateTime are required
-	 */
-	protected DateTimeModelAdapter(WritablePropertyValueModel<Integer> hoursHolder,
-									WritablePropertyValueModel<Integer> minutesHolder,
-									WritablePropertyValueModel<Integer> secondsHolder,
-									DateTime dateTime) {
-		super();
-		if ((hoursHolder == null) 
-			|| (minutesHolder == null) 
-			|| (secondsHolder == null) 
-			|| (dateTime == null)) {
-			throw new NullPointerException();
-		}
-		this.hoursHolder = hoursHolder;
-		this.minutesHolder = minutesHolder;
-		this.secondsHolder = secondsHolder;
-		this.dateTime = dateTime;
-
-		this.hoursPropertyChangeListener = this.buildHoursPropertyChangeListener();
-		this.hoursHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.hoursPropertyChangeListener);
-
-		this.minutesPropertyChangeListener = this.buildMinutesPropertyChangeListener();
-		this.minutesHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.minutesPropertyChangeListener);
-
-		this.secondsPropertyChangeListener = this.buildSecondsPropertyChangeListener();
-		this.secondsHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.secondsPropertyChangeListener);
-		
-		this.dateTimeSelectionListener = this.buildDateTimeSelectionListener();
-		this.dateTime.addSelectionListener(this.dateTimeSelectionListener);
-
-		this.dateTimeDisposeListener = this.buildDateTimeDisposeListener();
-		this.dateTime.addDisposeListener(this.dateTimeDisposeListener);
-
-		this.updateDateTimeHours(hoursHolder.getValue());
-		this.updateDateTimeMinutes(minutesHolder.getValue());
-		this.updateDateTimeSeconds(secondsHolder.getValue());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildHoursPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildHoursPropertyChangeListener_());
-	}
-
-	protected PropertyChangeListener buildHoursPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DateTimeModelAdapter.this.hoursChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "dateTime hours listener";
-			}
-		};
-	}
-	
-	protected PropertyChangeListener buildMinutesPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildMinutesPropertyChangeListener_());
-	}
-
-	protected PropertyChangeListener buildMinutesPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DateTimeModelAdapter.this.minutesChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "dateTime minutes listener";
-			}
-		};
-	}
-	
-	protected PropertyChangeListener buildSecondsPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSecondsPropertyChangeListener_());
-	}
-
-	protected PropertyChangeListener buildSecondsPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DateTimeModelAdapter.this.secondsChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "dateTime seconds listener";
-			}
-		};
-	}
-
-	protected SelectionListener buildDateTimeSelectionListener() {
-		return new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				DateTimeModelAdapter.this.dateTimeSelected(e);
-			}
-			
-			public void widgetDefaultSelected(SelectionEvent e) {				
-			}
-			
-			@Override
-			public String toString() {
-				return "dateTime selection listener";
-			}
-		};
-	}
-
-	protected DisposeListener buildDateTimeDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				DateTimeModelAdapter.this.dateTimeDisposed(event);
-			}
-			@Override
-			public String toString() {
-				return "dateTime dispose listener";
-			}
-		};
-	}
-
-
-	// ********** model events **********
-
-	protected void hoursChanged(PropertyChangeEvent event) {
-		if (!this.locked) {
-			this.updateDateTimeHours((Integer) event.getNewValue());
-		}
-	}
-
-	protected void minutesChanged(PropertyChangeEvent event) {
-		if (!this.locked) {
-			this.updateDateTimeMinutes((Integer) event.getNewValue());
-		}
-	}
-
-	protected void secondsChanged(PropertyChangeEvent event) {
-		if (!this.locked) {
-			this.updateDateTimeSeconds((Integer) event.getNewValue());
-		}
-	}
-
-	// ********** dateTime events **********
-
-	protected void dateTimeSelected(SelectionEvent event) {
-		if (!this.locked) {
-			this.locked = true;
-			try {
-				//too bad they didn't split the event up
-				hoursSelected();
-				minutesSelected();
-				secondsSelected();
-			}
-			finally {
-				this.locked = false;
-			}
-		}
-	}
-	
-	protected void hoursSelected() {
-		Integer hours = null;
-		if (this.dateTime.getHours() != 0) {
-			hours = Integer.valueOf(this.dateTime.getHours());
-		}
-		this.hoursHolder.setValue(hours);
-	}
-	
-	protected void minutesSelected() {
-		Integer minutes = null;
-		if (this.dateTime.getMinutes() != 0) {
-			minutes = Integer.valueOf(this.dateTime.getMinutes());
-		}
-		this.minutesHolder.setValue(minutes);
-	}
-	
-	protected void secondsSelected() {
-		Integer seconds = null;
-		if (this.dateTime.getSeconds() != 0) {
-			seconds = Integer.valueOf(this.dateTime.getSeconds());
-		}
-		this.secondsHolder.setValue(seconds);
-	}
-
-	protected void dateTimeDisposed(DisposeEvent event) {
-		// the dateTime is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.dateTime.removeDisposeListener(this.dateTimeDisposeListener);
-		this.dateTime.removeSelectionListener(this.dateTimeSelectionListener);
-		this.hoursHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.hoursPropertyChangeListener);
-		this.minutesHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.minutesPropertyChangeListener);
-		this.secondsHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.secondsPropertyChangeListener);
-	}
-
-	// ********** update **********
-
-	protected void updateDateTimeHours(Integer hours) {
-		if (this.dateTime.isDisposed()) {
-			return;
-		}
-		if (hours == null) {
-			hours = Integer.valueOf(0);//TODO defaultHours
-		}
-		this.locked = true;
-		try {
-			this.dateTime.setHours(hours.intValue());
-		}
-		finally {
-			this.locked = false;
-		}
-	}
-	
-	protected void updateDateTimeMinutes(Integer minutes) {
-		if (this.dateTime.isDisposed()) {
-			return;
-		}
-		if (minutes == null) {
-			minutes = Integer.valueOf(0);//TODO defaultMinutes
-		}
-		this.locked = true;
-		try {
-			this.dateTime.setMinutes(minutes.intValue());
-		}
-		finally {
-			this.locked = false;
-		}
-	}
-	
-	protected void updateDateTimeSeconds(Integer seconds) {
-		if (this.dateTime.isDisposed()) {
-			return;
-		}
-		if (seconds == null) {
-			seconds = Integer.valueOf(0);//TODO defaultSeconds
-		}
-		this.locked = true;
-		try {
-			this.dateTime.setSeconds(seconds.intValue());
-		}
-		finally {
-			this.locked = false;
-		}
-	}
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.hoursHolder);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java
deleted file mode 100644
index dabb63e..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- *
- */
-@SuppressWarnings("nls")
-public class SpinnerModelAdapter {
-
-	/**
-	 * A value model on the underlying model list.
-	 */
-	protected final WritablePropertyValueModel<Integer> numberHolder;
-
-	/**
-	 * A listener that allows us to synchronize the spinner's contents with
-	 * the model list.
-	 */
-	protected final PropertyChangeListener propertyChangeListener;
-
-	/**
-	 * The spinner we keep synchronized with the model string.
-	 */
-	protected final Spinner spinner;
-
-	/**
-	 * A listener that allows us to synchronize our selection number holder
-	 * with the spinner's value.
-	 */
-	protected final ModifyListener spinnerModifyListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the spinner
-	 * is disposed.
-	 */
-	protected final DisposeListener spinnerDisposeListener;
-
-	/**
-	 * The value shown when the number holder's value is <code>null</code>.
-	 */
-	protected final int defaultValue;
-
-	/**
-	 * This lock is used to prevent the listeners to be notified when the value
-	 * changes from the spinner or from the holder.
-	 */
-	private boolean locked;
-
-	// ********** static methods **********
-
-	/**
-	 * Adapt the specified model list and selections to the specified spinner.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the spinner.
-	 */
-	public static SpinnerModelAdapter adapt(
-			WritablePropertyValueModel<Integer> numberHolder,
-			Spinner spinner,
-			int defaultValue)
-	{
-		return new SpinnerModelAdapter(numberHolder, spinner, defaultValue);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder, selections holder, list box, and
-	 * string converter are required.
-	 */
-	protected SpinnerModelAdapter(WritablePropertyValueModel<Integer> numberHolder,
-	                              Spinner spinner,
-	                              int defaultValue) {
-		super();
-		if ((numberHolder == null) || (spinner == null)) {
-			throw new NullPointerException();
-		}
-		this.numberHolder = numberHolder;
-		this.spinner = spinner;
-		this.defaultValue = defaultValue;
-
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		this.numberHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-
-		this.spinnerModifyListener = this.buildSpinnerModifyListener();
-		this.spinner.addModifyListener(this.spinnerModifyListener);
-
-		this.spinnerDisposeListener = this.buildSpinnerDisposeListener();
-		this.spinner.addDisposeListener(this.spinnerDisposeListener);
-
-		this.updateSpinner(numberHolder.getValue());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildPropertyChangeListener_());
-	}
-
-	protected PropertyChangeListener buildPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				SpinnerModelAdapter.this.valueChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "spinner listener";
-			}
-		};
-	}
-
-	protected ModifyListener buildSpinnerModifyListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				SpinnerModelAdapter.this.spinnerModified(e);
-			}
-			@Override
-			public String toString() {
-				return "spinner selection listener";
-			}
-		};
-	}
-
-	protected DisposeListener buildSpinnerDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				SpinnerModelAdapter.this.spinnerDisposed(event);
-			}
-			@Override
-			public String toString() {
-				return "spinner dispose listener";
-			}
-		};
-	}
-
-
-	// ********** model events **********
-
-	protected void valueChanged(PropertyChangeEvent event) {
-		if (!this.locked) {
-			this.updateSpinner((Integer) event.getNewValue());
-		}
-	}
-
-
-	// ********** spinner events **********
-
-	protected void spinnerModified(ModifyEvent event) {
-		if (!this.locked) {
-			this.locked = true;
-			try {
-				this.numberHolder.setValue(this.spinner.getSelection());
-			}
-			finally {
-				this.locked = false;
-			}
-		}
-	}
-
-	protected void spinnerDisposed(DisposeEvent event) {
-		// the spinner is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.spinner.removeDisposeListener(this.spinnerDisposeListener);
-		this.spinner.removeModifyListener(this.spinnerModifyListener);
-		this.numberHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-	}
-
-	// ********** update **********
-
-	protected void updateSpinner(Integer value) {
-		if (this.spinner.isDisposed()) {
-			return;
-		}
-		// the model can be null, but the spinner cannot
-		if (value == null) {
-			value = defaultValue;
-		}
-		this.locked = true;
-		try {
-			this.spinner.setSelection(value);
-		}
-		finally {
-			this.locked = false;
-		}
-	}
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.numberHolder);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java
deleted file mode 100644
index cc1a67e..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * This adapter can be used to keep a table item in synch with the properties of
- * a model.
- */
-@SuppressWarnings("nls")
-public class TableItemModelAdapter {
-
-	/** The table item we synchronize with the model. */
-	protected final TableItem tableItem;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the button
-	 * is disposed.
-	 */
-	protected final DisposeListener tableItemDisposeListener;
-
-	/**
-	 * Client-supplied adapter that provides with the various column settings and
-	 * converts the objects in the LVM into an array of cell models.
-	 */
-	private ColumnAdapter<Object> columnAdapter;
-
-	/**
-	 * The value models used to listen to each property that are display by the
-	 * table item.
-	 */
-	private WritablePropertyValueModel<?>[] valueHolders;
-
-	/**
-	 * The list of <code>PropertyChangeListener</code>s used to be notified when
-	 * the properties of the model being display into a row change.
-	 */
-	private PropertyChangeListener[] propertyChangeListeners;
-
-	/**
-	 * The label used to format the objects into a string representation.
-	 */
-	private ITableLabelProvider labelProvider;
-
-	// ********** static methods **********
-
-	/**
-	 * Adapt the specified boolean to the specified button.
-	 * If the boolean is null, the button's value will be "unselected".
-	 */
-	public static TableItemModelAdapter adapt(TableItem tableItem, ColumnAdapter<?> columnAdapter, ITableLabelProvider labelProvider) {
-		return new TableItemModelAdapter(tableItem, columnAdapter, labelProvider);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder and button are required.
-	 */
-	@SuppressWarnings("unchecked")
-	protected TableItemModelAdapter(TableItem tableItem, ColumnAdapter<?> columnAdapter, ITableLabelProvider labelProvider) {
-		super();
-		if (tableItem == null || columnAdapter == null || labelProvider == null) {
-			throw new NullPointerException();
-		}
-		this.tableItem = tableItem;
-		this.labelProvider = labelProvider;
-		this.columnAdapter = (ColumnAdapter<Object>) columnAdapter;
-
-		this.tableItemDisposeListener = this.buildTableItemDisposeListener();
-		this.tableItem.addDisposeListener(this.tableItemDisposeListener);
-
-		this.valueHolders = this.columnAdapter.cellModels(tableItem.getData());
-		this.propertyChangeListeners = this.buildPropertyChangeListeners();
-
-		for (int index = this.columnAdapter.columnCount(); --index >= 0; ) {
-			tableItemChanged(index, tableItem.getData(), false);
-			valueHolders[index].addPropertyChangeListener(PropertyValueModel.VALUE, propertyChangeListeners[index]);
-		}
-	}
-
-
-	// ********** initialization **********
-
-	private PropertyChangeListener[] buildPropertyChangeListeners() {
-		PropertyChangeListener[] listeners = new PropertyChangeListener[columnAdapter.columnCount()];
-		for (int index = listeners.length; --index >= 0; ) {
-			listeners[index] = buildPropertyChangeListener(index);
-		}
-		return listeners;
-	}
-
-
-	protected PropertyChangeListener buildPropertyChangeListener(int index) {
-		return new SWTPropertyChangeListenerWrapper(
-			this.buildPropertyChangeListener_(index)
-		);
-	}
-
-	protected PropertyChangeListener buildPropertyChangeListener_(int index) {
-		return new TableItemPropertyChangeListener(index);
-	}
-
-	protected DisposeListener buildTableItemDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				TableItemModelAdapter.this.tableItemDisposed(event);
-			}
-		    @Override
-			public String toString() {
-				return "TableItem dispose listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	protected void tableItemChanged(int index, Object subject, boolean revalidate) {
-
-		if (!this.tableItem.isDisposed()) {
-			this.updateTableItemText(index, subject);
-			this.updateTableItemImage(index, subject);
-
-			if (revalidate) {
-				this.layoutTable();
-			}
-		}
-	}
-
-	private void updateTableItemText(int index, Object subject) {
-		String text = this.labelProvider.getColumnText(subject, index);
-		if (text == null) {
-			text = "";
-		}
-		this.tableItem.setText(index, text);
-	}
-
-	private void updateTableItemImage(int index, Object subject) {
-		Image image = this.labelProvider.getColumnImage(subject, index);
-		this.tableItem.setImage(index, image);
-	}
-
-	private void layoutTable() {
-		// Refresh the table in order to show the scrollbar if required
-		Composite container = this.tableItem.getParent().getParent();
-		container.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		container.layout();
-	}
-
-	// ********** dispose **********
-
-	protected void tableItemDisposed(DisposeEvent event) {
-		// the button is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.tableItem.removeDisposeListener(this.tableItemDisposeListener);
-
-		for (int index = valueHolders.length; --index >= 0; ) {
-			valueHolders[index].removePropertyChangeListener(PropertyValueModel.VALUE, propertyChangeListeners[index]);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-   private class TableItemPropertyChangeListener implements PropertyChangeListener {
-
-   	private final int index;
-
-   	TableItemPropertyChangeListener(int index) {
-   		super();
-   		this.index = index;
-   	}
-
-   	public void propertyChanged(PropertyChangeEvent event) {
-   		if (!tableItem.isDisposed()) {
-   			Table table = tableItem.getParent();
-   			tableItemChanged(index, tableItem.getData(), table.getColumnCount() == 0);
-   		}
-   	}
-   }
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java
deleted file mode 100644
index 8d3b4e3..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java
+++ /dev/null
@@ -1,746 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventListener;
-import java.util.EventObject;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * This adapter provides a more object-oriented interface to the items and
- * selected items in a table.
- * {@link #listHolder} contains the data of a single column in the table.
- * {@link #selectedItemsHolder} contains the data of a single column in
- * {@link #listHolder} that are selected in the table.
- */
-// TODO bjv
-@SuppressWarnings("nls")
-public class TableModelAdapter<E> {
-
-	// ********** model **********
-	/**
-	 * A value model on the underlying model list.
-	 */
-	protected final ListValueModel<E> listHolder;
-
-	/**
-	 * A listener that allows us to synchronize the table's contents with
-	 * the model list.
-	 */
-	protected final ListChangeListener listChangeListener;
-
-	/**
-	 * A value model on the underlying model selections.
-	 */
-	protected final CollectionValueModel<E> selectedItemsHolder;
-
-	/**
-	 * A listener that allows us to synchronize the table's selection with
-	 * the model selections.
-	 */
-	protected final CollectionChangeListener selectedItemsChangeListener;
-
-	/**
-	 * The table we keep synchronized with the model list.
-	 */
-	protected final Table table;
-
-	/**
-	 * A listener that allows us to synchronize our selection list holder
-	 * with the table's selection.
-	 */
-	protected final SelectionListener tableSelectionListener;
-
-	/**
-	 * Clients that are interested in selection change events.
-	 */
-	protected final ListenerList<SelectionChangeListener<E>> selectionChangeListenerList;
-
-	/**
-	 * Clients that are interested in double click events.
-	 */
-	protected final ListenerList<DoubleClickListener<E>> doubleClickListenerList;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the table
-	 * is disposed.
-	 */
-	protected final DisposeListener tableDisposeListener;
-
-	/**
-	 * This label provider is responsible to convert a property at a column index
-	 * to a string value.
-	 */
-	protected final ITableLabelProvider labelProvider;
-
-	/**
-	 * The column adapter is responsible to return the count of columns and to
-	 * create the value holders for all the properties.
-	 */
-	private ColumnAdapter<E> columnAdapter;
-
-	/**
-	 * Keeps track of the <code>TableItemModelAdapter</code>s that were created
-	 * for each item of the list holder.
-	 */
-	private List<TableItemModelAdapter> tableItemModelAdapters;
-
-
-	// ********** static methods **********
-	
-	/**
-	 * Adapt the specified list model and selection to the specified table.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the table.
-	 */
-	public static <T> TableModelAdapter<T> adapt(
-			ListValueModel<T> listHolder,
-			PropertyValueModel<T> selectedItemHolder,
-			Table table,
-			ColumnAdapter<T> columnAdapter,
-			ITableLabelProvider labelProvider) {
-		
-		return new TableModelAdapter<T>(
-			listHolder,
-			new PropertyCollectionValueModelAdapter<T>(selectedItemHolder),
-			table,
-			columnAdapter,
-			labelProvider);
-	}
-	
-	/**
-	 * Adapt the specified list model and selection to the specified table.
-	 * The specified selection model will be kept in sync with the table.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the table.
-	 */
-	public static <T> TableModelAdapter<T> adapt(
-			ListValueModel<T> listHolder,
-			WritableCollectionValueModel<T> selectionModel,
-			Table table,
-			ColumnAdapter<T> columnAdapter,
-			ITableLabelProvider labelProvider) {
-		
-		TableModelAdapter adapter = 
-				new TableModelAdapter<T>(
-					listHolder,
-					selectionModel,
-					table,
-					columnAdapter,
-					labelProvider);
-		adapter.addSelectionChangeListener(buildSyncListener(selectionModel));
-		return adapter;
-	}
-	
-	private static <T> SelectionChangeListener buildSyncListener(
-				final WritableCollectionValueModel<T> selectionModel) {
-		
-		return new SelectionChangeListener() {
-			public void selectionChanged(SelectionChangeEvent event) {
-				selectionModel.setValues(CollectionTools.iterable(event.selection()));
-			}
-		};
-	}
-	
-	
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder, selections holder, table, and
-	 * string converter are required.
-	 */
-	protected TableModelAdapter(
-			ListValueModel<E> listHolder,
-			CollectionValueModel<E> selectedItemsHolder,
-			Table table,
-			ColumnAdapter<E> columnAdapter,
-			ITableLabelProvider labelProvider)
-	{
-		super();
-		if ((listHolder == null) || (selectedItemsHolder == null) || (table == null) || (labelProvider == null)) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.selectedItemsHolder = selectedItemsHolder;
-		this.table = table;
-		this.columnAdapter = columnAdapter;
-		this.labelProvider = labelProvider;
-		this.tableItemModelAdapters = new ArrayList<TableItemModelAdapter>(columnAdapter.columnCount());
-
-		this.listChangeListener = this.buildListChangeListener();
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-
-		this.selectedItemsChangeListener = this.buildSelectedItemsChangeListener();
-		this.selectedItemsHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener);
-
-		this.tableSelectionListener = this.buildTableSelectionListener();
-		this.table.addSelectionListener(this.tableSelectionListener);
-
-		this.selectionChangeListenerList = this.buildSelectionChangeListenerList();
-		this.doubleClickListenerList = this.buildDoubleClickListenerList();
-
-		this.tableDisposeListener = this.buildTableDisposeListener();
-		this.table.addDisposeListener(this.tableDisposeListener);
-
-		this.synchronizeTable();
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				TableModelAdapter.this.listItemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				TableModelAdapter.this.listItemsRemoved(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				TableModelAdapter.this.listItemsMoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				TableModelAdapter.this.listItemsReplaced(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				TableModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				TableModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "TableModelAdapter list listener";
-			}
-		};
-	}
-
-	protected CollectionChangeListener buildSelectedItemsChangeListener() {
-		return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_());
-	}
-
-	protected CollectionChangeListener buildSelectedItemsChangeListener_() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				TableModelAdapter.this.selectedItemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				TableModelAdapter.this.selectedItemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				TableModelAdapter.this.selectedItemsCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				TableModelAdapter.this.selectedItemsChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "TableModelAdapter selected items listener";
-			}
-		};
-	}
-
-	protected SelectionListener buildTableSelectionListener() {
-		return new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				TableModelAdapter.this.tableSelectionChanged(event);
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				TableModelAdapter.this.tableDoubleClicked(event);
-			}
-			@Override
-			public String toString() {
-				return "TableModelAdapter table selection listener";
-			}
-		};
-	}
-
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	protected ListenerList<DoubleClickListener<E>> buildDoubleClickListenerList() {
-		return new ListenerList(DoubleClickListener.class);
-	}
-
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	protected ListenerList<SelectionChangeListener<E>> buildSelectionChangeListenerList() {
-		return new ListenerList(SelectionChangeListener.class);
-	}
-
-	protected DisposeListener buildTableDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				TableModelAdapter.this.tableDisposed(event);
-			}
-			@Override
-			public String toString() {
-				return "TableModelAdapter table dispose listener";
-			}
-		};
-	}
-
-	protected void synchronizeTable() {
-		this.synchronizeTableColumns();
-		this.synchronizeTableItems();
-		this.synchronizeTableSelection();
-	}
-
-
-	// ********** list **********
-
-	/**
-	 * Creates the table colums.
-	 */
-	protected void synchronizeTableColumns() {
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		int columnCount = this.columnAdapter.columnCount();
-
-		for (int index = 0; index < columnCount; index++) {
-			TableColumn tableColumn = new TableColumn(this.table, SWT.NULL, index);
-			tableColumn.setMoveable(false);
-			tableColumn.setResizable(true);
-			tableColumn.setWidth(100);
-
-			String columnName = this.columnAdapter.columnName(index);
-
-			if (columnName == null) {
-				columnName = "";
-			}
-
-			tableColumn.setText(columnName);
-		}
-	}
-
-	/**
-	 * Brute force synchronization of table with the model list.
-	 */
-	protected void synchronizeTableItems() {
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		for (int index = this.table.getItemCount(); --index >= 0; ) {
-			this.table.remove(index);
-			this.tableItemModelAdapters.remove(index);
-		}
-
-		int itemCount = this.listHolder.size();
-
-		for (int index = 0; index < itemCount; index++) {
-
-			TableItem tableItem = new TableItem(this.table, SWT.NULL, index);
-			tableItem.setData(this.listHolder.get(index));
-
-			TableItemModelAdapter adapter = this.buildItemModel(tableItem);
-			this.tableItemModelAdapters.add(adapter);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listItemsAdded(ListAddEvent event) {
-
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		int index = event.getIndex();
-
-		for (E item : this.getItems(event)) {
-
-			TableItem tableItem = new TableItem(this.table, SWT.NULL, index);
-			tableItem.setData(item);
-
-			TableItemModelAdapter adapter = this.buildItemModel(tableItem);
-			this.tableItemModelAdapters.add(index++, adapter);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listItemsRemoved(ListRemoveEvent event) {
-
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		this.table.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1);
-
-		for (int index = event.getIndex() + event.getItemsSize(); --index >= event.getIndex(); ) {
-			this.tableItemModelAdapters.remove(index);
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listItemsMoved(ListMoveEvent event) {
-
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		int length        = event.getLength();
-		int sourceIndex   = event.getSourceIndex();
-		int targetIndex   = event.getTargetIndex();
-		int lowStartIndex = Math.min(targetIndex, sourceIndex);
-		int hiStartIndex  = Math.max(targetIndex, sourceIndex);
-
-		Object[] items = new Object[hiStartIndex - lowStartIndex + length];
-		int itemsIndex = items.length;
-
-		// Remove the TableItems wrapping the moved items
-		for (int index = hiStartIndex + length; --index >= lowStartIndex; ) {
-
-			TableItemModelAdapter tableItemModel = this.tableItemModelAdapters.get(index);
-			items[--itemsIndex] = tableItemModel.tableItem.getData();
-
-			// Remove the TableItem, which will also dispose TableItemModelAdapter
-			this.table.remove(index);
-		}
-
-		// Move the items so they can retrieved in the right order when
-		// re-creating the TableItems
-		ArrayTools.move(
-			items,
-			targetIndex - lowStartIndex,
-			sourceIndex - lowStartIndex,
-			length
-		);
-
-		itemsIndex = 0;
-
-		// Add TableItems for the moved items
-		for (int index = lowStartIndex; index <= hiStartIndex + length - 1; index++) {
-
-			// Create the new TableItem
-			TableItem tableItem = new TableItem(this.table, SWT.NULL, index);
-			tableItem.setData(items[itemsIndex++]);
-
-			// Adapt it with a model adapter
-			TableItemModelAdapter adapter = this.buildItemModel(tableItem);
-			this.tableItemModelAdapters.set(index, adapter);
-		}
-	}
-
-
-	private TableItemModelAdapter buildItemModel(TableItem tableItem) {
-		return TableItemModelAdapter.adapt(
-			tableItem,
-			this.columnAdapter,
-			this.labelProvider
-		);
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listItemsReplaced(ListReplaceEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-
-		int rowIndex = event.getIndex();
-
-		for (E item : this.getNewItems(event)) {
-			TableItem tableItem = this.table.getItem(rowIndex);
-			tableItem.setData(item);
-
-			TableItemModelAdapter adapter = this.tableItemModelAdapters.get(rowIndex);
-
-			int columnCount = this.columnAdapter.columnCount();
-			boolean revalidate = (columnCount == 1);
-
-			for (int columnIndex = columnCount; --columnIndex >= 0; ) {
-				adapter.tableItemChanged(columnIndex, tableItem.getData(), revalidate);
-			}
-
-			rowIndex++;
-		}
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		this.table.removeAll();
-	}
-
-	/**
-	 * The model has changed - synchronize the table.
-	 */
-	protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) {
-		this.synchronizeTableItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getNewItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getNewItems();
-	}
-
-
-	// ********** selected items **********
-
-	protected int indexOf(E item) {
-		int len = this.listHolder.size();
-		for (int i = 0; i < len; i++) {
-			if (this.listHolder.get(i) == item) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	protected void synchronizeTableSelection() {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		int[] indices = new int[this.selectedItemsHolder.size()];
-		int i = 0;
-		for (E selectedItemHolder : this.selectedItemsHolder) {
-			indices[i++] = this.indexOf(selectedItemHolder);
-		}
-		this.table.deselectAll();
-		this.table.select(indices);
-	}
-
-	protected void selectedItemsAdded(CollectionAddEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		this.table.select(this.getIndices(event.getItemsSize(), this.getItems(event)));
-	}
-
-	protected void selectedItemsRemoved(CollectionRemoveEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		this.table.deselect(this.getIndices(event.getItemsSize(), this.getItems(event)));
-	}
-
-	protected int[] getIndices(int itemsSize, Iterable<E> items) {
-		int[] indices = new int[itemsSize];
-		int i = 0;
-		for (E item : items) {
-			indices[i++] = this.indexOf(item);
-		}
-		return indices;
-	}
-
-	protected void selectedItemsCleared(@SuppressWarnings("unused") CollectionClearEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		this.table.deselectAll();
-	}
-
-	protected void selectedItemsChanged(@SuppressWarnings("unused") CollectionChangeEvent event) {
-		this.synchronizeTableSelection();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-
-	// ********** list box events **********
-
-	protected void tableSelectionChanged(@SuppressWarnings("unused") SelectionEvent event) {
-		if (this.selectionChangeListenerList.size() > 0) {
-			SelectionChangeEvent<E> scEvent = new SelectionChangeEvent<E>(this, this.selectedItems());
-			for (SelectionChangeListener<E> selectionChangeListener : this.selectionChangeListenerList.getListeners()) {
-				selectionChangeListener.selectionChanged(scEvent);
-			}
-		}
-	}
-
-	protected Collection<E> selectedItems() {
-		if (this.table.isDisposed()) {
-			return Collections.emptySet();
-		}
-		ArrayList<E> selectedItems = new ArrayList<E>(this.table.getSelectionCount());
-		for (int selectionIndex : this.table.getSelectionIndices()) {
-			selectedItems.add(this.listHolder.get(selectionIndex));
-		}
-		return selectedItems;
-	}
-
-	protected void tableDoubleClicked(@SuppressWarnings("unused") SelectionEvent event) {
-		if (this.table.isDisposed()) {
-			return;
-		}
-		if (this.doubleClickListenerList.size() > 0) {
-			// there should be only a single item selected during a double-click(?)
-			E selection = this.listHolder.get(this.table.getSelectionIndex());
-			DoubleClickEvent<E> dcEvent = new DoubleClickEvent<E>(this, selection);
-			for (DoubleClickListener<E> doubleClickListener : this.doubleClickListenerList.getListeners()) {
-				doubleClickListener.doubleClick(dcEvent);
-			}
-		}
-	}
-
-
-	// ********** dispose **********
-
-	protected void tableDisposed(@SuppressWarnings("unused") DisposeEvent event) {
-		// the table is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.table.removeDisposeListener(this.tableDisposeListener);
-		this.table.removeSelectionListener(this.tableSelectionListener);
-		this.selectedItemsHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener);
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listHolder);
-	}
-
-
-	// ********** double click support **********
-
-	public void addDoubleClickListener(DoubleClickListener<E> listener) {
-		this.doubleClickListenerList.add(listener);
-	}
-
-	public void removeDoubleClickListener(DoubleClickListener<E> listener) {
-		this.doubleClickListenerList.remove(listener);
-	}
-
-	public interface DoubleClickListener<E> extends EventListener {
-		void doubleClick(DoubleClickEvent<E> event);
-	}
-
-	public static class DoubleClickEvent<E> extends EventObject {
-		private final E selection;
-		private static final long serialVersionUID = 1L;
-
-		protected DoubleClickEvent(TableModelAdapter<E> source, E selection) {
-			super(source);
-			if (selection == null) {
-				throw new NullPointerException();
-			}
-			this.selection = selection;
-		}
-
-		@Override
-		@SuppressWarnings("unchecked")
-		public TableModelAdapter<E> getSource() {
-			return (TableModelAdapter<E>) super.getSource();
-		}
-
-		public E selection() {
-			return this.selection;
-		}
-
-	}
-
-
-	// ********** selection support **********
-
-	public void addSelectionChangeListener(SelectionChangeListener<E> listener) {
-		this.selectionChangeListenerList.add(listener);
-	}
-
-	public void removeSelectionChangeListener(SelectionChangeListener<E> listener) {
-		this.selectionChangeListenerList.remove(listener);
-	}
-
-	public interface SelectionChangeListener<E> extends EventListener {
-		void selectionChanged(SelectionChangeEvent<E> event);
-	}
-
-	public static class SelectionChangeEvent<E> extends EventObject {
-		private final Collection<E> selection;
-		private static final long serialVersionUID = 1L;
-
-		protected SelectionChangeEvent(TableModelAdapter<E> source, Collection<E> selection) {
-			super(source);
-			if (selection == null) {
-				throw new NullPointerException();
-			}
-			this.selection = selection;
-		}
-
-		@Override
-		@SuppressWarnings("unchecked")
-		public TableModelAdapter<E> getSource() {
-			return (TableModelAdapter<E>) super.getSource();
-		}
-
-		public Iterator<E> selection() {
-			return this.selection.iterator();
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java
deleted file mode 100644
index 2c16b5b..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.swt;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-/**
- * This adapter can be used to keep a tri-state check box in synch with
- * a model Boolean where the value can be <code>null</code>.
- */
-@SuppressWarnings("nls")
-public class TriStateCheckBoxModelAdapter {
-
-	/** A value model on the underlying model boolean. */
-	protected final WritablePropertyValueModel<Boolean> booleanHolder;
-
-	/**
-	 * A listener that allows us to synchronize the button's selection state with
-	 * the model boolean.
-	 */
-	protected final PropertyChangeListener booleanChangeListener;
-
-	/** The check box/toggle button we synchronize with the model boolean. */
-	protected final TriStateCheckBox button;
-
-	/**
-	 * A listener that allows us to synchronize the model boolean with
-	 * the button's selection state.
-	 */
-	protected final SelectionListener buttonSelectionListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the button
-	 * is disposed.
-	 */
-	protected final DisposeListener buttonDisposeListener;
-
-
-	// ********** static methods **********
-
-	/**
-	 * Adapt the specified boolean to the specified button.
-	 * If the boolean is null, the button's value will be "partially checked"
-	 * (i.e. the button will be checked but grayed out).
-	 */
-	public static TriStateCheckBoxModelAdapter adapt(WritablePropertyValueModel<Boolean> booleanHolder, TriStateCheckBox button) {
-		return new TriStateCheckBoxModelAdapter(booleanHolder, button);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder and button are required.
-	 */
-	protected TriStateCheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder, TriStateCheckBox button) {
-		super();
-
-		Assert.isNotNull(booleanHolder, "The boolean holder cannot be null");
-		Assert.isNotNull(button, "The check box cannot be null");
-
-		this.booleanHolder = booleanHolder;
-		this.button = button;
-
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-		this.booleanHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-
-		this.buttonDisposeListener = this.buildButtonDisposeListener();
-		this.button.addDisposeListener(this.buttonDisposeListener);
-
-		this.buttonSelectionListener = this.buildButtonSelectionListener();
-		this.button.addSelectionListener(this.buttonSelectionListener);
-
-		this.setButtonSelection(this.booleanHolder.getValue());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildBooleanChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
-	}
-
-	protected PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				TriStateCheckBoxModelAdapter.this.booleanChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "tri-state boolean listener";
-			}
-		};
-	}
-
-	protected SelectionListener buildButtonSelectionListener() {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent event) {
-				TriStateCheckBoxModelAdapter.this.buttonSelected(event);
-			}
-			@Override
-			public String toString() {
-				return "tri-state button selection listener";
-			}
-		};
-	}
-
-	protected DisposeListener buildButtonDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				TriStateCheckBoxModelAdapter.this.buttonDisposed(event);
-			}
-		    @Override
-			public String toString() {
-				return "tri-state button dispose listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * The model has changed - synchronize the button.
-	 * If the new model value is null, use the adapter's default value
-	 * (which is typically false).
-	 */
-	protected void booleanChanged(PropertyChangeEvent event) {
-		this.setButtonSelection((Boolean) event.getNewValue());
-	}
-
-	protected void setButtonSelection(Boolean selection) {
-		if (this.button.isDisposed()) {
-			return;
-		}
-		this.button.setSelection(selection);
-	}
-
-	/**
-	 * The button has been "selected" - synchronize the model.
-	 */
-	protected void buttonSelected(SelectionEvent event) {
-		if (this.button.isDisposed()) {
-			return;
-		}
-		this.booleanHolder.setValue(button.getSelection());
-	}
-
-
-	// ********** dispose **********
-
-	protected void buttonDisposed(DisposeEvent event) {
-		// the button is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.button.removeSelectionListener(this.buttonSelectionListener);
-		this.button.removeDisposeListener(this.buttonDisposeListener);
-		this.booleanHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-    @Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.booleanHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java
deleted file mode 100644
index ebbd1ee..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java
+++ /dev/null
@@ -1,913 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * This class is responsible to set a preferred width on the registered widgets
- * (either <code>Control</code> or <code>ControlAligner</code>) based on the
- * widest widget.
- * <p>
- * Important: The layout data has to be a <code>GridData</code>. If none is set,
- * then a new <code>GridData</code> is automatically created.
- * <p>
- * Here an example of the result if this aligner is used to align controls
- * within either one or two group boxes, the controls added are the labels in
- * this case. It is also possible to align controls on the right side of the
- * main component, a spacer can be used for extra space.
- * <p>
- * Here's an example:
- * <pre>
- * - Group Box 1 --------------------------------------------------------------
- * |                     -------------------------------------- ------------- |
- * | Name:               | I                                  | | Browse... | |
- * |                     -------------------------------------- ------------- |
- * |                     ---------                                            |
- * | Preallocation Size: |     |I|                                            |
- * |                     ---------                                            |
- * |                     --------------------------------------               |
- * | Descriptor:         |                                  |v|               |
- * |                     --------------------------------------               |
- * ----------------------------------------------------------------------------
- *
- * - Group Box 2 --------------------------------------------------------------
- * |                     --------------------------------------               |
- * | Mapping Type:       |                                  |V|               |
- * |                     --------------------------------------               |
- * |                     --------------------------------------               |
- * | Check in Script:    | I                                  |               |
- * |                     --------------------------------------               |
- * ----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class ControlAligner
-{
-	/**
-	 * Flag used to prevent a validation so it can be done after an operation
-	 * completed.
-	 */
-	private boolean autoValidate;
-
-	/**
-	 * The utility class used to support bound properties.
-	 */
-	private Collection<Listener> changeSupport;
-
-	/**
-	 * The listener added to each of the controls that listens only to a text
-	 * change.
-	 */
-	private Listener listener;
-
-	/**
-	 * Prevents infinite recursion when recalculating the preferred width.
-	 * This happens in an hierarchy of <code>ControlAligner</code>s. The lock
-	 * has to be placed here and not in the {@link ControlAlignerWrapper}.
-	 */
-	private boolean locked;
-
-	/**
-	 * The length of the widest control. If the length was not calculated, then
-	 * this value is 0.
-	 */
-	private int maximumWidth;
-
-	/**
-	 * The collection of {@link Wrapper}s encapsulating either <code>Control</code>s
-	 * or {@link ControlAligner}s.
-	 */
-	private Collection<Wrapper> wrappers;
-
-	/**
-	 * A null-<code>Point</code> object used to clear the preferred size.
-	 */
-	private static final Point DEFAULT_SIZE = new Point(SWT.DEFAULT, SWT.DEFAULT);
-
-	/**
-	 * The types of events to listen in order to properly adjust the size of all
-	 * the widgets.
-	 */
-	private static final int[] EVENT_TYPES = {
-		SWT.Dispose,
-		SWT.Hide,
-		SWT.Resize,
-		SWT.Show
-	};
-
-	/**
-	 * Creates a new <code>ControlAligner</code>.
-	 */
-	public ControlAligner() {
-		super();
-		initialize();
-	}
-
-	/**
-	 * Creates a new <code>ControlAligner</code>.
-	 *
-	 * @param controls The collection of <code>Control</code>s
-	 */
-	public ControlAligner(Collection<? extends Control> controls) {
-		this();
-		addAllControls(controls);
-	}
-
-	/**
-	 * Adds the given control. Its width will be used along with the width of all
-	 * the other registered controls in order to get the greater witdh and use
-	 * it as the width for all the controls.
-	 *
-	 * @param control The <code>Control</code> to be added
-	 */
-	public void add(Control control) {
-
-		Assert.isNotNull(control, "Can't add null to this ControlAligner");
-
-		Wrapper wrapper = buildWrapper(control);
-		wrapper.addListener(listener);
-		wrappers.add(wrapper);
-
-		revalidate(false);
-	}
-
-	/**
-	 * Adds the given control. Its width will be used along with the width of all
-	 * the other registered controls in order to get the greater witdh and use
-	 * it as the width for all the controls.
-	 *
-	 * @param controlAligner The <code>ControlAligner</code> to be added
-	 * @exception IllegalArgumentException Can't add the <code>ControlAligner</code>
-	 * to itself
-	 */
-	public void add(ControlAligner controlAligner) {
-
-		Assert.isNotNull(controlAligner, "Can't add null to this ControlAligner");
-		Assert.isLegal(controlAligner != this, "Can't add the ControlAligner to itself");
-
-		Wrapper wrapper = buildWrapper(controlAligner);
-		wrapper.addListener(listener);
-		wrappers.add(wrapper);
-
-		if (!controlAligner.wrappers.isEmpty()) {
-			revalidate(false);
-		}
-	}
-
-	/**
-	 * Adds the items contained in the given collection into this
-	 * <code>ControlAligner</code>. The preferred width of each item will be
-	 * used along with the width of all the other items in order to get the
-	 * widest control and use its width as the width for all the controls.
-	 *
-	 * @param aligners The collection of <code>ControlAligner</code>s
-	 */
-	public void addAllControlAligners(Collection<ControlAligner> aligners) {
-
-		// Deactivate the auto validation while adding all the Controls and/or
-		// ControlAligners in order to improve performance
-		boolean oldAutoValidate = autoValidate;
-		autoValidate = false;
-
-		for (ControlAligner aligner : aligners) {
-			add(aligner);
-		}
-
-		autoValidate = oldAutoValidate;
-		revalidate(false);
-	}
-
-   /**
-	 * Adds the items contained in the given collection into this
-	 * <code>ControlAligner</code>. The preferred width of each item will be
-	 * used along with the width of all the other items in order to get the
-	 * widest control and use its width as the width for all the controls.
-	 *
-	 * @param controls The collection of <code>Control</code>s
-	 */
-	public void addAllControls(Collection<? extends Control> controls) {
-
-		// Deactivate the auto validation while adding all the Controls and/or
-		// ControlAligners in order to improve performance
-		boolean oldAutoValidate = autoValidate;
-		autoValidate = false;
-
-		for (Control control : controls) {
-			add(control);
-		}
-
-		autoValidate = oldAutoValidate;
-		revalidate(false);
-	}
-
-   /**
-	 * Adds the given <code>ControListener</code>.
-	 *
-	 * @param listener The <code>Listener</code> to be added
-	 */
-	private void addListener(Listener listener) {
-
-		if (changeSupport == null) {
-		    changeSupport = new ArrayList<Listener>();
-		}
-
-		changeSupport.add(listener);
-   }
-
-	/**
-	 * Creates a new <code>Wrapper</code> that encapsulates the given source.
-	 *
-	 * @param control The control to be wrapped
-	 * @return A new {@link Wrapper}
-	 */
-	private Wrapper buildWrapper(Control control) {
-		return new ControlWrapper(control);
-	}
-
-   /**
-	 * Creates a new <code>Wrapper</code> that encapsulates the given source.
-	 *
-	 * @param ControlAligner The <code>ControlAligner</code> to be wrapped
-	 * @return A new {@link ControlAlignerWrapper}
-	 */
-	private Wrapper buildWrapper(ControlAligner ControlAligner) {
-		return new ControlAlignerWrapper(ControlAligner);
-	}
-
-	/**
-	 * Calculates the width taken by the widgets and returns the maximum width.
-	 *
-	 * @param recalculateSize <code>true</code> to recalculate the preferred size
-	 * of all the wrappers contained within them rather than using the cached
-	 * size; <code>false</code> to use the cached size
-	 */
-	private int calculateWidth(boolean recalculateSize) {
-
-		int width = 0;
-
-		for (Wrapper wrapper : wrappers) {
-			Point size = wrapper.cachedSize();
-
-			// The size has not been calculated yet
-			if (recalculateSize || (size.x == 0)) {
-				size = wrapper.calculateSize();
-			}
-
-			// Only keep the greatest width
-			width = Math.max(size.x, width);
-		}
-
-		return width;
-	}
-
-	/**
-	 * Reports a bound property change.
-	 *
-	 * @param oldValue the old value of the property (as an int)
-	 * @param newValue the new value of the property (as an int)
-	 */
-	private void controlResized(int oldValue, int newValue) {
-
-		if ((changeSupport != null) && (oldValue != newValue)) {
-			Event event  = new Event();
-			event.widget = SWTUtil.getShell();
-			event.data   = this;
-
-			for (Listener listener : changeSupport) {
-				listener.handleEvent(event);
-			}
-		}
-	}
-
-	/**
-	 * Disposes this <code>ControlAligner</code>, this can improve the speed of
-	 * disposing a pane. When a pane is disposed, this aligner doesn't need to
-	 * revalidate its size upon dispose of its widgets.
-	 */
-	public void dispose() {
-
-		for (Iterator<Wrapper> iter = wrappers.iterator(); iter.hasNext(); ) {
-			Wrapper wrapper = iter.next();
-			wrapper.removeListener(listener);
-			iter.remove();
-		}
-
-		this.wrappers.clear();
-	}
-
-	/**
-	 * Returns the length of the widest control. If the length was not
-	 * calculated, then this value is 0.
-	 *
-	 * @return The width of the widest control or 0 if the length has not been
-	 * calculated yet
-	 */
-	public int getMaximumWidth() {
-		return maximumWidth;
-	}
-
-	/**
-	 * Initializes this <code>ControlAligner</code>.
-	 */
-	private void initialize() {
-
-		this.autoValidate = true;
-		this.maximumWidth = 0;
-		this.listener     = new ListenerHandler();
-		this.wrappers     = new ArrayList<Wrapper>();
-	}
-
-	/**
-	 * Invalidates the size of the given object.
-	 *
-	 * @param source The source object to be invalidated
-	 */
-	private void invalidate(Object source) {
-
-		Wrapper wrapper = retrieveWrapper(source);
-
-		if (!wrapper.locked()) {
-			Point size = wrapper.cachedSize();
-			size.x = size.y = 0;
-			wrapper.setSize(DEFAULT_SIZE);
-		}
-	}
-
-	/**
-	 * Updates the maximum length based on the widest control. This methods
-	 * does not update the width of the controls.
-	 *
-	 * @param recalculateSize <code>true</code> to recalculate the preferred size
-	 * of all the wrappers contained within them rather than using the cached
-	 * size; <code>false</code> to use the cached size
-	 */
-	private void recalculateWidth(boolean recalculateSize) {
-
-		int width = calculateWidth(recalculateSize);
-
-		try {
-			locked = true;
-			setMaximumWidth(width);
-		}
-		finally {
-			locked = false;
-		}
-	}
-
-	/**
-	 * Removes the given control. Its preferred width will not be used when
-	 * calculating the preferred width.
-	 *
-	 * @param control The control to be removed
-	 * @exception AssertionFailedException If the given <code>Control</code> is
-	 * <code>null</code>
-	 */
-	public void remove(Control control) {
-
-		Assert.isNotNull(control, "The Control to remove cannot be null");
-
-		Wrapper wrapper = retrieveWrapper(control);
-		wrapper.removeListener(listener);
-		wrappers.remove(wrapper);
-
-		revalidate(true);
-	}
-
-	/**
-	 * Removes the given <code>ControlAligner</code>. Its preferred width
-	 * will not be used when calculating the preferred witdh.
-	 *
-	 * @param controlAligner The <code>ControlAligner</code> to be removed
-	 * @exception AssertionFailedException If the given <code>ControlAligner</code>
-	 * is <code>null</code>
-	 */
-	public void remove(ControlAligner controlAligner) {
-
-		Assert.isNotNull(controlAligner, "The ControlAligner to remove cannot be null");
-
-		Wrapper wrapper = retrieveWrapper(controlAligner);
-		wrapper.removeListener(listener);
-		wrappers.remove(wrapper);
-
-		revalidate(true);
-	}
-
-	/**
-	 * Removes the given <code>Listener</code>.
-	 *
-	 * @param listener The <code>Listener</code> to be removed
-	 */
-	private void removeListener(Listener listener) {
-
-		changeSupport.remove(listener);
-
-		if (changeSupport.isEmpty()) {
-			changeSupport = null;
-		}
-	}
-
-	/**
-	 * Retrieves the <code>Wrapper</code> that is encapsulating the given object.
-	 *
-	 * @param source Either a <code>Control</code> or a <code>ControlAligner</code>
-	 * @return Its <code>Wrapper</code>
-	 */
-	private Wrapper retrieveWrapper(Object source) {
-
-		for (Wrapper wrapper : wrappers) {
-			if (wrapper.source() == source) {
-				return wrapper;
-			}
-		}
-
-		throw new IllegalArgumentException("Can't retrieve the Wrapper for " + source);
-	}
-
-	/**
-	 * If the count of control is greater than one and {@link #isAutoValidate()}
-	 * returns <code>true</code>, then the size of all the registered
-	 * <code>Control</code>s will be udpated.
-	 *
-	 * @param recalculateSize <code>true</code> to recalculate the preferred size
-	 * of all the wrappers contained within them rather than using the cached
-	 * size; <code>false</code> to use the cached size
-	 */
-	private void revalidate(boolean recalculateSize) {
-
-		if (autoValidate) {
-			recalculateWidth(recalculateSize);
-			updateWrapperSize(recalculateSize);
-		}
-	}
-
-	/**
-	 * Bases on the information contained in the given <code>Event</code>,
-	 * resize the controls.
-	 *
-	 * @param event The <code>Event</code> sent by the UI thread when the state
-	 * of a widget changed
-	 */
-	private void revalidate(Event event) {
-
-		// We don't need to revalidate during a revalidation process
-		if (locked) {
-			return;
-		}
-
-		Object source;
-
-		if (event.widget != SWTUtil.getShell()) {
-			source = event.widget;
-			Control control = (Control) source;
-
-			// When a dialog is opened, we need to actually force a layout of
-			// the controls, this is required because the control is actually
-			// not visible when the preferred width is caculated
-			if (control == control.getShell()) {
-				if (event.type == SWT.Dispose) {
-					return;
-				}
-
-				source = null;
-			}
-		}
-		else {
-			source = event.data;
-		}
-
-		// Either remove the ControlWrapper if the widget was disposed or
-		// invalidate the widget in order to recalculate the preferred size
-		if (source != null) {
-			if (event.type == SWT.Dispose) {
-				Wrapper wrapper = retrieveWrapper(source);
-				wrappers.remove(wrapper);
-			}
-			else {
-				invalidate(source);
-			}
-		}
-
-		// Now revalidate all the Controls and ControlAligners
-		revalidate(true);
-	}
-
-	/**
-	 * Sets the length of the widest control. If the length was not calulcated,
-	 * then this value is 0.
-	 *
-	 * @param maximumWidth The width of the widest control
-	 */
-	private void setMaximumWidth(int maximumWidth) {
-
-		int oldMaximumWidth = this.maximumWidth;
-		this.maximumWidth = maximumWidth;
-		controlResized(oldMaximumWidth, maximumWidth);
-	}
-
-	/**
-	 * Returns a string representation of this <code>ControlAligner</code>.
-	 *
-	 * @return Information about this object
-	 */
-	@Override
-	public String toString() {
-
-		StringBuffer sb = new StringBuffer();
-		sb.append("maximumWidth=");
-		sb.append(maximumWidth);
-		sb.append(", wrappers=");
-		sb.append(wrappers);
-		return StringTools.buildToStringFor(this, sb);
-	}
-
-	/**
-	 * Updates the size of every <code>Wrapper</code> based on the maximum width.
-	 *
-	 * @param forceRevalidate <code>true</code> to revalidate the wrapper's size
-	 * even though its current size might be the same as the maximum width;
-	 * <code>false</code> to only revalidate the wrappers with a different width
-	 */
-	private void updateWrapperSize(boolean forceRevalidate) {
-
-		for (Wrapper wrapper : wrappers) {
-			Point cachedSize = wrapper.cachedSize();
-
-			// No need to change the size of the wrapper since it's always using
-			// the maximum width
-			if (forceRevalidate || (cachedSize.x != maximumWidth)) {
-				Point size = new Point(maximumWidth, cachedSize.y);
-				wrapper.setSize(size);
-			}
-		}
-	}
-
-	/**
-	 * This <code>Wrapper</code> encapsulates a {@link ControlAligner}.
-	 */
-	private class ControlAlignerWrapper implements Wrapper {
-		/**
-		 * The cached size, which is {@link ControlAligner#maximumWidth}.
-		 */
-		private final Point cachedSize;
-
-		/**
-		 * The <code>ControlAligner</code> encapsulated by this
-		 * <code>Wrapper</code>.
-		 */
-		private final ControlAligner controlAligner;
-
-		/**
-		 * Creates a new <code>ControlAlignerWrapper</code> that encapsulates
-		 * the given <code>ControlAligner</code>.
-		 *
-		 * @param controlAligner The <code>ControlAligner</code> to be
-		 * encapsulated by this <code>Wrapper</code>
-		 */
-		private ControlAlignerWrapper(ControlAligner controlAligner) {
-			super();
-			this.controlAligner = controlAligner;
-			this.cachedSize     = new Point(controlAligner.maximumWidth, 0);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void addListener(Listener listener) {
-			controlAligner.addListener(listener);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Point cachedSize() {
-			cachedSize.x = controlAligner.maximumWidth;
-			return cachedSize;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Point calculateSize() {
-
-			Point size = new Point(controlAligner.calculateWidth(false), 0);
-
-			if (size.x != SWT.DEFAULT) {
-				cachedSize.x = size.x;
-			}
-			else {
-				cachedSize.x = 0;
-			}
-
-			if (size.y != SWT.DEFAULT) {
-				cachedSize.y = size.y;
-			}
-			else {
-				cachedSize.y = 0;
-			}
-
-			return size;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public boolean locked() {
-			return controlAligner.locked;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void removeListener(Listener listener) {
-			controlAligner.removeListener(listener);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void setSize(Point size) {
-
-			if (size == DEFAULT_SIZE) {
-				controlAligner.maximumWidth = 0;
-			}
-			else if (controlAligner.maximumWidth != size.x) {
-				controlAligner.maximumWidth = size.x;
-				controlAligner.updateWrapperSize(true);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Object source() {
-			return controlAligner;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		public String toString() {
-
-			StringBuffer sb = new StringBuffer();
-			sb.append("Cached size=");
-			sb.append(cachedSize);
-			sb.append(", ControlAligner=");
-			sb.append(controlAligner);
-			return StringTools.buildToStringFor(this, sb);
-		}
-	}
-
-	/**
-	 * This <code>Wrapper</code> encapsulates a {@link Control}.
-	 */
-	private class ControlWrapper implements Wrapper {
-		/**
-		 * The cached size, which is control's size.
-		 */
-		private Point cachedSize;
-
-		/**
-		 * The control to be encapsulated by this <code>Wrapper</code>.
-		 */
-		private final Control control;
-
-		/**
-		 * Creates a new <code>controlWrapper</code> that encapsulates the given
-		 * control.
-		 *
-		 * @param control The control to be encapsulated by this <code>Wrapper</code>
-		 */
-		private ControlWrapper(Control control) {
-			super();
-
-			this.control    = control;
-			this.cachedSize = new Point(0, 0);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void addListener(Listener listener) {
-
-			for (int eventType : EVENT_TYPES) {
-				control.addListener(eventType, listener);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Point cachedSize() {
-			return cachedSize;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Point calculateSize() {
-
-			cachedSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-
-			// Update right away the control's GridData
-			GridData gridData = (GridData) control.getLayoutData();
-
-			if (gridData == null) {
-				gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-				control.setLayoutData(gridData);
-			}
-
-			gridData.widthHint  = cachedSize.x;
-			gridData.heightHint = cachedSize.y;
-
-			// Make sure the size is not -1
-			if (cachedSize.x == SWT.DEFAULT) {
-				cachedSize.x = 0;
-			}
-
-			if (cachedSize.y == SWT.DEFAULT) {
-				cachedSize.y = 0;
-			}
-
-			return cachedSize;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public boolean locked() {
-			return false;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void removeListener(Listener listener) {
-
-			for (int eventType : EVENT_TYPES) {
-				control.removeListener(eventType, listener);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void setSize(Point size) {
-
-			if (control.isDisposed()) {
-				return;
-			}
-
-			// Update the GridData with the new size
-			GridData gridData = (GridData) control.getLayoutData();
-
-			if (gridData == null) {
-				gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-				control.setLayoutData(gridData);
-			}
-
-			gridData.widthHint  = size.x;
-			gridData.heightHint = size.y;
-
-			// Force the control to be resized, and tell its parent to layout
-			// its widgets
-			if (size.x > 0) {
-//				locked = true;
-//				try  {
-////					control.getParent().layout(new Control[] { control });
-//					control.getParent().layout(true);
-//				}
-//				finally {
-//					locked = false;
-//				}
-				Rectangle bounds = control.getBounds();
-
-				// Only update the control's width if it's
-				// different from the current size
-				if (bounds.width != size.x) {
-					locked = true;
-
-					try {
-//						control.setBounds(bounds.x, bounds.y, size.x, size.y);
-						control.getParent().layout(true);
-					}
-					finally
-					{
-						locked = false;
-					}
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public Control source() {
-			return control;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		public String toString() {
-
-			StringBuffer sb = new StringBuffer();
-			sb.append("Cached size=");
-			sb.append(cachedSize);
-			sb.append(", Control=");
-			sb.append(control);
-			return StringTools.buildToStringFor(this, sb);
-		}
-	}
-
-	/**
-	 * The listener added to each of the control that is notified in order to
-	 * revalidate the preferred size.
-	 */
-	private class ListenerHandler implements Listener {
-		public void handleEvent(Event event) {
-			ControlAligner.this.revalidate(event);
-		}
-	}
-
-	/**
-	 * This <code>Wrapper</code> helps to encapsulate heterogeneous objects and
-	 * apply the same behavior on them.
-	 */
-	private interface Wrapper {
-	   /**
-		 * Adds the given <code>Listener</code> to wrapped object in order to
-		 * receive notification when its property changed.
-		 *
-		 * @param listener The <code>Listener</code> to be added
-		 */
-		void addListener(Listener listener);
-
-		/**
-		 * Returns the cached size of the encapsulated source.
-		 *
-		 * @return A non-<code>null</code> <code>Point</code> where the x is the
-		 * width and the y is the height of the widget
-		 */
-		Point cachedSize();
-
-		/**
-		 * Calculates the preferred size the wrapped object would take by itself.
-		 *
-		 * @return The calculated size
-		 */
-		Point calculateSize();
-
-		/**
-		 * Prevents infinite recursion when recalculating the preferred width.
-		 * This happens in an hierarchy of <code>ControlAligner</code>s.
-		 *
-		 * @return <code>true</code> to prevent this <code>Wrapper</code> from
-		 * being invalidated; otherwise <code>false</code>
-		 */
-		boolean locked();
-
-		/**
-		 * Removes the given <code>Listener</code>.
-		 *
-		 * @param listener The <code>Listener</code> to be removed
-		 */
-		void removeListener(Listener listener);
-
-		/**
-		 * Sets the size on the encapsulated source.
-		 *
-		 * @param size The new size
-		 */
-		void setSize(Point size);
-
-		/**
-		 * Returns the encapsulated object.
-		 *
-		 * @return The object that is been wrapped
-		 */
-		Object source();
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java
deleted file mode 100644
index 1d527ff..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * This controller is responsible to switch the active page based on a value. A
- * <code>Transformer</code> is used to transformed that value into a
- * <code>Control</code>.
- *
- * @version 2.3
- * @since 2.0
- */
-public final class ControlSwitcher
-{
-	/**
-	 * The widget that is used to show the active <code>Control</code>.
-	 */
-	private PageBook pageBook;
-
-	/**
-	 * The <code>Transformer</code> used to transform the value into a
-	 * <code>Control</code>.
-	 */
-	private Transformer<?, Control> paneTransformer;
-
-	private Label emptyLabel;
-
-	/**
-	 * Creates a new <code>ControlSwitcher</code>.
-	 *
-	 * @param switchHolder The holder of the value that will be used to retrieve
-	 * the right <code>Control</code> when passed to the given transformer
-	 * @param paneTransformer The <code>Transformer</code> used to transform the value into a
-	 * <code>Control</code>
-	 * @param pageBook The <code>Transformer</code> used to transform the value
-	 * into a <code>Control</code>
-	 */
-	public <T> ControlSwitcher(PropertyValueModel<? extends T> switchHolder,
-	                           Transformer<T, Control> paneTransformer,
-	                           PageBook pageBook)
-	{
-		super();
-		initialize(switchHolder, paneTransformer, pageBook);
-	}
-
-	private void initialize(PropertyValueModel<?> switchHolder,
-	                        Transformer<?, Control> paneTransformer,
-	                        PageBook pageBook)
-	{
-		this.pageBook        = pageBook;
-		this.paneTransformer = paneTransformer;
-
-		this.emptyLabel = this.buildEmptyLabel();
-
-		switchHolder.addPropertyChangeListener(
-			PropertyValueModel.VALUE,
-			buildPropertyChangeListener()
-		);
-
-		switchPages(switchHolder.getValue());
-	}
-
-	//Build an empty label to display in the page book when the paneTransformer returns null.
-	//SWT.SHADOW_NONE makes the line separator not visible
-	//This is the best we can come up with for an empty page
-	private Label buildEmptyLabel() {
-		return new Label(this.pageBook, SWT.SEPARATOR | SWT.SHADOW_NONE | SWT.HORIZONTAL);
-	}
-
-	private PropertyChangeListener buildPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(
-			buildPropertyChangeListener_()
-		);
-	}
-
-	private PropertyChangeListener buildPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				switchPages(e.getNewValue());
-			}
-		};
-	}
-
-	/**
-	 * Switches the active page by transforming the given value into its
-	 * corresponding pane.
-	 *
-	 * @param value The state passed to the transformer in order to retrieve the
-	 * new pane
-	 */
-	private void switchPages(Object value) {
-		if (this.pageBook.isDisposed()) {
-			return;
-		}
-
-		// Retrieve the Control for the new value
-		Control page = transform(value);
-
-		if (page == null) {
-			//Note: We can't pass in null due to a bug in PageBook
-			page = this.emptyLabel;
-		}
-		this.pageBook.showPage(page);
-
-		// Revalidate the parents in order to update the layout
-		SWTUtil.reflow(this.pageBook);
-	}
-
-	@SuppressWarnings("unchecked")
-	private Control transform(Object value) {
-		return ((Transformer<Object, Control>) this.paneTransformer).transform(value);
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java
deleted file mode 100644
index a1d6d29..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-
-/**
- * A default implementation of <code>LabeledControl</code> that updates a
- * <code>Button</code> when required.
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class LabeledButton implements LabeledControl
-{
-	/**
-	 * The button to be updated with a different icon and text.
-	 */
-	private final Button button;
-
-	/**
-	 * Creates a new <code>LabeledButton</code>.
-	 *
-	 * @param button The button that will have its text and icon updated when
-	 * required
-	 * @exception AssertionFailedException If the given <code>Button</code> is
-	 * <code>null</code>
-	 */
-	public LabeledButton(Button button) {
-		super();
-
-		Assert.isNotNull(button, "The button cannot be null");
-		this.button = button;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public void setImage(Image image) {
-		if (!this.button.isDisposed()) {
-			this.button.setImage(image);
-			this.button.getParent().layout(true);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public void setText(String text) {
-		if (!this.button.isDisposed()) {
-			this.button.setText(text);
-			this.button.getParent().layout(true);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java
deleted file mode 100644
index 2cef0dc..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * This <code>LabeledControl</code> is used to encapsulate a widget and update
- * its properties (icon and text).
- *
- * @see LabeledButton
- * @see LabeledLabel
- *
- * @version 2.0
- * @since 2.0
- */
-public interface LabeledControl {
-	/**
-	 * Passes the image so the wrapped component can receive it.
-	 *
-	 * @param image The new <code>Image</code>
-	 */
-	void setImage(Image image);
-
-	/**
-	 * Passes the text so the wrapped component can receive it.
-	 *
-	 * @param text The new text
-	 */
-	void setText(String text);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java
deleted file mode 100644
index 8be9813..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * This updater is responsible to update the <code>LabeledControl</code> when
- * the text and the icon need to change.
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class LabeledControlUpdater {
-
-	/**
-	 * The wrapper around a control that has text and icon.
-	 */
-	private LabeledControl labeledControl;
-
-	/**
-	 * Creates a new <code>LabeledControlUpdater</code>.
-	 *
-	 * @param labeledControl The wrapper around the control that needs to
-	 * have its text updated
-	 * @param textHolder The holder this class will listen for changes
-	 */
-	public LabeledControlUpdater(LabeledControl labeledControl,
-	                             PropertyValueModel<String> textHolder)
-	{
-		this(labeledControl, textHolder, null);
-	}
-
-	/**
-	 * Creates a new <code>LabeledControlUpdater</code>.
-	 *
-	 * @param labeledControl The wrapper around the control that needs to
-	 * have its image and text updated
-	 * @param imageHolder The holder this class will listen for changes or
-	 * <code>null</code> if the text never changes
-	 * @param textHolder The holder this class will listen for changes or
-	 * <code>null</code> if the image never changes
-	 */
-	public LabeledControlUpdater(LabeledControl labeledControl,
-	                             PropertyValueModel<String> textHolder,
-	                             PropertyValueModel<Image> imageHolder)
-	{
-		super();
-		initialize(labeledControl, textHolder, imageHolder);
-	}
-
-	private PropertyChangeListener buildIconListener() {
-		return new SWTPropertyChangeListenerWrapper(buildIconListener_());
-	}
-
-	private PropertyChangeListener buildIconListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				LabeledControlUpdater.this.setImage((Image) e.getNewValue());
-			}
-
-			@Override
-			public String toString() {
-				return "LabeledControlUpdater.imageListener";
-			}
-		};
-	}
-
-	private PropertyChangeListener buildTextListener() {
-		return new SWTPropertyChangeListenerWrapper(buildTextListener_());
-	}
-
-	private PropertyChangeListener buildTextListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				LabeledControlUpdater.this.setText((String) e.getNewValue());
-			}
-
-			@Override
-			public String toString() {
-				return "LabeledControlUpdater.textListener";
-			}
-		};
-	}
-
-	private void initialize(LabeledControl labeledControl,
-	                        PropertyValueModel<String> textHolder,
-	                        PropertyValueModel<Image> imageHolder)
-	{
-		Assert.isNotNull(labeledControl, "The LabeledControl cannot be null");
-
-		this.labeledControl = labeledControl;
-
-		if (textHolder != null) {
-			textHolder.addPropertyChangeListener(PropertyValueModel.VALUE, buildTextListener());
-			setText(textHolder.getValue());
-		}
-
-		if (imageHolder != null) {
-			imageHolder.addPropertyChangeListener(PropertyValueModel.VALUE, buildIconListener());
-			setImage(imageHolder.getValue());
-		}
-	}
-
-	private void setImage(Image icon) {
-		labeledControl.setImage(icon);
-	}
-
-	private void setText(String text) {
-
-		if (text == null) {
-			text = "";
-		}
-
-		labeledControl.setText(text);
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java
deleted file mode 100644
index c74ef06..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * A default implementation of <code>LabeledControl</code> that updates an
- * <code>Label</code> when required.
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class LabeledLabel implements LabeledControl
-{
-	/**
-	 * The label to be updated with a different icon and text.
-	 */
-	private final Label label;
-
-	/**
-	 * Creates a new <code>LabeledButton</code>.
-	 *
-	 * @param label The label that will have its text and icon updated when
-	 * required
-	 * @exception AssertionFailedException If the given <code>Label</code> is
-	 * <code>null</code>
-	 */
-	public LabeledLabel(Label label) {
-		super();
-
-		Assert.isNotNull(label, "The label cannot be null");
-		this.label = label;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public void setImage(Image image) {
-		if (!this.label.isDisposed()) {
-			this.label.setImage(image);
-			this.label.getParent().layout(true);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public void setText(String text) {
-		if (!this.label.isDisposed()) {
-			this.label.setText(text);
-			this.label.getParent().layout(true);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java
deleted file mode 100644
index 6615c72..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.common.ui.internal.widgets.Pane;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This <code>PaneEnabler</code> keeps the "enabled" state of a collection of
- * controls in synch with the provided boolean holder.
- *
- * @version 2.0
- * @since 2.0
- */
-public class PaneEnabler extends StateController
-{
-	/**
-	 * Creates a new <code>PaneEnabler</code> with a default value of
-	 * <code>false</code> (i.e. disabled).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param pane The pane whose "enabled" state is kept in sync with the
-	 * boolean holder's value
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Pane<?> pane) {
-
-		this(booleanHolder, pane, false);
-	}
-
-	/**
-	 * Creates a new <code>PaneEnabler</code> with a default value of
-	 * <code>false</code> (i.e. disabled).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "enabled" state is kept in sync
-	 * with the boolean holder's value
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Pane<?>... panes) {
-
-		this(booleanHolder, CollectionTools.collection(panes), false);
-	}
-
-	/**
-	 * Creates a new <code>PaneEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param pane The pane whose "enabled" state is kept in sync with the
-	 * boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Pane<?> pane,
-	                   boolean defaultValue) {
-
-		this(booleanHolder, CollectionTools.singletonIterator(pane), false);
-	}
-
-	/**
-	 * Creates a new <code>PaneEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "enabled" state is kept in sync
-	 * with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Pane<?>[] panes,
-	                   boolean defaultValue) {
-
-		this(booleanHolder, CollectionTools.iterator(panes), defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>BaseJpaControllerEnabler</code> with a default value
-	 * of* <code>false</code> (i.e. disabled).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "enabled" state is kept in sync
-	 * with the boolean holder's value
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Collection<? extends Pane<?>> panes) {
-
-		this(booleanHolder, panes, false);
-	}
-
-	/**
-	 * Creates a new <code>BaseJpaControllerEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "enabled" state is kept in sync
-	 * with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Collection<? extends Pane<?>> panes,
-	                   boolean defaultValue) {
-
-		this(booleanHolder, panes.iterator(), defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>BaseJpaControllerEnabler</code> with a default value of
-	 * <code>false</code> (i.e. disabled).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes An iterator on the collection of panes whose "enabled" state
-	 * is kept in sync with the boolean holder's value
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Iterator<? extends Pane<?>> panes) {
-
-		this(booleanHolder, panes, false);
-	}
-
-	/**
-	 * Creates a new <code>BaseJpaControllerEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes An iterator on the collection of panes whose "enabled" state
-	 * is kept in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                   Iterator<? extends Pane<?>> panes,
-	                   boolean defaultValue) {
-
-		super(booleanHolder, wrap(panes), defaultValue);
-	}
-
-	private static Collection<ControlHolder> wrap(Iterator<? extends Pane<?>> panes) {
-		return CollectionTools.collection(new TransformationIterator<Pane<?>, ControlHolder>(panes) {
-			@Override
-			protected ControlHolder transform(Pane<?> pane) {
-				return new PaneHolder(pane);
-			}
-		});
-	}
-
-	/**
-	 * This holder holds onto an <code>Pane</code> and update its enabled
-	 * state.
-	 */
-	private static class PaneHolder implements ControlHolder {
-		private final Pane<?> pane;
-
-		PaneHolder(Pane<?> pane) {
-			super();
-			this.pane = pane;
-		}
-
-		public void updateState(boolean state) {
-			if (!this.pane.getControl().isDisposed()) {
-				this.pane.enableWidgets(state);
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java
deleted file mode 100644
index c081839..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.common.ui.internal.widgets.Pane;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This <code>PaneVisibilityEnabler</code> keeps the "visible" state of a
- * collection of controls in synch with the provided boolean holder.
- *
- * @version 2.0
- * @since 2.0
- */
-public class PaneVisibilityEnabler extends StateController
-{
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code> with a default value of
-	 * <code>false</code> (i.e. not visible).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param pane The pane whose "visible" state is kept in sync with the
-	 * boolean holder's value
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Pane<?> pane) {
-
-		this(booleanHolder, pane, false);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code> with a default value of
-	 * <code>false</code> (i.e. not visible).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "visible" state is kept in sync
-	 * with the boolean holder's value
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Pane<?>... panes) {
-
-		this(booleanHolder, CollectionTools.collection(panes), false);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param pane The pane whose "visible" state is kept in sync with the
-	 * boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Pane<?> pane,
-	                             boolean defaultValue) {
-
-		this(booleanHolder, CollectionTools.singletonIterator(pane), false);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "visible" state is kept in sync
-	 * with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Pane<?>[] panes,
-	                             boolean defaultValue) {
-
-		this(booleanHolder, CollectionTools.iterator(panes), defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code> with a default value of
-	 * <code>false</code> (i.e. not visible).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "visible" state is kept in sync
-	 * with the boolean holder's value
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Collection<? extends Pane<?>> panes) {
-
-		this(booleanHolder, panes, false);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes The collection of panes whose "visible" state is kept in sync
-	 * with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Collection<? extends Pane<?>> panes,
-	                             boolean defaultValue) {
-
-		this(booleanHolder, panes.iterator(), defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code> with a default value of
-	 * <code>false</code> (i.e. not visible).
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes An iterator on the collection of panes whose "visible" state
-	 * is kept in sync with the boolean holder's value
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Iterator<? extends Pane<?>> panes) {
-
-		this(booleanHolder, panes, false);
-	}
-
-	/**
-	 * Creates a new <code>PaneVisibilityEnabler</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param panes An iterator on the collection of panes whose "visible" state
-	 * is kept in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	public PaneVisibilityEnabler(PropertyValueModel<Boolean> booleanHolder,
-	                             Iterator<? extends Pane<?>> panes,
-	                             boolean defaultValue) {
-
-		super(booleanHolder, wrap(panes), defaultValue);
-	}
-
-	private static Collection<ControlHolder> wrap(Iterator<? extends Pane<?>> panes) {
-		return CollectionTools.collection(new TransformationIterator<Pane<?>, ControlHolder>(panes) {
-			@Override
-			protected ControlHolder transform(Pane<?> pane) {
-				return new PaneHolder(pane);
-			}
-		});
-	}
-
-	/**
-	 * This holder holds onto an <code>Pane</code> and update its visible
-	 * state.
-	 */
-	private static class PaneHolder implements ControlHolder {
-		private final Pane<?> pane;
-
-		PaneHolder(Pane<?> pane) {
-			super();
-			this.pane = pane;
-		}
-
-		public void updateState(boolean state) {
-			this.pane.setVisible(state);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java
deleted file mode 100644
index efc6584..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.Locale;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.common.ui.internal.widgets.NullPostExecution;
-import org.eclipse.jpt.common.ui.internal.widgets.PostExecution;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * A suite of utility methods related to the user interface.
- *
- * @version 2.0
- * @since 1.0
- */
-@SuppressWarnings("nls")
-public class SWTUtil {
-
-	/**
-	 * Causes the <code>run()</code> method of the given runnable to be invoked
-	 * by the user-interface thread at the next reasonable opportunity. The caller
-	 * of this method continues to run in parallel, and is not notified when the
-	 * runnable has completed.
-	 *
-	 * @param runnable Code to run on the user-interface thread
-	 * @exception org.eclipse.swt.SWTException
-	 * <ul>
-	 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li>
-	 * </ul>
-	 * @see #syncExec
-	 */
-	public static void asyncExec(Runnable runnable) {
-		getStandardDisplay().asyncExec(runnable);
-	}
-
-	/**
-	 * Tweaks the given <code>Combo</code> to remove the default value when the
-	 * widget receives the focus and to show the default when the widget loses
-	 * the focus.
-	 *
-	 * @param combo The widget having a default value that is always at the
-	 * beginning of the list
-	 */
-	public static void attachDefaultValueHandler(Combo combo) {
-		ComboHandler handler = new ComboHandler();
-		combo.addFocusListener(handler);
-		combo.addModifyListener(handler);
-	}
-
-	/**
-	 * Retrieves the localized string from the given NLS class by creating the
-	 * key. That key is the concatenation of the composite's short class name
-	 * with the toString() of the given value separated by an underscore.
-	 *
-	 * @param nlsClass The NLS class used to retrieve the localized text
-	 * @param compositeClass The class used for creating the key, its short class
-	 * name is the beginning of the key
-	 * @param value The value used to append its toString() to the generated key
-	 * @return The localized text associated with the value
-	 */
-	public static String buildDisplayString(Class<?> nlsClass,
-	                                        Class<?> compositeClass,
-	                                        Object value) {
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(compositeClass.getSimpleName());
-		sb.append("_");
-		sb.append(value.toString().toLowerCase(Locale.ENGLISH));//bug 234953
-		//TODO in a future release we should not be converting the key using toLowerCase()
-
-		return (String) ReflectionTools.getStaticFieldValue(nlsClass, sb.toString());
-	}
-
-	/**
-	 * Retrieves the localized string from the given NLS class by creating the
-	 * key. That key is the concatenation of the composite's short class name
-	 * with the toString() of the given value separated by an underscore.
-	 *
-	 * @param nlsClass The NLS class used to retrieve the localized text
-	 * @param composite The object used to retrieve the short class name that is
-	 * the beginning of the key
-	 * @param value The value used to append its toString() to the generated key
-	 * @return The localized text associated with the value
-	 */
-	public static final String buildDisplayString(Class<?> nlsClass,
-	                                              Object composite,
-	                                              Object value) {
-
-		return buildDisplayString(nlsClass, composite.getClass(), value);
-	}
-
-	/**
-	 * Creates the <code>Runnable</code> that will invoke the given
-	 * <code>PostExecution</code> in order to its execution to be done in the
-	 * UI thread.
-	 *
-	 * @param dialog The dialog that was just diposed
-	 * @param postExecution The post execution once the dialog is disposed
-	 * @return The <code>Runnable</code> that will invoke
-	 * {@link PostExecution#execute(Dialog)}
-	 */
-	@SuppressWarnings("unchecked")
-	private static <D1 extends Dialog, D2 extends D1>
-		Runnable buildPostExecutionRunnable(
-			final D1 dialog,
-			final PostExecution<D2> postExecution) {
-
-		return new Runnable() {
-			public void run() {
-				setUserInterfaceActive(false);
-				try {
-					postExecution.execute((D2) dialog);
-				}
-				finally {
-					setUserInterfaceActive(true);
-				}
-			}
-		};
-	}
-
-	/**
-	 * Convenience method for getting the current shell. If the current thread is
-	 * not the UI thread, then an invalid thread access exception will be thrown.
-	 *
-	 * @return The shell, never <code>null</code>
-	 */
-	public static Shell getShell() {
-
-		// Retrieve the active shell, which can be the shell from any window
-		Shell shell = getStandardDisplay().getActiveShell();
-
-		// No shell could be found, revert back to the active workbench window
-		if (shell == null) {
-			shell = getWorkbench().getActiveWorkbenchWindow().getShell();
-		}
-
-		// Make sure it's never null
-		if (shell == null) {
-			shell = new Shell(getStandardDisplay().getActiveShell());
-		}
-
-		return shell;
-	}
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if the
-	 * thread calling this method has an associated display. If so, this display
-	 * is returned. Otherwise the method returns the default display.
-	 *
-	 * @return The current display if not <code>null</code> otherwise the default
-	 * display is returned
-	 */
-	public static Display getStandardDisplay()
-	{
-		Display display = Display.getCurrent();
-
-		if (display == null) {
-			display = Display.getDefault();
-		}
-
-		return display;
-	}
-
-	public static int getTableHeightHint(Table table, int rows) {
-		if (table.getFont().equals(JFaceResources.getDefaultFont()))
-			table.setFont(JFaceResources.getDialogFont());
-		int result= table.getItemHeight() * rows + table.getHeaderHeight();
-		if (table.getLinesVisible())
-			result+= table.getGridLineWidth() * (rows - 1);
-		return result;
-	}
-
-   /**
-	 * Returns the Platform UI workbench.
-	 *
-	 * @return The workbench for this plug-in
-	 */
-	public static IWorkbench getWorkbench() {
-		return PlatformUI.getWorkbench();
-	}
-
-	/**
-	 * Relays out the parents of the <code>Control</code>. This was taken from
-	 * the widget <code>Section</code>.
-	 *
-	 * @param pane The pane to revalidate as well as its parents
-	 */
-	public static void reflow(Composite pane) {
-
-		for (Composite composite = pane; composite != null; ) {
-			composite.setRedraw(false);
-			composite = composite.getParent();
-
-			if (composite instanceof ScrolledForm || composite instanceof Shell) {
-				break;
-			}
-		}
-
-		for (Composite composite = pane; composite != null; ) {
-			composite.layout(true);
-			composite = composite.getParent();
-
-			if (composite instanceof ScrolledForm) {
-				((ScrolledForm) composite).reflow(true);
-				break;
-			}
-		}
-
-		for (Composite composite = pane; composite != null; ) {
-			composite.setRedraw(true);
-			composite = composite.getParent();
-
-			if (composite instanceof ScrolledForm || composite instanceof Shell) {
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Sets whether the entire shell and its widgets should be enabled or
-	 * everything should be unaccessible.
-	 *
-	 * @param active <code>true</code> to make all the UI active otherwise
-	 * <code>false</code> to deactivate it
-	 */
-	public static void setUserInterfaceActive(boolean active) {
-		Shell[] shells = getStandardDisplay().getShells();
-
-		for (Shell shell : shells) {
-			shell.setEnabled(active);
-		}
-	}
-
-	/**
-	 * Asynchronously launches the specified dialog in the UI thread.
-	 *
-	 * @param dialog The dialog to show on screen
-	 * @param postExecution This interface let the caller to invoke a piece of
-	 * code once the dialog is disposed
-	 */
-	public static <D1 extends Dialog, D2 extends D1>
-		void show(final D1 dialog, final PostExecution<D2> postExecution) {
-
-		try {
-			Assert.isNotNull(dialog,        "The dialog cannot be null");
-			Assert.isNotNull(postExecution, "The PostExecution cannot be null");
-		}
-		catch (AssertionFailedException e) {
-			// Make sure the UI is interactive
-			setUserInterfaceActive(true);
-			throw e;
-		}
-
-		new Thread() {
-			@Override
-			public void run() {
-				asyncExec(
-					new Runnable() {
-						public void run() {
-							showImp(dialog, postExecution);
-						}
-					}
-				);
-			}
-		}.start();
-	}
-
-	/**
-	 * Asynchronously launches the specified dialog in the UI thread.
-	 *
-	 * @param dialog The dialog to show on screen
-	 */
-	public static void show(Dialog dialog) {
-		show(dialog, NullPostExecution.<Dialog>instance());
-	}
-
-	/**
-	 * Asynchronously launches the specified dialog in the UI thread.
-	 *
-	 * @param dialog The dialog to show on screen
-	 * @param postExecution This interface let the caller to invoke a piece of
-	 * code once the dialog is disposed
-	 */
-	private static <D1 extends Dialog, D2 extends D1>
-		void showImp(D1 dialog, PostExecution<D2> postExecution) {
-
-		setUserInterfaceActive(true);
-		dialog.open();
-
-		if (postExecution != NullPostExecution.<D2>instance()) {
-			asyncExec(buildPostExecutionRunnable(dialog, postExecution));
-		}
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the given runnable to be invoked
-	 * by the user-interface thread at the next reasonable opportunity. The
-	 * thread which calls this method is suspended until the runnable completes.
-	 *
-	 * @param runnable code to run on the user-interface thread.
-	 * @see #asyncExec
-	 */
-	public static void syncExec(Runnable runnable) {
-		getStandardDisplay().syncExec(runnable);
-	}
-
-	/**
-	 * Determines if the current thread is the UI event thread.
-	 *
-	 * @return <code>true</code> if it's the UI event thread, <code>false</code>
-	 * otherwise
-	 */
-	public static boolean uiThread() {
-		return getStandardDisplay().getThread() == Thread.currentThread();
-	}
-
-	/**
-	 * Determines if the current thread is the UI event thread by using the
-	 * thread from which the given viewer's display was instantiated.
-	 *
-	 * @param viewer The viewer used to determine if the current thread
-	 * is the UI event thread
-	 * @return <code>true</code> if the current thread is the UI event thread;
-	 * <code>false</code> otherwise
-	 */
-	public static boolean uiThread(Viewer viewer) {
-		return uiThread(viewer.getControl());
-	}
-
-	/**
-	 * Determines if the current thread is the UI event thread by using the
-	 * thread from which the given widget's display was instantiated.
-	 *
-	 * @param widget The widget used to determine if the current thread
-	 * is the UI event thread
-	 * @return <code>true</code> if the current thread is the UI event thread;
-	 * <code>false</code> otherwise
-	 */
-	public static boolean uiThread(Widget widget) {
-		return widget.getDisplay().getThread() == Thread.currentThread();
-	}
-
-
-	/**
-	 * This handler is responsible for removing the default value when the combo
-	 * has the focus or when the selected item is the default value and to select
-	 * it when the combo loses the focus.
-	 */
-	private static class ComboHandler implements ModifyListener,
-	                                             FocusListener {
-
-		public void focusGained(FocusEvent e) {
-			Combo combo = (Combo) e.widget;
-
-			if (combo.getSelectionIndex() == 0) {	
-				// The text selection has to be changed outside of the context of this
-				// listener otherwise the combo won't update because it's currently
-				// notifying its listeners
-				asyncExec(new SelectText(combo));
-			}
-		}
-
-		public void focusLost(FocusEvent e) {
-			//do nothing
-		}
-
-		public void modifyText(ModifyEvent e) {
-
-			Combo combo = (Combo) e.widget;
-
-			if (combo.isFocusControl() &&
-			    combo.getSelectionIndex() == 0) {
-
-				// The text has to be changed outside of the context of this
-				// listener otherwise the combo won't update because it's currently
-				// notifying its listeners
-				asyncExec(new ModifyText(combo));
-			}
-		}
-
-		private class ModifyText implements Runnable {
-			private final Combo combo;
-
-			public ModifyText(Combo combo) {
-				super();
-				this.combo = combo;
-			}
-
-			public void run() {
-				if (this.combo.isDisposed()) {
-					return;
-				}
-				String text = this.combo.getText();
-
-				if (text.length() == 0) {
-					text = this.combo.getItem(0);
-					this.combo.setText(text);
-				}
-
-				this.combo.setSelection(new Point(0, text.length()));
-			}
-		}
-
-		private class SelectText implements Runnable {
-			private final Combo combo;
-
-			public SelectText(Combo combo) {
-				super();
-				this.combo = combo;
-			}
-
-			public void run() {
-				if (this.combo.isDisposed()) {
-					return;
-				}
-				String text = this.combo.getText();
-				this.combo.setSelection(new Point(0, text.length()));
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java
deleted file mode 100644
index 5c313e6..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>StateController</code> keeps the state of a collection of widgets in
- * synch with the provided boolean holder.
- *
- * @see ControlEnabler
- * @see ControlVisibilityEnabler
- * @see PaneEnabler
- * @see PaneVisibilityEnabler
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-abstract class StateController
-{
-	/**
-	 * A listener that allows us to synchronize the controlHolders with changes
-	 * made to the underlying boolean model.
-	 */
-	private PropertyChangeListener booleanChangeListener;
-
-	/**
-	 * A value model on the underlying boolean model
-	 */
-	private PropertyValueModel<Boolean> booleanHolder;
-
-	/**
-	 * The collection of <code>ControlHolder</code>s whose state is kept in sync
-	 * with the boolean holder's value.
-	 */
-	private Collection<ControlHolder> controlHolders;
-
-	/**
-	 * The default setting for the state; for when the underlying model is
-	 * <code>null</code>. The default [default value] is <code>false<code>.
-	 */
-	private boolean defaultValue;
-
-	/**
-	 * Creates a new <code>StateController</code>.
-	 */
-	StateController() {
-		super();
-		initialize();
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders The collection of <code>ControlHolder</code>s whose
-	 * state is kept in sync with the boolean holder's value
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                Collection<ControlHolder> controlHolders) {
-
-		this(booleanHolder, controlHolders, false);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders The collection of <code>ControlHolder</code>s whose
-	 * state is kept in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                Collection<ControlHolder> controlHolders,
-	                boolean defaultValue) {
-
-		this();
-		initialize(booleanHolder, controlHolders, defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolder The <code>ControlHolder</code> whose state is kept
-	 * in sync with the boolean holder's value
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                ControlHolder controlHolder) {
-
-		this(booleanHolder, controlHolder, false);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders The collection of <code>ControlHolder</code>s whose
-	 * state is kept in sync with the boolean holder's value
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                ControlHolder... controlHolders) {
-
-		this(booleanHolder, CollectionTools.collection(controlHolders), false);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolder The <code>ControlHolder</code> whose state is kept
-	 * in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                ControlHolder controlHolder,
-	                boolean defaultValue) {
-
-		this(booleanHolder, new ControlHolder[] { controlHolder }, false);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders The collection of <code>ControlHolder</code>s whose
-	 * state is kept in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                ControlHolder[] controlHolders,
-	                boolean defaultValue) {
-
-		this();
-		this.initialize(booleanHolder, CollectionTools.collection(controlHolders), defaultValue);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code> with a default value of
-	 * <code>false</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders An iterator on the collection of
-	 * <code>ControlHolder</code>s whose state is kept in sync with the boolean
-	 * holder's value
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                Iterator<ControlHolder> controlHolders) {
-
-		this(booleanHolder, CollectionTools.collection(controlHolders), false);
-	}
-
-	/**
-	 * Creates a new <code>StateController</code>.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders An iterator on the collection of
-	 * <code>ControlHolder</code>s whose state is kept in sync with the boolean
-	 * holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	StateController(PropertyValueModel<Boolean> booleanHolder,
-	                Iterator<ControlHolder> controlHolders,
-	                boolean defaultValue) {
-
-		this();
-		initialize(booleanHolder, CollectionTools.collection(controlHolders), defaultValue);
-	}
-
-	/**
-	 * Returns the boolean primitive of the given <code>Boolean</code> value but
-	 * also checks for <code>null</code>, if that is the case, then
-	 * {@link #defaultValue} is returned.
-	 *
-	 * @param value The <code>Boolean</code> value to be returned as a primitive
-	 * @return The primitive of the given value or {@link #defaultValue}when the
-	 * value is <code>null</code>
-	 */
-	protected boolean booleanValue(Boolean value) {
-		return (value == null) ? this.defaultValue : value.booleanValue();
-	}
-
-	/**
-	 * Creates a listener for the boolean holder.
-	 *
-	 * @return A new <code>PropertyChangeListener</code>
-	 */
-	private PropertyChangeListener buildBooleanChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(
-			buildBooleanChangeListener_()
-		)
-		{
-			@Override
-			public String toString() {
-				return "StateController.SWTPropertyChangeListenerWrapper";
-			}
-		};
-	}
-
-	/**
-	 * Creates a listener for the boolean holder.
-	 *
-	 * @return A new <code>PropertyChangeListener</code>
-	 */
-	private PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				updateState();
-			}
-
-			@Override
-			public String toString() {
-				return "StateController.PropertyChangeListener";
-			}
-		};
-	}
-
-	/**
-	 * Returns an <code>Iterator</code> over the collection of
-	 * <code>ControlHolder</code>s.
-	 *
-	 * @return The iteration of <code>ControlHolder</code>s
-	 */
-	protected final Iterator<ControlHolder> controlHolders() {
-		return new CloneIterator<ControlHolder>(this.controlHolders);
-	}
-
-	/**
-	 * Initializes this <code>StateController</code> by building the appropriate
-	 * listeners.
-	 */
-	protected void initialize() {
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-	}
-
-	/**
-	 * Initializes this <code>StateController</code> with the given state.
-	 *
-	 * @param booleanHolder A value model on the underlying boolean model
-	 * @param controlHolders A <code>ControlHolder</code>s whose enablement state
-	 * is kept in sync with the boolean holder's value
-	 * @param defaultValue The value to use when the underlying model is
-	 * <code>null</code>
-	 */
-	protected void initialize(PropertyValueModel<Boolean> booleanHolder,
-									  Collection<ControlHolder> controlHolders,
-									  boolean defaultValue) {
-
-		Assert.isNotNull(booleanHolder,  "The holder of the boolean value cannot be null");
-		Assert.isNotNull(controlHolders, "The collection of ControlHolders cannot be null");
-
-		this.controlHolders = new ArrayList<ControlHolder>(controlHolders);
-		this.defaultValue   = defaultValue;
-		this.booleanHolder  = booleanHolder;
-
-		this.booleanHolder.addPropertyChangeListener(
-			PropertyValueModel.VALUE,
-			this.booleanChangeListener
-		);
-
-		this.updateState();
-	}
-
-	/**
-	 * Updates the state of the control holders.
-	 */
-	protected void updateState() {
-		this.updateState(booleanValue(this.booleanHolder.getValue()));
-	}
-
-	/**
-	 * Updates the state of the <code>Control</code>s.
-	 *
-	 * @param state The new state the widgets need to have
-	 */
-	protected void updateState(boolean state) {
-		for (ControlHolder controlHolder : this.controlHolders) {
-			controlHolder.updateState(state);
-		}
-	}
-
-	/**
-	 * The holder of the actual widget.
-	 */
-	static interface ControlHolder {
-
-		/**
-		 * Updates the state of the wrapped control.
-		 *
-		 * @param state The new state the control should have
-		 */
-		void updateState(boolean state);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java
deleted file mode 100644
index 9a8790c..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-// copied from org.eclipse.jdt.internal.ui.util.TableLayoutComposite
-package org.eclipse.jpt.common.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-import org.eclipse.core.runtime.Assert;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-
-/**
- * A special composite to layout columns inside a table. The composite is needed since we have
- * to layout the columns "before" the actual table gets layouted. Hence we can't use a normal
- * layout manager.
- * <p>
- * XXX: Should switch to use {@link org.eclipse.jface.layout.TableColumnLayout}.
- * </p>
- */
-public class TableLayoutComposite extends Composite {
-
-	/**
-	 * The number of extra pixels taken as horizontal trim by the table column.
-	 * To ensure there are N pixels available for the content of the column,
-	 * assign N+COLUMN_TRIM for the column width.
-	 * <p>
-	 * XXX: Should either switch to use {@link org.eclipse.jface.layout.TableColumnLayout} or get API from JFace or SWT, see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=218483
-	 * </p>
-	 *
-	 * @since 3.1
-	 */
-	private static int COLUMN_TRIM;
-	static {
-		String platform= SWT.getPlatform();
-		if ("win32".equals(platform)) //$NON-NLS-1$
-			COLUMN_TRIM= 4;
-		else if ("carbon".equals(platform)) //$NON-NLS-1$
-			COLUMN_TRIM= 24;
-		else
-			COLUMN_TRIM= 3;
-	}
-
-	private List columns= new ArrayList();
-
-	/**
-	 * Creates a new <code>TableLayoutComposite</code>.
-	 *
-	 * @param parent the parent composite
-	 * @param style the SWT style
-	 */
-	public TableLayoutComposite(Composite parent, int style) {
-		super(parent, style);
-        addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                Rectangle area= getClientArea();
-                Table table= (Table)getChildren()[0];
-                Point preferredSize= computeTableSize(table);
-                int width= area.width - 2 * table.getBorderWidth();
-                if (preferredSize.y > area.height) {
-                    // Subtract the scrollbar width from the total column width
-                    // if a vertical scrollbar will be required
-                    Point vBarSize = table.getVerticalBar().getSize();
-                    width -= vBarSize.x;
-                }
-                layoutTable(table, width, area, table.getSize().x < area.width);
-            }
-        });
-	}
-
-	/**
-	 * Adds a new column of data to this table layout.
-	 *
-	 * @param data the column layout data
-	 */
-	public void addColumnData(ColumnLayoutData data) {
-		columns.add(data);
-	}
-
-	//---- Helpers -------------------------------------------------------------------------------------
-
-	private Point computeTableSize(Table table) {
-		Point result= table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		int width= 0;
-		int size= columns.size();
-		for (int i= 0; i < size; ++i) {
-			ColumnLayoutData layoutData= (ColumnLayoutData) columns.get(i);
-			if (layoutData instanceof ColumnPixelData) {
-				ColumnPixelData col= (ColumnPixelData) layoutData;
-				width += col.width;
-				if (col.addTrim) {
-					width += COLUMN_TRIM;
-				}
-			} else if (layoutData instanceof ColumnWeightData) {
-				ColumnWeightData col= (ColumnWeightData) layoutData;
-				width += col.minimumWidth;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-		if (width > result.x)
-			result.x= width;
-		return result;
-	}
-
-	private void layoutTable(Table table, int width, Rectangle area, boolean increase) {
-		// XXX: Layout is being called with an invalid value the first time
-		// it is being called on Linux. This method resets the
-		// Layout to null so we make sure we run it only when
-		// the value is OK.
-		if (width <= 1)
-			return;
-
-		TableColumn[] tableColumns= table.getColumns();
-		int size= Math.min(columns.size(), tableColumns.length);
-		int[] widths= new int[size];
-		int fixedWidth= 0;
-		int numberOfWeightColumns= 0;
-		int totalWeight= 0;
-
-		// First calc space occupied by fixed columns
-		for (int i= 0; i < size; i++) {
-			ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-			if (col instanceof ColumnPixelData) {
-				ColumnPixelData cpd= (ColumnPixelData) col;
-				int pixels= cpd.width;
-				if (cpd.addTrim) {
-					pixels += COLUMN_TRIM;
-				}
-				widths[i]= pixels;
-				fixedWidth += pixels;
-			} else if (col instanceof ColumnWeightData) {
-				ColumnWeightData cw= (ColumnWeightData) col;
-				numberOfWeightColumns++;
-				// first time, use the weight specified by the column data, otherwise use the actual width as the weight
-				// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-				int weight= cw.weight;
-				totalWeight += weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-
-		// Do we have columns that have a weight
-		if (numberOfWeightColumns > 0) {
-			// Now distribute the rest to the columns with weight.
-			int rest= width - fixedWidth;
-			int totalDistributed= 0;
-			for (int i= 0; i < size; ++i) {
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					ColumnWeightData cw= (ColumnWeightData) col;
-					// calculate weight as above
-					// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-					int weight= cw.weight;
-					int pixels= totalWeight == 0 ? 0 : weight * rest / totalWeight;
-					if (pixels < cw.minimumWidth)
-						pixels= cw.minimumWidth;
-					totalDistributed += pixels;
-					widths[i]= pixels;
-				}
-			}
-
-			// Distribute any remaining pixels to columns with weight.
-			int diff= rest - totalDistributed;
-			for (int i= 0; diff > 0; ++i) {
-				if (i == size)
-					i= 0;
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					++widths[i];
-					--diff;
-				}
-			}
-		}
-
-		if (increase) {
-			table.setSize(area.width, area.height);
-		}
-		for (int i= 0; i < size; i++) {
-			tableColumns[i].setWidth(widths[i]);
-		}
-		if (!increase) {
-			table.setSize(area.width, area.height);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java
deleted file mode 100644
index 9a8b3aa..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.CommandExecutor;
-import org.eclipse.jpt.common.utility.internal.CommandRunnable;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * This implementation of CommandExecutor can be used by a non-UI
- * thread to asynchronously modify a JPA project with any objects associated
- * with documents that are currently displayed in the UI.
- */
-public final class AsynchronousUiCommandExecutor
-	implements CommandExecutor
-{
-	public static final CommandExecutor INSTANCE = new AsynchronousUiCommandExecutor();
-
-	public static CommandExecutor instance() {
-		return INSTANCE;
-	}
-
-	// ensure single instance
-	private AsynchronousUiCommandExecutor() {
-		super();
-	}
-
-	public void execute(Command command) {
-		this.getDisplay().asyncExec(this.buildRunnable(command));
-	}
-
-	private Runnable buildRunnable(Command command) {
-		return new CommandRunnable(command);
-	}
-
-	private Display getDisplay() {
-		Display display = Display.getCurrent();
-		return (display != null) ? display : Display.getDefault();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java
deleted file mode 100644
index 895dd21..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.CommandExecutor;
-import org.eclipse.jpt.common.utility.internal.CommandRunnable;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * This implementation of CommandExecutor can be used by a non-UI
- * thread to synchronously modify a JPA project with any objects associated
- * with documents that are currently displayed in the UI.
- */
-public final class SynchronousUiCommandExecutor
-	implements CommandExecutor
-{
-	public static final CommandExecutor INSTANCE = new SynchronousUiCommandExecutor();
-
-	public static CommandExecutor instance() {
-		return INSTANCE;
-	}
-
-	// ensure single instance
-	private SynchronousUiCommandExecutor() {
-		super();
-	}
-
-	public void execute(Command command) {
-		this.getDisplay().syncExec(this.buildRunnable(command));
-	}
-
-	private Runnable buildRunnable(Command command) {
-		return new CommandRunnable(command);
-	}
-
-	private Display getDisplay() {
-		Display display = Display.getCurrent();
-		return (display != null) ? display : Display.getDefault();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java
deleted file mode 100644
index 50df452..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * All the "list widgets" are subclasses of {@link Widget}; so we can provide
- * a smidgen of common behavior here.
- */
-abstract class AbstractListWidgetAdapter<W extends Widget>
-	implements ListWidgetModelBinding.ListWidget
-{
-	final W widget;
-
-	AbstractListWidgetAdapter(W widget) {
-		super();
-		this.widget = widget;
-	}
-
-	public boolean isDisposed() {
-		return this.widget.isDisposed();
-	}
-
-	public void addDisposeListener(DisposeListener listener) {
-		this.widget.addDisposeListener(listener);
-	}
-
-	public void removeDisposeListener(DisposeListener listener) {
-		this.widget.removeDisposeListener(listener);
-	}
-
-}
-
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java
deleted file mode 100644
index 5967029..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Button;
-
-/**
- * This binding can be used to keep a check-box, toggle button, or radio button
- * "selection" synchronized with a model boolean.
- * 
- * @see WritablePropertyValueModel
- * @see Button
- */
-@SuppressWarnings("nls")
-final class BooleanButtonModelBinding {
-
-	// ***** model
-	/** A value model on the underlying model boolean. */
-	private final WritablePropertyValueModel<Boolean> booleanModel;
-
-	/**
-	 * A listener that allows us to synchronize the button's selection state with
-	 * the model boolean.
-	 */
-	private final PropertyChangeListener booleanChangeListener;
-
-	/**
-	 * The default setting for the check-box/toggle button/radio button;
-	 * for when the underlying model is <code>null</code>.
-	 * The default [default value] is <code>false</code> (i.e. the check-box
-	 * is unchecked/toggle button popped out/radio button unchecked).
-	 */
-	private final boolean defaultValue;
-
-	// ***** UI
-	/** The check-box/toggle button/radio button we synchronize with the model boolean. */
-	private final Button button;
-
-	/**
-	 * A listener that allows us to synchronize the model boolean with
-	 * the button's selection state.
-	 */
-	private final SelectionListener buttonSelectionListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the button
-	 * is disposed. (Critical for preventing memory leaks.)
-	 */
-	private final DisposeListener buttonDisposeListener;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - the boolean model and button are required.
-	 */
-	BooleanButtonModelBinding(WritablePropertyValueModel<Boolean> booleanModel, Button button, boolean defaultValue) {
-		super();
-		if ((booleanModel == null) || (button == null)) {
-			throw new NullPointerException();
-		}
-		this.booleanModel = booleanModel;
-		this.button = button;
-		this.defaultValue = defaultValue;
-
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-		this.booleanModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-
-		this.buttonSelectionListener = this.buildButtonSelectionListener();
-		this.button.addSelectionListener(this.buttonSelectionListener);
-
-		this.buttonDisposeListener = this.buildButtonDisposeListener();
-		this.button.addDisposeListener(this.buttonDisposeListener);
-
-		this.setButtonSelection(this.booleanModel.getValue());
-	}
-
-
-	// ********** initialization **********
-
-	private PropertyChangeListener buildBooleanChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
-	}
-
-	private PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				BooleanButtonModelBinding.this.booleanChanged(event);
-			}
-		    @Override
-			public String toString() {
-				return "boolean listener";
-			}
-		};
-	}
-
-	private SelectionListener buildButtonSelectionListener() {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent event) {
-				BooleanButtonModelBinding.this.buttonSelected();
-			}
-		    @Override
-			public String toString() {
-				return "button selection listener";
-			}
-		};
-	}
-
-	private DisposeListener buildButtonDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				BooleanButtonModelBinding.this.buttonDisposed();
-			}
-		    @Override
-			public String toString() {
-				return "button dispose listener";
-			}
-		};
-	}
-
-
-	// ********** boolean model events **********
-
-	/**
-	 * The model has changed - synchronize the button.
-	 * If the new model value is null, use the binding's default value
-	 * (which is typically false).
-	 */
-	/* CU private */ void booleanChanged(PropertyChangeEvent event) {
-		this.setButtonSelection((Boolean) event.getNewValue());
-	}
-
-	private void setButtonSelection(Boolean b) {
-		if ( ! this.button.isDisposed()) {
-			this.button.setSelection(this.booleanValue(b));
-		}
-	}
-
-	private boolean booleanValue(Boolean b) {
-		return (b != null) ? b.booleanValue() : this.defaultValue;
-	}
-
-
-	// ********** button events **********
-
-	/**
-	 * The button has been "selected" - synchronize the model.
-	 */
-	/* CU private */ void buttonSelected() {
-		if ( ! this.button.isDisposed()) {
-			this.booleanModel.setValue(Boolean.valueOf(this.button.getSelection()));
-		}
-	}
-
-	/* CU private */ void buttonDisposed() {
-		// the button is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.button.removeSelectionListener(this.buttonSelectionListener);
-		this.button.removeDisposeListener(this.buttonDisposeListener);
-		this.booleanModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-    @Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.booleanModel);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java
deleted file mode 100644
index 5ea988d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This controller enables a boolean model to control either the
- * <em>enabled</em> or <em>visible</em> properties of SWT controls; i.e. the
- * controls' properties are kept in synch with the boolean model,
- * but <em>not</em> vice-versa.
- * <p>
- * Subclasses must manage the listeners; i.e. the engaging and disengaging of
- * the boolean model and the control(s).
- * 
- * @see PropertyValueModel
- * @see Control#setEnabled(boolean)
- * @see Control#setVisible(boolean)
- */
-abstract class BooleanStateController {
-
-	/**
-	 * The controlling boolean model.
-	 */
-	private final PropertyValueModel<Boolean> booleanModel;
-
-	/**
-	 * A listener that allows us to synchronize the control states with
-	 * changes in the value of the boolean model.
-	 */
-	private final PropertyChangeListener booleanChangeListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when all the
-	 * controls are disposed. (Critical for preventing memory leaks.)
-	 */
-	private final DisposeListener controlDisposeListener;
-
-	/**
-	 * The default setting for the state; for when the underlying boolean model is
-	 * <code>null</code>. The default [default value] is <code>false<code>.
-	 */
-	private final boolean defaultValue;
-
-	/**
-	 * The adapter determines whether the 'enabled' or 'visible' property is
-	 * controlled.
-	 */
-	private final Adapter adapter;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - the boolean model and the adapter are required.
-	 */
-	BooleanStateController(PropertyValueModel<Boolean> booleanModel, boolean defaultValue, Adapter adapter) {
-		super();
-		if ((booleanModel == null) || (adapter == null)) {
-			throw new NullPointerException();
-		}
-		this.booleanModel = booleanModel;
-		this.defaultValue = defaultValue;
-		this.adapter = adapter;
-
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-		this.controlDisposeListener = this.buildControlDisposeListener();
-	}
-
-
-	// ********** initialization **********
-
-	private PropertyChangeListener buildBooleanChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
-	}
-
-	private PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				BooleanStateController.this.booleanChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "boolean listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private DisposeListener buildControlDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				// the control is not yet "disposed" when we receive this event
-				// so we can still remove our listener
-				BooleanStateController.this.controlDisposed((Control) event.widget);
-			}
-			@Override
-			public String toString() {
-				return "control dispose listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** boolean model **********
-
-	void engageBooleanModel() {
-		this.booleanModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-	void disengageBooleanModel() {
-		this.booleanModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-	/**
-	 * The boolean model has changed - synchronize the controls.
-	 * If the new boolean model value is <code>null</code>, use the controller's
-	 * default value (which is typically false).
-	 */
-	/* CU private */ void booleanChanged(PropertyChangeEvent event) {
-		this.setControlState((Boolean) event.getNewValue());
-	}
-
-
-	boolean getBooleanValue() {
-		return this.booleanValue(this.booleanModel.getValue());
-	}
-
-	private boolean booleanValue(Boolean b) {
-		return (b != null) ? b.booleanValue() : this.defaultValue;
-	}
-
-
-	// ********** control **********
-
-	void engageControl(Control control) {
-		control.addDisposeListener(this.controlDisposeListener);
-	}
-
-	void disengageControl(Control control) {
-		control.removeDisposeListener(this.controlDisposeListener);
-	}
-
-	private void setControlState(Boolean b) {
-		this.setControlState(this.booleanValue(b));
-	}
-
-	abstract void setControlState(boolean b);
-
-	void setControlState(Control control, boolean b) {
-		if ( ! control.isDisposed()) {
-			this.adapter.setState(control, b);
-		}
-	}
-
-	void controlDisposed(Control control) {
-		this.disengageControl(control);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.booleanModel);
-	}
-
-
-	// ********** adapter interface **********
-
-	interface Adapter {
-		void setState(Control control, boolean b);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java
deleted file mode 100644
index ccfb8bd..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Tools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-/**
- * This binding can be used to keep a drop-down list box's selection
- * synchronized with a model. The selection can be modified by either the
- * drop-down list box or the model, so changes must be coordinated.
- * <p>
- * <strong>NB:</strong> A selected item value of <code>null</code> can be used
- * to clear the drop-down list box's selection. If <code>null</code> is a
- * valid item in the model list, an invalid selected item can be used to clear
- * the selection.
- * 
- * @see ListValueModel
- * @see WritablePropertyValueModel
- * @see DropDownListBox
- * @see SWTTools
- */
-@SuppressWarnings("nls")
-final class DropDownListBoxSelectionBinding<E>
-	implements ListWidgetModelBinding.SelectionBinding
-{
-	// ***** model
-	/**
-	 * The underlying list model.
-	 */
-	private final ListValueModel<E> listModel;
-
-	/**
-	 * A writable value model on the underlying model selection.
-	 */
-	private final WritablePropertyValueModel<E> selectedItemModel;
-
-	/**
-	 * A listener that allows us to synchronize the drop-down list box's
-	 * selection with the model selection.
-	 */
-	private final PropertyChangeListener selectedItemChangeListener;
-
-	// ***** UI
-	/**
-	 * The drop-down list box whose selection we keep synchronized
-	 * with the model selection.
-	 */
-	private final DropDownListBox dropdownListBox;
-
-	/**
-	 * A listener that allows us to synchronize our selected item holder
-	 * with the drop-down list box's selection.
-	 */
-	private final SelectionListener dropdownListBoxSelectionListener;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - all parameters are required.
-	 */
-	DropDownListBoxSelectionBinding(
-			ListValueModel<E> listModel,
-			WritablePropertyValueModel<E> selectedItemModel,
-			DropDownListBox dropdownListBox
-	) {
-		super();
-		if ((listModel == null) || (selectedItemModel == null) || (dropdownListBox == null)) {
-			throw new NullPointerException();
-		}
-		this.listModel = listModel;
-		this.selectedItemModel = selectedItemModel;
-		this.dropdownListBox = dropdownListBox;
-
-		this.selectedItemChangeListener = this.buildSelectedItemChangeListener();
-		this.selectedItemModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener);
-
-		this.dropdownListBoxSelectionListener = this.buildDropDownListBoxSelectionListener();
-		this.dropdownListBox.addSelectionListener(this.dropdownListBoxSelectionListener);
-	}
-
-
-	// ********** initialization **********
-
-	private PropertyChangeListener buildSelectedItemChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_());
-	}
-
-	private PropertyChangeListener buildSelectedItemChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DropDownListBoxSelectionBinding.this.selectedItemChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "selected item listener";
-			}
-		};
-	}
-
-	private SelectionListener buildDropDownListBoxSelectionListener() {
-		return new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				DropDownListBoxSelectionBinding.this.dropDownListBoxSelectionChanged(event);
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				DropDownListBoxSelectionBinding.this.dropDownListBoxDoubleClicked(event);
-			}
-			@Override
-			public String toString() {
-				return "drop-down list box selection listener";
-			}
-		};
-	}
-
-
-	// ********** ListWidgetModelBinding.SelectionBinding implementation **********
-
-	/**
-	 * Modifying the drop-down lisb box's selected item programmatically does
-	 * not trigger a SelectionEvent.
-	 * <p>
-	 * Pre-condition: The drop-down list box is not disposed.
-	 */
-	public void synchronizeListWidgetSelection() {
-		int oldIndex = this.dropdownListBox.getSelectionIndex();
-		E value = this.selectedItemModel.getValue();
-		int newIndex = this.indexOf(value);
-		if ((oldIndex != -1) && (newIndex != -1) && (newIndex != oldIndex)) {
-			this.dropdownListBox.deselect(oldIndex);
-		}
-		if (newIndex == -1) {
-			this.dropdownListBox.deselectAll();
-		} else {
-			if (newIndex != oldIndex) {
-				this.dropdownListBox.select(newIndex);
-			}
-		}
-	}
-
-	public void dispose() {
-		this.dropdownListBox.removeSelectionListener(this.dropdownListBoxSelectionListener);
-		this.selectedItemModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener);
-	}
-
-
-	// ********** selected item **********
-
-	void selectedItemChanged(PropertyChangeEvent event) {
-		if ( ! this.dropdownListBox.isDisposed()) {
-			this.selectedItemChanged_(event);
-		}
-	}
-
-	/**
-	 * Modifying the drop-down list box's selected item programmatically does
-	 * not trigger a SelectionEvent.
-	 */
-	private void selectedItemChanged_(@SuppressWarnings("unused") PropertyChangeEvent event) {
-		this.synchronizeListWidgetSelection();
-	}
-
-	private int indexOf(E item) {
-		int len = this.listModel.size();
-		for (int i = 0; i < len; i++) {
-			if (Tools.valuesAreEqual(this.listModel.get(i), item)) {
-				return i;
-			}
-		}
-		// if 'null' is not in the list, use it to clear the selection
-		if (item == null) {
-			return -1;
-		}
-		// We can get here via one of the following:
-		// 1. The selected item model is invalid and not in sync with the list
-		//    model. This is not good and we don't make this (programming
-		//    error) obvious (e.g. via an exception). :-(
-		// 2. If both the selected item model and the list model are dependent
-		//    on the same underlying model, the selected item model may receive
-		//    its event first, resulting in a missing item. This will resolve
-		//    itself once the list model receives its event and synchronizes
-		//    with the same underlying model. This situation is acceptable.
-		return -1;
-
-// This is what we used to do:
-//		throw new IllegalStateException("selected item not found: " + item);
-	}
-
-
-	// ********** combo-box events **********
-
-	void dropDownListBoxSelectionChanged(SelectionEvent event) {
-		if ( ! this.dropdownListBox.isDisposed()) {
-			this.dropDownListBoxSelectionChanged_(event);
-		}
-	}
-
-	void dropDownListBoxDoubleClicked(SelectionEvent event) {
-		if ( ! this.dropdownListBox.isDisposed()) {
-			this.dropDownListBoxSelectionChanged_(event);
-		}
-	}
-
-	private void dropDownListBoxSelectionChanged_(@SuppressWarnings("unused") SelectionEvent event) {
-		this.selectedItemModel.setValue(this.getDropDownListBoxSelectedItem());
-	}
-
-	private E getDropDownListBoxSelectedItem() {
-		int selectionIndex = this.dropdownListBox.getSelectionIndex();
-		return (selectionIndex == -1) ? null : this.listModel.get(selectionIndex);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.selectedItemModel);
-	}
-
-
-	// ********** adapter interface **********
-
-	/**
-	 * Adapter used by the drop-down list box selection binding to query and manipulate
-	 * the drop-down list box.
-	 */
-	interface DropDownListBox {
-
-		/**
-		 * Return whether the combo-box is "disposed".
-		 */
-		boolean isDisposed();
-
-		/**
-		 * Add the specified selection listener to the combo-box.
-		 */
-		void addSelectionListener(SelectionListener listener);
-
-		/**
-		 * Remove the specified selection listener from the combo-box.
-		 */
-		void removeSelectionListener(SelectionListener listener);
-
-		/**
-		 * Return the index of the combo-box's selection.
-		 */
-		int getSelectionIndex();
-
-		/**
-		 * Select the item at the specified index in the combo-box.
-		 */
-		void select(int index);
-
-		/**
-		 * Deselect the item at the specified index in the combo-box.
-		 */
-		void deselect(int index);
-
-		/**
-		 * Clear the combo-box's selection.
-		 */
-		void deselectAll();
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java
deleted file mode 100644
index 1c5c28b..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Tools;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.List;
-
-/**
- * This binding can be used to keep a list box's selection
- * synchronized with a model. The selection can be modified by either the list
- * box or the model, so changes must be coordinated.
- * 
- * @see ListValueModel
- * @see WritableCollectionValueModel
- * @see List
- * @see SWTTools
- */
-@SuppressWarnings("nls")
-final class ListBoxSelectionBinding<E>
-	implements ListWidgetModelBinding.SelectionBinding
-{
-	// ***** model
-	/**
-	 * The underlying list model.
-	 */
-	private final ListValueModel<E> listModel;
-
-	/**
-	 * A writable value model on the underlying model selections.
-	 */
-	private final WritableCollectionValueModel<E> selectedItemsModel;
-
-	/**
-	 * A listener that allows us to synchronize the list box's selection with
-	 * the model selections.
-	 */
-	private final CollectionChangeListener selectedItemsChangeListener;
-
-	// ***** UI
-	/**
-	 * The list box whose selection we keep synchronized with the model selections.
-	 */
-	private final List listBox;
-
-	/**
-	 * A listener that allows us to synchronize our selected items holder
-	 * with the list box's selection.
-	 */
-	private final SelectionListener listBoxSelectionListener;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - all parameters are required.
-	 */
-	ListBoxSelectionBinding(
-			ListValueModel<E> listModel,
-			WritableCollectionValueModel<E> selectedItemsModel,
-			List listBox
-	) {
-		super();
-		if ((listModel == null) || (selectedItemsModel == null) || (listBox == null)) {
-			throw new NullPointerException();
-		}
-		this.listModel = listModel;
-		this.selectedItemsModel = selectedItemsModel;
-		this.listBox = listBox;
-
-		this.selectedItemsChangeListener = this.buildSelectedItemsChangeListener();
-		this.selectedItemsModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener);
-
-		this.listBoxSelectionListener = this.buildListBoxSelectionListener();
-		this.listBox.addSelectionListener(this.listBoxSelectionListener);
-	}
-
-
-	// ********** initialization **********
-
-	private CollectionChangeListener buildSelectedItemsChangeListener() {
-		return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_());
-	}
-
-	private CollectionChangeListener buildSelectedItemsChangeListener_() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				ListBoxSelectionBinding.this.selectedItemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				ListBoxSelectionBinding.this.selectedItemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				ListBoxSelectionBinding.this.selectedItemsCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				ListBoxSelectionBinding.this.selectedItemsChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "selected items listener";
-			}
-		};
-	}
-
-	private SelectionListener buildListBoxSelectionListener() {
-		return new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				ListBoxSelectionBinding.this.listBoxSelectionChanged(event);
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				ListBoxSelectionBinding.this.listBoxDoubleClicked(event);
-			}
-			@Override
-			public String toString() {
-				return "list box selection listener";
-			}
-		};
-	}
-
-
-	// ********** ListWidgetModelBinding.SelectionBinding implementation **********
-
-	/**
-	 * Modifying the list box's selected items programmatically does not
-	 * trigger a SelectionEvent.
-	 * 
-	 * Pre-condition: The list-box is not disposed.
-	 */
-	public void synchronizeListWidgetSelection() {
-		int selectedItemsSize = this.selectedItemsModel.size();
-		int[] select = new int[selectedItemsSize];
-		int i = 0;
-		for (E item : this.selectedItemsModel) {
-			select[i++] = this.indexOf(item);
-		}
-
-		int listSize = this.listModel.size();
-		int[] deselect = new int[listSize - selectedItemsSize];
-		i = 0;
-		for (int j = 0; j < listSize; j++) {
-			if ( ! ArrayTools.contains(select, j)) {
-				deselect[i++] = j;
-			}
-		}
-
-		int[] old = ArrayTools.sort(this.listBox.getSelectionIndices());
-		select = ArrayTools.sort(select);
-		if ( ! Arrays.equals(select, old)) {
-			this.listBox.deselect(deselect);
-			this.listBox.select(select);
-		}
-	}
-
-	public void dispose() {
-		this.listBox.removeSelectionListener(this.listBoxSelectionListener);
-		this.selectedItemsModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener);
-	}
-
-
-	// ********** selected items **********
-
-	void selectedItemsAdded(CollectionAddEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.selectedItemsAdded_(event);
-		}
-	}
-
-	/**
-	 * Modifying the list box's selected items programmatically does not
-	 * trigger a SelectionEvent.
-	 */
-	private void selectedItemsAdded_(CollectionAddEvent event) {
-		int[] indices = new int[event.getItemsSize()];
-		int i = 0;
-		for (E item : this.getItems(event)) {
-			indices[i++] = this.indexOf(item);
-		}
-		this.listBox.select(indices);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Iterable<E> getItems(CollectionAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	void selectedItemsRemoved(CollectionRemoveEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.selectedItemsRemoved_(event);
-		}
-	}
-
-	/**
-	 * Modifying the list box's selected items programmatically does not
-	 * trigger a SelectionEvent.
-	 */
-	private void selectedItemsRemoved_(CollectionRemoveEvent event) {
-		int[] indices = new int[event.getItemsSize()];
-		int i = 0;
-		for (E item : this.getItems(event)) {
-			indices[i++] = this.indexOf(item);
-		}
-		this.listBox.deselect(indices);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Iterable<E> getItems(CollectionRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	void selectedItemsCleared(CollectionClearEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.selectedItemsCleared_(event);
-		}
-	}
-
-	/**
-	 * Modifying the list box's selected items programmatically does not
-	 * trigger a SelectionEvent.
-	 */
-	private void selectedItemsCleared_(@SuppressWarnings("unused") CollectionClearEvent event) {
-		this.listBox.deselectAll();
-	}
-
-	void selectedItemsChanged(CollectionChangeEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.selectedItemsChanged_(event);
-		}
-	}
-
-	private void selectedItemsChanged_(@SuppressWarnings("unused") CollectionChangeEvent event) {
-		this.synchronizeListWidgetSelection();
-	}
-
-	private int indexOf(E item) {
-		int len = this.listModel.size();
-		for (int i = 0; i < len; i++) {
-			if (Tools.valuesAreEqual(this.listModel.get(i), item)) {
-				return i;
-			}
-		}
-		// see comment in DropDownListBoxSelectionBinding.indexOf(E)
-		return -1;
-	}
-
-
-	// ********** list box events **********
-
-	void listBoxSelectionChanged(SelectionEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.listBoxSelectionChanged_(event);
-		}
-	}
-
-	void listBoxDoubleClicked(SelectionEvent event) {
-		if ( ! this.listBox.isDisposed()) {
-			this.listBoxSelectionChanged_(event);
-		}
-	}
-
-	private void listBoxSelectionChanged_(@SuppressWarnings("unused") SelectionEvent event) {
-		this.selectedItemsModel.setValues(this.getListBoxSelectedItems());
-	}
-
-	private Iterable<E> getListBoxSelectedItems() {
-		ArrayList<E> selectedItems = new ArrayList<E>(this.listBox.getSelectionCount());
-		for (int selectionIndex : this.listBox.getSelectionIndices()) {
-			selectedItems.add(this.listModel.get(selectionIndex));
-		}
-		return selectedItems;
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.selectedItemsModel);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java
deleted file mode 100644
index 18b9e7c..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import java.util.ArrayList;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-
-/**
- * This binding can be used to keep a list widget's contents
- * synchronized with a model. The list widget never alters
- * its contents directly; all changes are driven by the model.
- * 
- * @see ListValueModel
- * @see StringConverter
- * @see ListWidget
- * @see SelectionBinding
- * @see SWTTools
- */
-@SuppressWarnings("nls")
-final class ListWidgetModelBinding<E> {
-
-	// ***** model
-	/**
-	 * The underlying list model.
-	 */
-	private final ListValueModel<E> listModel;
-
-	/**
-	 * A listener that allows us to synchronize the list widget's contents with
-	 * the model list.
-	 */
-	private final ListChangeListener listChangeListener;
-
-	/**
-	 * A converter that converts items in the model list
-	 * to strings that can be put in the list widget.
-	 */
-	private final StringConverter<E> stringConverter;
-
-	// ***** UI
-	/**
-	 * An adapter on the list widget we keep synchronized with the model list.
-	 */
-	private final ListWidget listWidget;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the list widget
-	 * is disposed. (Critical for preventing memory leaks.)
-	 */
-	private final DisposeListener listWidgetDisposeListener;
-
-	// ***** selection
-	/**
-	 * Widget-specific selection binding.
-	 */
-	private final SelectionBinding selectionBinding;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - all parameters are required.
-	 */
-	ListWidgetModelBinding(
-			ListValueModel<E> listModel,
-			ListWidget listWidget,
-			StringConverter<E> stringConverter,
-			SelectionBinding selectionBinding
-	) {
-		super();
-		if ((listModel == null) || (listWidget == null) || (stringConverter == null) || (selectionBinding == null)) {
-			throw new NullPointerException();
-		}
-		this.listModel = listModel;
-		this.listWidget = listWidget;
-		this.stringConverter = stringConverter;
-		this.selectionBinding = selectionBinding;
-
-		this.listChangeListener = this.buildListChangeListener();
-		this.listModel.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-
-		this.listWidgetDisposeListener = this.buildListWidgetDisposeListener();
-		this.listWidget.addDisposeListener(this.listWidgetDisposeListener);
-
-		this.synchronizeListWidget();
-	}
-
-
-	// ********** initialization **********
-
-	private ListChangeListener buildListChangeListener() {
-		return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	private ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListWidgetModelBinding.this.listItemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListWidgetModelBinding.this.listItemsRemoved(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListWidgetModelBinding.this.listItemsMoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListWidgetModelBinding.this.listItemsReplaced(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListWidgetModelBinding.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListWidgetModelBinding.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list listener";
-			}
-		};
-	}
-
-	private DisposeListener buildListWidgetDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				ListWidgetModelBinding.this.listWidgetDisposed(event);
-			}
-			@Override
-			public String toString() {
-				return "list widget dispose listener";
-			}
-		};
-	}
-
-
-	// ********** list **********
-
-	/**
-	 * Brute force synchronization of list widget with the model list.
-	 */
-	private void synchronizeListWidget() {
-		if ( ! this.listWidget.isDisposed()) {
-			this.synchronizeListWidget_();
-		}
-	}
-
-	private void synchronizeListWidget_() {
-		ArrayList<String> items = new ArrayList<String>(this.listModel.size());
-		for (E item : this.listModel) {
-			items.add(this.convert(item));
-		}
-		this.listWidget.setItems(items.toArray(new String[items.size()]));
-
-		// now that the list has changed, we need to synch the selection
-		this.selectionBinding.synchronizeListWidgetSelection();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listItemsAdded(ListAddEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listItemsAdded_(event);
-		}
-	}
-
-	private void listItemsAdded_(ListAddEvent event) {
-		int i = event.getIndex();
-		for (E item : this.getItems(event)) {
-			this.listWidget.add(this.convert(item), i++);
-		}
-
-		// now that the list has changed, we need to synch the selection
-		this.selectionBinding.synchronizeListWidgetSelection();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Iterable<E> getItems(ListAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listItemsRemoved(ListRemoveEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listItemsRemoved_(event);
-		}
-	}
-
-	private void listItemsRemoved_(ListRemoveEvent event) {
-		this.listWidget.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1);
-
-		// now that the list has changed, we need to synch the selection
-		this.selectionBinding.synchronizeListWidgetSelection();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listItemsMoved(ListMoveEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listItemsMoved_(event);
-		}
-	}
-
-	private void listItemsMoved_(ListMoveEvent event) {
-		int target = event.getTargetIndex();
-		int source = event.getSourceIndex();
-		int len = event.getLength();
-		int loStart = Math.min(target, source);
-		int hiStart = Math.max(target, source);
-		// make a copy of the affected items...
-		String[] subArray = ArrayTools.subArray(this.listWidget.getItems(), loStart, hiStart + len);
-		// ...move them around...
-		subArray = ArrayTools.move(subArray, target - loStart, source - loStart, len);
-		// ...and then put them back
-		int i = loStart;
-		for (String item : subArray) {
-			this.listWidget.setItem(i++, item);
-		}
-
-		// now that the list has changed, we need to synch the selection
-		this.selectionBinding.synchronizeListWidgetSelection();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listItemsReplaced(ListReplaceEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listItemsReplaced_(event);
-		}
-	}
-
-	private void listItemsReplaced_(ListReplaceEvent event) {
-		int i = event.getIndex();
-		for (E item : this.getNewItems(event)) {
-			this.listWidget.setItem(i++, this.convert(item));
-		}
-
-		// now that the list has changed, we need to synch the selection
-		this.selectionBinding.synchronizeListWidgetSelection();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Iterable<E> getNewItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getNewItems();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listCleared(ListClearEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listCleared_(event);
-		}
-	}
-
-	private void listCleared_(@SuppressWarnings("unused") ListClearEvent event) {
-		this.listWidget.removeAll();
-	}
-
-	/**
-	 * The model has changed - synchronize the list widget.
-	 */
-	void listChanged(ListChangeEvent event) {
-		if ( ! this.listWidget.isDisposed()) {
-			this.listChanged_(event);
-		}
-	}
-
-	private void listChanged_(@SuppressWarnings("unused") ListChangeEvent event) {
-		this.synchronizeListWidget_();
-	}
-
-	/**
-	 * Use the string converter to convert the specified item to a
-	 * string that can be added to the list widget.
-	 */
-	private String convert(E item) {
-		return this.stringConverter.convertToString(item);
-	}
-
-
-	// ********** list widget events **********
-
-	void listWidgetDisposed(@SuppressWarnings("unused") DisposeEvent event) {
-		// the list widget is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.listWidget.removeDisposeListener(this.listWidgetDisposeListener);
-		this.listModel.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		this.selectionBinding.dispose();
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listModel);
-	}
-
-
-	// ********** adapter interfaces **********
-
-	/**
-	 * Adapter used by the list widget model binding to query and manipulate
-	 * the widget.
-	 */
-	interface ListWidget {
-
-		/**
-		 * Return whether the list widget is "disposed".
-		 */
-		boolean isDisposed();
-
-		/**
-		 * Add the specified dispose listener to the list widget.
-		 */
-		void addDisposeListener(DisposeListener listener);
-
-		/**
-		 * Remove the specified dispose listener from the list widget.
-		 */
-		void removeDisposeListener(DisposeListener listener);
-
-		/**
-		 * Return the list widget's items.
-		 */
-		String[] getItems();
-
-		/**
-		 * Set the list widget's item at the specified index to the specified item.
-		 */
-		void setItem(int index, String item);
-
-		/**
-		 * Set the list widget's items.
-		 */
-		void setItems(String[] items);
-
-		/**
-		 * Add the specified item to the list widget's items at the specified index.
-		 */
-		void add(String item, int index);
-
-		/**
-		 * Remove the specified range of items from the list widget's items.
-		 */
-		void remove(int start, int end);
-
-		/**
-		 * Remove all the items from the list widget.
-		 */
-		void removeAll();
-
-	}
-
-
-	/**
-	 * Widget-specific selection binding that is controlled by the list widget
-	 * model binding.
-	 */
-	interface SelectionBinding {
-
-		/**
-		 * Synchronize the selection binding's widget with the selection model.
-		 * <p>
-		 * Pre-condition: The widget is not disposed.
-		 */
-		void synchronizeListWidgetSelection();
-
-		/**
-		 * The widget has been disposed; dispose the selection binding.
-		 */
-		void dispose();
-
-
-		/**
-		 * Useful for list boxes that ignore the selection.
-		 */
-		final class Null implements SelectionBinding {
-			public static final SelectionBinding INSTANCE = new Null();
-			public static SelectionBinding instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			public void synchronizeListWidgetSelection() {
-				// do nothing
-			}
-			public void dispose() {
-				// do nothing
-			}
-			@Override
-			public String toString() {
-				return "SelectionBinding.Null"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java
deleted file mode 100644
index aa52a80..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import java.util.HashSet;
-
-import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This controller enables a boolean model to control either the
- * <em>enabled</em> or <em>visible</em> properties of a set of SWT controls;
- * i.e. the controls' properties are kept in synch with the boolean model,
- * but <em>not</em> vice-versa.
- * 
- * @see PropertyValueModel
- * @see CollectionValueModel
- * @see Control#setEnabled(boolean)
- * @see Control#setVisible(boolean)
- */
-final class MultiControlBooleanStateController
-	extends BooleanStateController
-{
-	/**
-	 * The set of controls whose state is kept in sync with the boolean model.
-	 */
-	private final CollectionValueModel<? extends Control> controlsModel;
-
-	/**
-	 * A listener that allows clients to add/remove controls.
-	 */
-	private final CollectionChangeListener controlsListener;
-
-	/**
-	 * Cache of controls.
-	 */
-	private final HashSet<Control> controls = new HashSet<Control>();
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - the boolean model, the controls model, and the adapter are required.
-	 */
-	MultiControlBooleanStateController(
-			PropertyValueModel<Boolean> booleanModel,
-			CollectionValueModel<? extends Control> controlsModel,
-			boolean defaultValue,
-			Adapter adapter
-	) {
-		super(booleanModel, defaultValue, adapter);
-		if (controlsModel == null) {
-			throw new NullPointerException();
-		}
-		this.controlsModel = controlsModel;
-		this.controlsListener = this.buildControlsListener();
-		this.addControls(controlsModel);
-	}
-
-
-	// ********** initialization **********
-
-	private CollectionChangeListener buildControlsListener() {
-		return new CollectionChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void itemsAdded(CollectionAddEvent event) {
-				MultiControlBooleanStateController.this.addControls((Iterable<? extends Control>) event.getItems());
-			}
-			@SuppressWarnings("unchecked")
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				MultiControlBooleanStateController.this.removeControls((Iterable<? extends Control>) event.getItems());
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				MultiControlBooleanStateController.this.clearControls();
-			}
-			@SuppressWarnings("unchecked")
-			public void collectionChanged(CollectionChangeEvent event) {
-				MultiControlBooleanStateController.this.clearControls();
-				MultiControlBooleanStateController.this.addControls((Iterable<? extends Control>) event.getCollection());
-			}
-			@Override
-			public String toString() {
-				return "controls listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** controls **********
-
-	@Override
-	void setControlState(boolean b) {
-		for (Control control : this.controls) {
-			this.setControlState(control, b);
-		}
-	}
-
-	/* CU private */ void addControls(Iterable<? extends Control> controls_) {
-		boolean b = this.getBooleanValue();
-		for (Control control : controls_) {
-			this.addControl(control, b);
-		}
-	}
-
-	private void addControl(Control control, boolean b) {
-		if (this.controls.isEmpty()) {
-			this.engageBooleanModel();
-			this.controlsModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.controlsListener);
-		}
-		if (this.controls.add(control)) {
-			this.engageControl(control);
-			this.setControlState(control, b);
-		} else {
-			throw new IllegalArgumentException("duplicate control: " + control); //$NON-NLS-1$
-		}
-	}
-
-	/* CU private */ void clearControls() {
-		this.removeControls(new SnapshotCloneIterable<Control>(this.controls));
-	}
-
-	/* CU private */ void removeControls(Iterable<? extends Control> controls_) {
-		for (Control control : controls_) {
-			this.disengageControl(control);
-			this.removeControl(control);
-		}
-	}
-
-	private void removeControl(Control control) {
-		this.controls.remove(control);
-		if (this.controls.isEmpty()) {
-			this.controlsModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.controlsListener);
-			this.disengageBooleanModel();
-		}
-	}
-
-	@Override
-	void controlDisposed(Control control) {
-		super.controlDisposed(control);
-		this.removeControl(control);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java
deleted file mode 100644
index 672524d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * Adapt an SWT {@link Combo} to the list widget expected by
- * {@link ListWidgetModelBinding} and the
- * drop-down list box expected by {@link DropDownListBoxSelectionBinding}.
- */
-final class SWTComboAdapter
-	extends AbstractListWidgetAdapter<Combo>
-	implements DropDownListBoxSelectionBinding.DropDownListBox
-{
-	SWTComboAdapter(Combo combo) {
-		super(combo);
-	}
-
-	// ********** ListWidgetModelBinding.ListWidget implementation **********
-	public String[] getItems() {
-		return this.widget.getItems();
-	}
-	public void setItem(int index, String item) {
-		this.widget.setItem(index, item);
-	}
-	public void setItems(String[] items) {
-		this.widget.setItems(items);
-	}
-	public void add(String item, int index) {
-		this.widget.add(item, index);
-	}
-	public void remove(int start, int end) {
-		this.widget.remove(start, end);
-	}
-	public void removeAll() {
-		this.widget.removeAll();
-	}
-
-	// ********** ComboBoxSelectionBinding.ComboBox implementation **********
-	public void addSelectionListener(SelectionListener listener) {
-		this.widget.addSelectionListener(listener);
-	}
-	public void removeSelectionListener(SelectionListener listener) {
-		this.widget.removeSelectionListener(listener);
-	}
-	public int getSelectionIndex() {
-		return this.widget.getSelectionIndex();
-	}
-	public void select(int index) {
-		this.widget.select(index);
-	}
-	public void deselect(int index) {
-		this.widget.deselect(index);
-	}
-	public void deselectAll() {
-		this.widget.deselectAll();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java
deleted file mode 100644
index 767be1b..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.List;
-
-/**
- * Adapt an SWT {@link List} to the list widget expected by
- * {@link ListWidgetModelBinding}.
- */
-final class SWTListAdapter
-	extends AbstractListWidgetAdapter<List>
-{
-	SWTListAdapter(List list) {
-		super(list);
-	}
-	public void addSelectionListener(SelectionListener listener) {
-		this.widget.addSelectionListener(listener);
-	}
-	public void removeSelectionListener(SelectionListener listener) {
-		this.widget.removeSelectionListener(listener);
-	}
-	public String[] getItems() {
-		return this.widget.getItems();
-	}
-	public void setItem(int index, String item) {
-		this.widget.setItem(index, item);
-	}
-	public void setItems(String[] items) {
-		this.widget.setItems(items);
-	}
-	public void add(String item, int index) {
-		this.widget.add(item, index);
-	}
-	public void remove(int start, int end) {
-		this.widget.remove(start, end);
-	}
-	public void removeAll() {
-		this.widget.removeAll();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java
deleted file mode 100644
index f5b9358..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.internal.BitTools;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.WritablePropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Various SWT tools.
- */
-@SuppressWarnings("nls")
-public final class SWTTools {
-
-	// ********** check-box/radio button/toggle button **********
-
-	/**
-	 * Bind the specified button (check-box, radio button, or toggle button)
-	 * to the specified boolean model.
-	 * If the boolean model is <code>null<code>, the button's 'selection' state will
-	 * be <code>false<code>.
-	 */
-	public static void bind(WritablePropertyValueModel<Boolean> booleanModel, Button button) {
-		bind(booleanModel, button, false);
-	}
-
-	/**
-	 * Bind the specified button (check-box, radio button, or toggle button)
-	 * to the specified boolean model.
-	 * If the boolean model is <code>null<code>, the button's 'selection' state will
-	 * be the specified default value.
-	 */
-	public static void bind(WritablePropertyValueModel<Boolean> booleanModel, Button button, boolean defaultValue) {
-		// the new binding will add itself as a listener to the boolean model and the button
-		new BooleanButtonModelBinding(booleanModel, button, defaultValue);
-	}
-
-
-	// ********** text field **********
-
-	/**
-	 * Bind the specified text model to the specified text field.
-	 */
-	public static <E> void bind(WritablePropertyValueModel<String> textModel, Text textField) {
-		// the new binding will add itself as a listener to the text model and the text field
-		new TextFieldModelBinding(textModel, textField);
-	}
-
-
-	// ********** list box **********
-
-	/**
-	 * Bind the specified model list to the specified list box.
-	 * The list box selection is ignored.
-	 * Use the default string converter to convert the model items to strings
-	 * to be displayed in the list box, which calls {@link Object#toString()}
-	 * on the items in the model list.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, List listBox) {
-		bind(listModel, listBox, StringConverter.Default.<E>instance());
-	}
-
-	/**
-	 * Bind the specified model list to the specified list box.
-	 * The list box selection is ignored.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the list box.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, List listBox, StringConverter<E> stringConverter) {
-		bind(listModel, new SWTListAdapter(listBox), stringConverter);
-	}
-
-	/**
-	 * Bind the specified model list and selection to the specified list box.
-	 * Use the default string converter to convert the model items to strings
-	 * to be displayed in the list box, which calls {@link Object#toString()}
-	 * on the items in the model list.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritablePropertyValueModel<E> selectedItemModel, List listBox) {
-		bind(listModel, selectedItemModel, listBox, StringConverter.Default.<E>instance());
-	}
-
-	/**
-	 * Adapt the specified model list and selection to the specified list box.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the list box.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritablePropertyValueModel<E> selectedItemModel, List listBox, StringConverter<E> stringConverter) {
-		checkForSingleSelectionStyle(listBox);
-		bind(listModel, new WritablePropertyCollectionValueModelAdapter<E>(selectedItemModel), listBox, stringConverter);
-	}
-
-	/**
-	 * Bind the specified model list and selections to the specified list box.
-	 * Use the default string converter to convert the model items to strings
-	 * to be displayed in the list box, which calls {@link Object#toString()}
-	 * on the items in the model list.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritableCollectionValueModel<E> selectedItemsModel, List listBox) {
-		bind(listModel, selectedItemsModel, listBox, StringConverter.Default.<E>instance());
-	}
-
-	/**
-	 * Bind the specified model list and selections to the specified list box.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the list box.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritableCollectionValueModel<E> selectedItemsModel, List listBox, StringConverter<E> stringConverter) {
-		bind(
-			listModel,
-			new SWTListAdapter(listBox),
-			stringConverter,
-			new ListBoxSelectionBinding<E>(listModel, selectedItemsModel, listBox)
-		);
-	}
-
-	private static void checkForSingleSelectionStyle(List listBox) {
-		if ( ! BitTools.flagIsSet(listBox.getStyle(), SWT.SINGLE)) {
-			throw new IllegalStateException("list box must be single-selection: " + listBox);
-		}
-	}
-
-
-	// ********** drop-down list box **********
-
-	/**
-	 * Bind the specified model list and selection to the specified drop-down list box.
-	 * Use the default string converter to convert the model items to strings
-	 * to be displayed in the drop-down list box, which calls {@link Object#toString()}
-	 * on the items in the model list.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritablePropertyValueModel<E> selectedItemModel, Combo dropDownListBox) {
-		bind(listModel, selectedItemModel, dropDownListBox, StringConverter.Default.<E>instance());
-	}
-
-	/**
-	 * Adapt the specified model list and selection to the specified drop-down list box.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the drop-down list box.
-	 */
-	public static <E> void bind(ListValueModel<E> listModel, WritablePropertyValueModel<E> selectedItemModel, Combo dropDownListBox, StringConverter<E> stringConverter) {
-		checkForReadOnlyStyle(dropDownListBox);
-		SWTComboAdapter comboAdapter = new SWTComboAdapter(dropDownListBox);
-		bind(
-			listModel,
-			comboAdapter,
-			stringConverter,
-			new DropDownListBoxSelectionBinding<E>(listModel, selectedItemModel, comboAdapter)
-		);
-	}
-
-	private static void checkForReadOnlyStyle(Widget comboBox) {
-		if ( ! BitTools.flagIsSet(comboBox.getStyle(), SWT.READ_ONLY)) {
-			throw new IllegalStateException("combo-box must be read-only: " + comboBox);
-		}
-	}
-
-
-	// ********** list "widget" **********
-
-	/**
-	 * Bind the specified model list to the specified list widget.
-	 * The list widget's selection is ignored.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the list box.
-	 */
-	private static <E> void bind(ListValueModel<E> listModel, ListWidgetModelBinding.ListWidget listWidget, StringConverter<E> stringConverter) {
-		bind(listModel, listWidget, stringConverter, ListWidgetModelBinding.SelectionBinding.Null.instance());
-	}
-
-	/**
-	 * Bind the specified model list to the specified list widget.
-	 * Use the specified selection binding to control the list widget's selection.
-	 * Use the specified string converter to convert the model items to strings
-	 * to be displayed in the list box.
-	 */
-	private static <E> void bind(ListValueModel<E> listModel, ListWidgetModelBinding.ListWidget listWidget, StringConverter<E> stringConverter, ListWidgetModelBinding.SelectionBinding selectionBinding) {
-		// the new binding will add itself as a listener to the value models and the list box
-		new ListWidgetModelBinding<E>(listModel, listWidget, stringConverter, selectionBinding);
-	}
-
-
-	// ********** 'enabled' state **********
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be <code>false<code>.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Control... controls) {
-		controlEnabledState(booleanModel, controls, false);
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be the specified default value.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Control[] controls, boolean defaultValue) {
-		switch (controls.length) {
-			case 0:
-				throw new IllegalArgumentException("empty controls array: " + Arrays.toString(controls));
-			case 1:
-				controlEnabledState(booleanModel, controls[0], defaultValue);
-				break;
-			default:
-				controlEnabledState(booleanModel, new StaticCollectionValueModel<Control>(controls), defaultValue);
-				break;
-		}
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be <code>false<code>.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Iterable<? extends Control> controls) {
-		controlEnabledState(booleanModel, controls, false);
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be the specified default value.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Iterable<? extends Control> controls, boolean defaultValue) {
-		controlEnabledState(booleanModel, new StaticCollectionValueModel<Control>(controls), defaultValue);
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be <code>false<code>.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, CollectionValueModel<? extends Control> controlsModel) {
-		controlEnabledState(booleanModel, controlsModel, false);
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>enabled</em> states will be the specified default value.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, CollectionValueModel<? extends Control> controlsModel, boolean defaultValue) {
-		control(booleanModel, controlsModel, defaultValue, ENABLED_ADAPTER);
-	}
-
-	/**
-	 * Control the <em>enabled</em> state of the specified control with the
-	 * specified boolean. If the boolean is <code>null<code>, the control's
-	 * <em>enabled</em> state will be the specified default value.
-	 */
-	public static void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Control control, boolean defaultValue) {
-		control(booleanModel, control, defaultValue, ENABLED_ADAPTER);
-	}
-
-	private static final BooleanStateController.Adapter ENABLED_ADAPTER =
-			new BooleanStateController.Adapter() {
-				public void setState(Control control, boolean b) {
-					control.setEnabled(b);
-				}
-			};
-   
-
-	// ********** 'visible' state **********
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be <code>false<code>.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, Control... controls) {
-		controlVisibleState(booleanModel, controls, false);
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be the specified default value.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, Control[] controls, boolean defaultValue) {
-		switch (controls.length) {
-			case 0:
-				throw new IllegalArgumentException("empty controls array: " + Arrays.toString(controls));
-			case 1:
-				controlVisibleState(booleanModel, controls[0], defaultValue);
-				break;
-			default:
-				controlVisibleState(booleanModel, new StaticCollectionValueModel<Control>(controls), defaultValue);
-				break;
-		}
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be <code>false<code>.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, Iterable<? extends Control> controls) {
-		controlVisibleState(booleanModel, controls, false);
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be the specified default value.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, Iterable<? extends Control> controls, boolean defaultValue) {
-		controlVisibleState(booleanModel, new StaticCollectionValueModel<Control>(controls), defaultValue);
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be <code>false<code>.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, CollectionValueModel<? extends Control> controlsModel) {
-		controlVisibleState(booleanModel, controlsModel, false);
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified controls with the
-	 * specified boolean. If the boolean is <code>null<code>, the controls'
-	 * <em>visible</em> states will be the specified default value.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, CollectionValueModel<? extends Control> controlsModel, boolean defaultValue) {
-		control(booleanModel, controlsModel, defaultValue, VISIBLE_ADAPTER);
-	}
-
-	/**
-	 * Control the <em>visible</em> state of the specified control with the
-	 * specified boolean. If the boolean is <code>null<code>, the control's
-	 * <em>visible</em> state will be the specified default value.
-	 */
-	public static void controlVisibleState(PropertyValueModel<Boolean> booleanModel, Control control, boolean defaultValue) {
-		control(booleanModel, control, defaultValue, VISIBLE_ADAPTER);
-	}
-
-	private static final BooleanStateController.Adapter VISIBLE_ADAPTER =
-			new BooleanStateController.Adapter() {
-				public void setState(Control control, boolean b) {
-					control.setVisible(b);
-				}
-			};
-   
-
-	// ********** boolean state controller **********
-
-	private static void control(PropertyValueModel<Boolean> booleanModel, CollectionValueModel<? extends Control> controlsModel, boolean defaultValue, BooleanStateController.Adapter adapter) {
-		// the new controller will add itself as a listener to the value model and the controls
-		new MultiControlBooleanStateController(booleanModel, controlsModel, defaultValue, adapter);
-	}
-
-	private static void control(PropertyValueModel<Boolean> booleanModel, Control control, boolean defaultValue, BooleanStateController.Adapter adapter) {
-		// the new controller will add itself as a listener to the value model and the controls
-		new SimpleBooleanStateController(booleanModel, control, defaultValue, adapter);
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private SWTTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java
deleted file mode 100644
index 0b38bb3..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This controller enables a boolean model to control either the
- * <em>enabled</em> or <em>visible</em> properties of an SWT control; i.e. the
- * control's property is kept in synch with the boolean model,
- * but <em>not</em> vice-versa.
- * <p>
- * Once the control is disposed, this controller is kaput.
- * 
- * @see PropertyValueModel
- * @see Control#setEnabled(boolean)
- * @see Control#setVisible(boolean)
- */
-final class SimpleBooleanStateController
-	extends BooleanStateController
-{
-	private final Control control;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - the boolean model, the control, and the adapter are required.
-	 */
-	SimpleBooleanStateController(
-			PropertyValueModel<Boolean> booleanModel,
-			Control control,
-			boolean defaultValue,
-			Adapter adapter
-	) {
-		super(booleanModel, defaultValue, adapter);
-		if (control == null) {
-			throw new NullPointerException();
-		}
-		this.control = control;
-		this.engageBooleanModel();
-		this.engageControl(control);
-		this.setControlState(control, this.getBooleanValue());
-	}
-
-
-	// ********** controls **********
-
-	@Override
-	void setControlState(boolean b) {
-		this.setControlState(this.control, b);
-	}
-
-	@Override
-	void controlDisposed(Control c) {
-		super.controlDisposed(c);
-		this.disengageBooleanModel();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java
deleted file mode 100644
index 12c0ce1..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.utility.swt;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * This binding can be used to keep a text field
- * synchronized with a model text/string.
- * 
- * @see WritablePropertyValueModel
- * @see Text
- */
-@SuppressWarnings("nls")
-class TextFieldModelBinding {
-
-	/**
-	 * The text model we keep synchronized with the text field.
-	 */
-	private final WritablePropertyValueModel<String> textModel;
-
-	/**
-	 * A listener that allows us to synchronize the text field's contents with
-	 * the text model.
-	 */
-	private final PropertyChangeListener textModelChangeListener;
-
-	/**
-	 * The text field we keep synchronized with the text model.
-	 */
-	private final Text textField;
-
-	/**
-	 * A listener that allows us to synchronize our text model
-	 * with the text field's contents.
-	 */
-	private final ModifyListener textFieldModifyListener;
-
-	/**
-	 * A listener that allows us to stop listening to stuff when the text field
-	 * is disposed.
-	 */
-	private final DisposeListener textFieldDisposeListener;
-
-	/**
-	 * Hmm...
-	 */
-	private boolean settingTextFieldText = false;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Constructor - the text model and text field are required.
-	 */
-	TextFieldModelBinding(WritablePropertyValueModel<String> textModel, Text textField) {
-		super();
-		if ((textModel == null) || (textField == null)) {
-			throw new NullPointerException();
-		}
-		this.textModel = textModel;
-		this.textField = textField;
-
-		this.textModelChangeListener = this.buildTextModelChangeListener();
-		this.textModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.textModelChangeListener);
-
-		this.textFieldModifyListener = this.buildTextFieldModifyListener();
-		this.textField.addModifyListener(this.textFieldModifyListener);
-
-		this.textFieldDisposeListener = this.buildTextFieldDisposeListener();
-		this.textField.addDisposeListener(this.textFieldDisposeListener);
-
-		this.setTextFieldText(textModel.getValue());
-	}
-
-
-	// ********** initialization **********
-
-	private PropertyChangeListener buildTextModelChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildTextModelChangeListener_());
-	}
-
-	private PropertyChangeListener buildTextModelChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				TextFieldModelBinding.this.textModelChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "text listener";
-			}
-		};
-	}
-
-	private ModifyListener buildTextFieldModifyListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				TextFieldModelBinding.this.textFieldModified();
-			}
-			@Override
-			public String toString() {
-				return "text field modify listener";
-			}
-		};
-	}
-
-	private DisposeListener buildTextFieldDisposeListener() {
-		return new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				TextFieldModelBinding.this.textFieldDisposed();
-			}
-			@Override
-			public String toString() {
-				return "text field dispose listener";
-			}
-		};
-	}
-
-
-	// ********** text model events **********
-
-	/* CU private */ void textModelChanged(PropertyChangeEvent event) {
-		if ( ! this.textField.isDisposed()) {  // ???
-			this.setTextFieldText((String) event.getNewValue());
-		}
-	}
-
-	private void setTextFieldText(String text) {
-		// the text model can be null, but the text field cannot
-		this.setTextFieldText_((text == null) ? "" : text);
-	}
-
-	private void setTextFieldText_(String text) {
-		if ( ! text.equals(this.textField.getText())) {  // ???
-			this.setTextFieldText__(text);
-		}
-	}
-
-	private void setTextFieldText__(String text) {
-		this.settingTextFieldText = true;
-		try {
-			this.textField.setText(text);
-		} finally {
-			this.settingTextFieldText = false;
-		}
-	}
-
-
-	// ********** text field events **********
-
-	/* CU private */ void textFieldModified() {
-		if ( ! this.settingTextFieldText) {
-			this.setTextModelText(this.textField.getText());
-		}
-	}
-
-	private void setTextModelText(String text) {
-		if ( ! text.equals(this.textModel.getValue())) {  // ???
-			this.textModel.setValue(text);
-		}
-	}
-
-	/* CU private */ void textFieldDisposed() {
-		// the text field is not yet "disposed" when we receive this event
-		// so we can still remove our listeners
-		this.textField.removeDisposeListener(this.textFieldDisposeListener);
-		this.textField.removeModifyListener(this.textFieldModifyListener);
-		this.textModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.textModelChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.textModel);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java
deleted file mode 100644
index 3aefe2a..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * This implementation of the <code>AddRemovePane</code> uses a <code>Table</code>
- * as its main widget, a <code>List</code> can't be used because it doesn't
- * support showing images. However, the table is displayed like a list.
- * <p>
- * Here the layot of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------- ----------- |
- * | | Item 1                                                    | | Add...  | |
- * | | ...                                                       | ----------- |
- * | | Item n                                                    | ----------- |
- * | |                                                           | | Edit... | |
- * | |                                                           | ----------- |
- * | |                                                           | ----------- |
- * | |                                                           | | Remove  | |
- * | |                                                           | ----------- |
- * | -------------------------------------------------------------             |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 1.0
- */
-@SuppressWarnings("nls")
-public class AddRemoveListPane<T extends Model> extends AddRemovePane<T>
-{
-
-	/**
-	 * The main widget of this add/remove pane.
-	 */
-	private Table table;
-
-	/**
-	 * Creates a new <code>AddRemoveListPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the table holder's items
-	 */
-	public AddRemoveListPane(Pane<? extends T> parentPane,
-	                         Composite parent,
-	                         Adapter adapter,
-	                         ListValueModel<?> listHolder,
-	                         WritablePropertyValueModel<?> selectedItemHolder,
-	                         ILabelProvider labelProvider) {
-
-		super(parentPane,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveListPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the table holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	public AddRemoveListPane(Pane<? extends T> parentPane,
-	                         Composite parent,
-	                         Adapter adapter,
-	                         ListValueModel<?> listHolder,
-	                         WritablePropertyValueModel<?> selectedItemHolder,
-	                         ILabelProvider labelProvider,
-	                         String helpId) {
-
-		super(parentPane,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider,
-		      helpId);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveListPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the table holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 * @param parentManagePane <code>true</code> to have the parent pane manage
-	 * the enabled state of this pane
-	 */
-	public AddRemoveListPane(Pane<? extends T> parentPane,
-	                         Composite parent,
-	                         Adapter adapter,
-	                         ListValueModel<?> listHolder,
-	                         WritablePropertyValueModel<?> selectedItemHolder,
-	                         ILabelProvider labelProvider,
-	                         String helpId,
-	                         boolean parentManagePane) {
-
-		super(parentPane,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider,
-		      helpId,
-		      parentManagePane);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveListPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the table holder's items
-	 */
-	public AddRemoveListPane(Pane<?> parentPane,
-	                         PropertyValueModel<? extends T> subjectHolder,
-	                         Composite parent,
-	                         Adapter adapter,
-	                         ListValueModel<?> listHolder,
-	                         WritablePropertyValueModel<?> selectedItemHolder,
-	                         ILabelProvider labelProvider) {
-
-		super(parentPane,
-		      subjectHolder,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveListPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the table holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	public AddRemoveListPane(Pane<?> parentPane,
-	                         PropertyValueModel<? extends T> subjectHolder,
-	                         Composite parent,
-	                         Adapter adapter,
-	                         ListValueModel<?> listHolder,
-	                         WritablePropertyValueModel<?> selectedItemHolder,
-	                         ILabelProvider labelProvider,
-	                         String helpId) {
-
-		super(parentPane,
-		      subjectHolder,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider,
-		      helpId);
-	}
-
-	private ColumnAdapter<Object> buildColumnAdapter() {
-		return new ColumnAdapter<Object>() {
-			public WritablePropertyValueModel<?>[] cellModels(Object subject) {
-				WritablePropertyValueModel<?>[] valueHolders = new WritablePropertyValueModel<?>[1];
-				valueHolders[0] = new SimplePropertyValueModel<Object>(subject);
-				return valueHolders;
-			}
-
-			public int columnCount() {
-				return 1;
-			}
-
-			public String columnName(int columnIndex) {
-				return "";
-			}
-		};
-	}
-
-	@Override
-	protected void itemsAdded(ListAddEvent e) {
-		super.itemsAdded(e);
-		revalidateLayout();
-	}
-
-	@Override
-	protected void itemsMoved(ListMoveEvent e) {
-		super.itemsMoved(e);
-		revalidateLayout();
-	}
-
-	@Override
-	protected void itemsRemoved(ListRemoveEvent e) {
-		super.itemsRemoved(e);
-		revalidateLayout();
-	}
-
-	@Override
-	protected void itemsReplaced(ListReplaceEvent e) {
-		super.itemsReplaced(e);
-		revalidateLayout();
-	}
-
-	@Override
-	protected void listChanged(ListChangeEvent e) {
-		super.listChanged(e);
-		revalidateLayout();
-	}
-
-	@Override
-	protected void listCleared(ListClearEvent e) {
-		super.listCleared(e);
-		revalidateLayout();
-	}
-
-	/**
-	 * Revalidates the table layout after the list of items has changed. The
-	 * layout has to be done in a new UI thread because our listener might be
-	 * notified before the table has been updated (table column added or removed).
-	 */
-	private void revalidateLayout() {
-		SWTUtil.asyncExec(new Runnable() { public void run() {
-			if (!table.isDisposed()) {
-				table.getParent().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				table.getParent().layout();
-			}
-		}});
-	}
-
-	private PropertyChangeListener buildSelectedItemPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(
-			buildSelectedItemPropertyChangeListener_()
-		);
-	}
-
-	private PropertyChangeListener buildSelectedItemPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				if (table.isDisposed()) {
-					return;
-				}
-				getSelectionModel().setSelectedValue(e.getNewValue());
-				updateButtons();
-			}
-		};
-	}
-
-	private SelectionChangeListener<Object> buildSelectionListener() {
-		return new SelectionChangeListener<Object>() {
-			public void selectionChanged(SelectionChangeEvent<Object> e) {
-				AddRemoveListPane.this.selectionChanged();
-			}
-		};
-	}
-
-	private Composite addTableContainer(Composite container) {
-
-		container = addPane(container, buildTableContainerLayout());
-		container.setLayoutData(new GridData(GridData.FILL_BOTH));
-		return container;
-	}
-
-	private Layout buildTableContainerLayout() {
-		return new Layout() {
-			@Override
-			protected Point computeSize(Composite composite,
-			                            int widthHint,
-			                            int heightHint,
-			                            boolean flushCache) {
-
-				Table table = (Table) composite.getChildren()[0];
-				TableColumn tableColumn = table.getColumn(0);
-				int columnWidth = tableColumn.getWidth();
-				packColumn(table);
-
-				// Calculate the table size and adjust it with the hints
-				Point size = table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-				if (widthHint != SWT.DEFAULT) {
-					size.x = widthHint;
-				}
-
-				if (heightHint != SWT.DEFAULT) {
-					size.y = heightHint;
-				}
-
-				// Revert the column's width to its current value
-				table.setRedraw(false);
-				table.setLayoutDeferred(true);
-				tableColumn.setWidth(columnWidth);
-				table.setLayoutDeferred(false);
-				table.setRedraw(true);
-
-				return size;
-			}
-
-			private boolean isVerticalScrollbarBarVisible(Table table,
-			                                              Rectangle clientArea) {
-
-				// Get the height of all the rows
-				int height = table.getItemCount() * table.getItemHeight();
-
-				// Remove the border from the height
-				height += (table.getBorderWidth() * 2);
-
-				return (clientArea.height < height);
-			}
-
-			@Override
-			protected void layout(Composite composite, boolean flushCache) {
-
-				Rectangle bounds = composite.getClientArea();
-
-				if (bounds.width > 0) {
-
-					Table table = (Table) composite.getChildren()[0];
-					table.setBounds(0, 0, bounds.width, bounds.height);
-
-					updateTableColumnWidth(
-						table,
-						bounds.width,
-						isVerticalScrollbarBarVisible(table, bounds)
-					);
-				}
-			}
-
-			private void packColumn(Table table) {
-
-				TableColumn tableColumn = table.getColumn(0);
-
-				table.setRedraw(false);
-				table.setLayoutDeferred(true);
-				tableColumn.pack();
-				table.setLayoutDeferred(false);
-				table.setRedraw(true);
-
-				// Cache the column width so it can be used in
-				// updateTableColumnWidth() when determine which width to use
-				table.setData(
-					"column.width",
-					Integer.valueOf(tableColumn.getWidth())
-				);
-			}
-
-			private void updateTableColumnWidth(Table table,
-			                                    int width,
-			                                    boolean verticalScrollbarBarVisible) {
-
-				// Remove the border from the width
-				width -= (table.getBorderWidth() * 2);
-
-				// Remove the scrollbar from the width if it is shown
-				if (verticalScrollbarBarVisible) {
-					width -= table.getVerticalBar().getSize().x;
-				}
-
-				TableColumn tableColumn = table.getColumn(0);
-
-				// Retrieve the cached column width, which is required for
-				// determining which width to use (the column width or the
-				// calculated width)
-				Integer columnWitdh = (Integer) table.getData("column.width");
-
-				// Use the calculated width if the column is smaller, otherwise
-				// use the column width and a horizontal scroll bar will show up
-				width = Math.max(width, columnWitdh);
-
-				// Adjust the column width
-				tableColumn.setWidth(width);
-			}
-		};
-	}
-
-	private ITableLabelProvider buildTableLabelProvider(IBaseLabelProvider labelProvider) {
-		return new TableLabelProvider((ILabelProvider) labelProvider);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public Table getMainControl() {
-		return table;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	@SuppressWarnings("unchecked")
-	protected void initializeMainComposite(Composite container,
-	                                       Adapter adapter,
-	                                       ListValueModel<?> listHolder,
-	                                       WritablePropertyValueModel<?> selectedItemHolder,
-	                                       IBaseLabelProvider labelProvider,
-	                                       String helpId) {
-
-		table = addUnmanagedTable(
-			addTableContainer(container),
-			SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI,
-			helpId
-		);
-
-
-		TableModelAdapter model = TableModelAdapter.adapt(
-			(ListValueModel<Object>) listHolder,
-			getSelectedItemHolder(),
-			table,
-			buildColumnAdapter(),
-			buildTableLabelProvider(labelProvider)
-		);
-
-		model.addSelectionChangeListener(buildSelectionListener());
-
-		selectedItemHolder.addPropertyChangeListener(
-			PropertyValueModel.VALUE,
-			buildSelectedItemPropertyChangeListener()
-		);
-
-		initializeTable(table);
-	}
-
-	/**
-	 * Initializes the given table, which acts like a list in our case.
-	 *
-	 * @param table The main widget of this pane
-	 */
-	protected void initializeTable(Table table) {
-
-		table.setData("column.width", new Integer(0));
-		table.setHeaderVisible(false);
-		table.setLinesVisible(false);
-	}
-
-	/**
-	 * The selection has changed, update (1) the selected item holder, (2) the
-	 * selection model and (3) the buttons.
-	 */
-	private void selectionChanged() {
-		WritablePropertyValueModel<Object> selectedItemHolder = getSelectedItemHolder();
-		ObjectListSelectionModel selectionModel = getSelectionModel();
-		int selectionCount = this.table.getSelectionCount();
-
-		if (selectionCount == 0) {
-			selectedItemHolder.setValue(null);
-			selectionModel.clearSelection();
-		}
-		else if (selectionCount != 1) {
-			selectedItemHolder.setValue(null);
-			selectionModel.clearSelection();
-
-			for (int index : this.table.getSelectionIndices()) {
-				selectionModel.addSelectionInterval(index, index);
-			}
-		}
-		else {
-			int selectedIndex = this.table.getSelectionIndex();
-			Object selectedItem = getListHolder().get(selectedIndex);
-
-			selectedItemHolder.setValue(selectedItem);
-			selectionModel.setSelectedValue(selectedItem);
-		}
-
-		updateButtons();
-	}
-
-	/**
-	 * This label provider simply delegates the rendering to the provided
-	 * <code>ILabelProvider</code>.
-	 */
-	private class TableLabelProvider extends LabelProvider
-	                                 implements ITableLabelProvider {
-
-		private ILabelProvider labelProvider;
-
-		TableLabelProvider(ILabelProvider labelProvider) {
-			super();
-			this.labelProvider = labelProvider;
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return labelProvider.getImage(element);
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return labelProvider.getText(element);
-		}
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java
deleted file mode 100644
index 79d6175..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java
+++ /dev/null
@@ -1,923 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The abstract definition of a pane that has buttons for adding, removing and
- * possibly editing the items.
- *
- * @see AddRemoveListPane
- *
- * @version 1.0
- * @since 2.0
- */
-public abstract class AddRemovePane<T extends Model> extends Pane<T>
-{
-	private Adapter adapter;
-	private Button addButton;
-	private Composite container;
-	private boolean enabled;
-	private IBaseLabelProvider labelProvider;
-	private ListValueModel<?> listHolder;
-	private Button optionalButton;
-	private Button removeButton;
-	private WritablePropertyValueModel<Object> selectedItemHolder;
-	private ObjectListSelectionModel selectionModel;
-
-	/**
-	 * Creates a new <code>AddRemovePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 */
-	protected AddRemovePane(Pane<? extends T> parentPane,
-	                        Composite parent,
-	                        Adapter adapter,
-	                        ListValueModel<?> listHolder,
-	                        WritablePropertyValueModel<?> selectedItemHolder,
-	                        IBaseLabelProvider labelProvider) {
-
-		this(parentPane,
-		     parent,
-		     adapter,
-		     listHolder,
-		     selectedItemHolder,
-		     labelProvider,
-		     null);
-	}
-
-	/**
-	 * Creates a new <code>AddRemovePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	protected AddRemovePane(Pane<? extends T> parentPane,
-	                        Composite parent,
-	                        Adapter adapter,
-	                        ListValueModel<?> listHolder,
-	                        WritablePropertyValueModel<?> selectedItemHolder,
-	                        IBaseLabelProvider labelProvider,
-	                        String helpId) {
-
-		this(parentPane,
-		     parent,
-		     adapter,
-		     listHolder,
-		     selectedItemHolder,
-		     labelProvider,
-		     helpId,
-		     true);
-	}
-	/**
-	 * Creates a new <code>AddRemovePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 * @param parentManagePane <code>true</code> to have the parent pane manage
-	 * the enabled state of this pane
-	 */
-	protected AddRemovePane(Pane<? extends T> parentPane,
-	                        Composite parent,
-	                        Adapter adapter,
-	                        ListValueModel<?> listHolder,
-	                        WritablePropertyValueModel<?> selectedItemHolder,
-	                        IBaseLabelProvider labelProvider,
-	                        String helpId, 
-	                        boolean parentManagePane) {
-
-		super(parentPane, parent, true, parentManagePane);
-
-		initialize(
-			adapter,
-			listHolder,
-			selectedItemHolder,
-			labelProvider
-		);
-
-		initializeLayout(
-			adapter,
-			listHolder,
-			selectedItemHolder,
-			labelProvider,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new <code>AddRemovePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 */
-	protected AddRemovePane(Pane<?> parentPane,
-	                        PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent,
-	                        Adapter adapter,
-	                        ListValueModel<?> listHolder,
-	                        WritablePropertyValueModel<?> selectedItemHolder,
-	                        IBaseLabelProvider labelProvider) {
-
-		this(parentPane,
-		     subjectHolder,
-		     parent,
-		     adapter,
-		     listHolder,
-		     selectedItemHolder,
-		     labelProvider,
-		     null);
-	}
-
-	/**
-	 * Creates a new <code>AddRemovePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	protected AddRemovePane(Pane<?> parentPane,
-	                        PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent,
-	                        Adapter adapter,
-	                        ListValueModel<?> listHolder,
-	                        WritablePropertyValueModel<?> selectedItemHolder,
-	                        IBaseLabelProvider labelProvider,
-	                        String helpId) {
-
-		super(parentPane, subjectHolder, parent);
-
-		initialize(
-			adapter,
-			listHolder,
-			selectedItemHolder,
-			labelProvider
-		);
-
-		initializeLayout(
-			adapter,
-			listHolder,
-			selectedItemHolder,
-			labelProvider,
-			helpId
-		);
-	}
-
-	/**
-	 * Gives the possibility to add buttons after the Add button and before the
-	 * optional button.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered with the buttons
-	 *
-	 * @category Layout
-	 */
-	protected void addCustomButtonAfterAddButton(Composite container,
-	                                             String helpId) {
-	}
-
-	/**
-	 * Gives the possibility to add buttons after the optional button and before
-	 * the Remove button.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered with the buttons
-	 *
-	 * @category Layout
-	 */
-	protected void addCustomButtonAfterOptionalButton(Composite container,
-	                                                  String helpId) {
-	}
-
-	/**
-	 * @category Add
-	 */
-	protected void addItem() {
-		adapter.addNewItem(selectionModel);
-	}
-
-	/**
-	 * @category Initialize
-	 */
-	protected Adapter buildAdapter() {
-		return adapter;
-	}
-
-	/**
-	 * @category Add
-	 */
-	protected Button addAddButton(Composite parent) {
-		return addUnmanagedButton(
-			parent,
-			adapter.addButtonText(),
-			buildAddItemAction()
-		);
-	}
-
-	/**
-	 * @category Add
-	 */
-	private Runnable buildAddItemAction() {
-		return new Runnable() {
-			public void run() {
-				AddRemovePane.this.addItem();
-			}
-		};
-	}
-
-	private ListChangeListener buildListChangeListener() {
-		return new SWTListChangeListenerWrapper(buildListChangeListener_());
-	}
-
-	private ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-
-			public void itemsAdded(ListAddEvent e) {
-				AddRemovePane.this.itemsAdded(e);
-			}
-
-			public void itemsMoved(ListMoveEvent e) {
-				AddRemovePane.this.itemsMoved(e);
-			}
-
-			public void itemsRemoved(ListRemoveEvent e) {
-				AddRemovePane.this.itemsRemoved(e);
-			}
-
-			public void itemsReplaced(ListReplaceEvent e) {
-				AddRemovePane.this.itemsReplaced(e);
-			}
-
-			public void listChanged(ListChangeEvent e) {
-				AddRemovePane.this.listChanged(e);
-			}
-
-			public void listCleared(ListClearEvent e) {
-				AddRemovePane.this.listCleared(e);
-			}
-		};
-	}
-
-	protected void itemsAdded(ListAddEvent e) {
-		
-	}
-	
-	protected void itemsMoved(ListMoveEvent e) {
-		
-	}
-	
-	protected void itemsRemoved(ListRemoveEvent e) {
-		Object selectedItem = this.selectedItemHolder.getValue();
-
-		if (selectedItem == null) {
-			updateButtons();
-			return;
-		}
-
-		if (CollectionTools.contains(e.getItems(), selectedItem)) {
-			this.selectedItemHolder.setValue(null);
-			updateButtons();
-		}		
-	}
-	
-	protected void itemsReplaced(ListReplaceEvent e) {
-		
-	}
-	
-	protected void listChanged(ListChangeEvent e) {
-		
-	}
-	
-	protected void listCleared(ListClearEvent e) {
-		this.selectedItemHolder.setValue(null);
-		updateButtons();
-	}
-	
-	
-	/**
-	 * @category Option
-	 */
-	private Runnable buildOptionalAction() {
-		return new Runnable() {
-			public void run() {
-				AddRemovePane.this.editItem();
-			}
-		};
-	}
-
-	/**
-	 * @category Option
-	 */
-	protected Button addOptionalButton(Composite container) {
-		return addUnmanagedButton(
-			container,
-			adapter.optionalButtonText(),
-			buildOptionalAction()
-		);
-	}
-
-	/**
-	 * @category Add
-	 */
-	protected Button addRemoveButton(Composite parent) {
-		return addUnmanagedButton(
-			parent,
-			adapter.removeButtonText(),
-			buildRemoveItemsAction()
-		);
-	}
-
-	/**
-	 * @category Remove
-	 */
-	private Runnable buildRemoveItemsAction() {
-		return new Runnable() {
-			public void run() {
-				AddRemovePane.this.removeItems();
-			}
-		};
-	}
-
-	protected ObjectListSelectionModel buildRowSelectionModel(ListValueModel<?> listModel) {
-		return new ObjectListSelectionModel(new ListModelAdapter(listModel));
-	}
-
-	/**
-	 * @category Option
-	 */
-	protected void editItem() {
-		this.adapter.optionOnSelection(getSelectionModel());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public void enableWidgets(boolean enabled) {
-
-		super.enableWidgets(enabled);
-		this.enabled = enabled;
-
-		if (!this.getMainControl().isDisposed()) {
-			this.getMainControl().setEnabled(enabled);
-		}
-
-		this.updateButtons();
-	}
-
-	protected final Composite getContainer() {
-		return container;
-	}
-
-	protected IBaseLabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	protected final ListValueModel<?> getListHolder() {
-		return listHolder;
-	}
-
-	/**
-	 * Returns
-	 *
-	 * @return
-	 */
-	public abstract Composite getMainControl();
-
-	protected final WritablePropertyValueModel<Object> getSelectedItemHolder() {
-		return selectedItemHolder;
-	}
-
-	public final ObjectListSelectionModel getSelectionModel() {
-		return selectionModel;
-	}
-
-	/**
-	 * Initializes this add/remove pane.
-	 *
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 *
-	 * @category Initialization
-	 */
-	@SuppressWarnings("unchecked")
-	protected void initialize(Adapter adapter,
-	                          ListValueModel<?> listHolder,
-	                          WritablePropertyValueModel<?> selectedItemHolder,
-	                          IBaseLabelProvider labelProvider)
-	{
-		this.listHolder         = listHolder;
-		this.labelProvider      = labelProvider;
-		this.adapter            = (adapter == null) ? buildAdapter() : adapter;
-		this.selectedItemHolder = (WritablePropertyValueModel<Object>) selectedItemHolder;
-		this.selectionModel     = new ObjectListSelectionModel(new ListModelAdapter(listHolder));
-
-		this.listHolder.addListChangeListener(
-			ListValueModel.LIST_VALUES,
-			buildListChangeListener()
-		);
-	}
-
-	/**
-	 * Initializes the pane containing the buttons (Add, optional (if required)
-	 * and Remove).
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered with the buttons
-	 *
-	 * @category Layout
-	 */
-	protected void initializeButtonPane(Composite container, String helpId) {
-
-		container = addSubPane(container);
-
-		GridData gridData = new GridData();
-		gridData.grabExcessVerticalSpace = true;
-		gridData.verticalAlignment       = SWT.TOP;
-		container.setLayoutData(gridData);
-
-		// Add button
-		this.addButton = addAddButton(container);
-		addAlignRight(this.addButton);
-
-		// Custom button
-		addCustomButtonAfterAddButton(container, helpId);
-
-		// Optional button
-		if (this.adapter.hasOptionalButton()) {
-			this.optionalButton = addOptionalButton(container);
-			addAlignRight(this.optionalButton);
-		}
-
-		// Custom button
-		addCustomButtonAfterOptionalButton(container, helpId);
-
-		// Remove button
-		removeButton = addRemoveButton(container);
-		addAlignRight(removeButton);
-
-		// Update the help topic ID
-		if (helpId != null) {
-			getHelpSystem().setHelp(addButton, helpId);
-			getHelpSystem().setHelp(removeButton, helpId);
-
-			if (optionalButton != null) {
-				getHelpSystem().setHelp(optionalButton, helpId);
-			}
-		}
-	}
-
-	/**
-	 * Initializes this add/remove pane by creating the widgets. The subclass is
-	 * required to build the main widget.
-	 *
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 *
-	 * @category Layout
-	 */
-	protected void initializeLayout(Adapter adapter,
-    	                             ListValueModel<?> listHolder,
-   	                             WritablePropertyValueModel<?> selectedItemHolder,
-   	                             IBaseLabelProvider labelProvider,
-   	                             String helpId) {
-
-		initializeMainComposite(
-			container,
-			adapter,
-			listHolder,
-			selectedItemHolder,
-			labelProvider,
-			helpId);
-
-		initializeButtonPane(container, helpId);
-		enableWidgets(getSubject() != null);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.container = addSubPane(container, 2, 0, 0, 0, 0);
-	}
-
-	/**
-	 * Initializes the main widget of this add/remove pane.
-	 *
-	 * @param container The parent container
-	 * @param adapter This <code>Adapter</code> is used to dictacte the behavior
-	 * of this <code>AddRemovePane</code> and by delegating to it some of the
-	 * behavior
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane or
-	 * <code>null</code> if it was not specified
-	 *
-	 * @category Layout
-	 */
-	protected abstract void initializeMainComposite(Composite container,
-	                                                Adapter adapter,
-	                   	                           ListValueModel<?> listHolder,
-	                  	                           WritablePropertyValueModel<?> selectedItemHolder,
-	                  	                           IBaseLabelProvider labelProvider,
-	                  	                           String helpId);
-
-	/**
-	 * @category Remove
-	 */
-	protected void removeItems() {
-
-		// Keep track of the selected indices so we can select an item
-		// before the lowest index
-		int[] indices = selectionModel.selectedIndices();
-		Arrays.sort(indices);
-
-		// Notify the adapter to remove the selected items
-		adapter.removeSelectedItems(selectionModel);
-
-		// Select a new item
-		if (getListHolder().size() > 0) {
-			int index = Math.min(indices[0], getListHolder().size() - 1);
-			Object item = getListHolder().get(index);
-			selectedItemHolder.setValue(item);
-		}
-		// The list is empty, clear the value
-		else {
-			selectedItemHolder.setValue(null);
-		}
-	}
-
-	/**
-	 * Selects the given value, which can be <code>null</code>.
-	 *
-	 * @param value The new selected value
-	 */
-	public void setSelectedItem(Object value) {
-		selectedItemHolder.setValue(value);
-	}
-
-	/**
-	 * @category UpdateButtons
-	 */
-	protected void updateAddButton(Button addButton) {
-		addButton.setEnabled(enabled);
-	}
-
-	/**
-	 * @category UpdateButtons
-	 */
-	protected void updateButtons() {
-		if (!container.isDisposed()) {
-			updateAddButton(addButton);
-			updateRemoveButton(removeButton);
-			updateOptionalButton(optionalButton);
-		}
-	}
-
-	/**
-	 * @category UpdateButtons
-	 */
-	protected void updateOptionalButton(Button optionalButton) {
-		if (optionalButton != null) {
-			optionalButton.setEnabled(
-				enabled &&
-				adapter.enableOptionOnSelectionChange(selectionModel)
-			);
-		}
-	}
-
-	/**
-	 * @category UpdateButtons
-	 */
-	protected void updateRemoveButton(Button removeButton) {
-		removeButton.setEnabled(
-			enabled &&
-			adapter.enableRemoveOnSelectionChange(selectionModel)
-		);
-	}
-
-	/**
-	 * An abstract implementation of <code>Adapter</code>.
-	 */
-	public static abstract class AbstractAdapter implements Adapter {
-
-		/**
-		 * The text of the add button.
-		 */
-		private String addButtonText;
-
-		/**
-		 * Determines whether the optional button should be shown or not.
-		 */
-		private boolean hasOptionalButton;
-
-		/**
-		 * The text of the optional button, if used.
-		 */
-		private String optionalButtonText;
-
-		/**
-		 * The text of the remove button.
-		 */
-		private String removeButtonText;
-
-		/**
-		 * Creates a new <code>AbstractAdapter</code> with default text for the
-		 * add and remove buttons.
-		 */
-		public AbstractAdapter() {
-			this(JptCommonUiMessages.AddRemovePane_AddButtonText,
-				JptCommonUiMessages.AddRemovePane_RemoveButtonText);
-		}
-
-		/**
-		 * Creates a new <code>AbstractAdapter</code> with default text for the
-		 * add and remove buttons.
-		 *
-		 * @param hasOptionalButton <code>true</code> to show an optional button
-		 * and to use the behavior related to the optional button;
-		 * <code>false</code> to not use it
-		 */
-		public AbstractAdapter(boolean hasOptionalButton) {
-			this();
-			this.setHasOptionalButton(hasOptionalButton);
-		}
-
-		/**
-		 * Creates a new <code>AbstractAdapter</code> with default text for the
-		 * add and remove buttons.
-		 *
-		 * @param optionalButtonText The text of the optional button, which means
-		 * the optional button will be shown
-		 */
-		public AbstractAdapter(String optionalButtonText) {
-			this(true);
-			this.setOptionalButtonText(optionalButtonText);
-		}
-
-		/**
-		 * Creates a new <code>AbstractAdapter</code>.
-		 *
-		 * @param addButtonText The add button's text
-		 * @param removeButtonText The remove button's text
-		 */
-		public AbstractAdapter(String addButtonText,
-		                       String removeButtonText) {
-
-			super();
-			this.addButtonText    = addButtonText;
-			this.removeButtonText = removeButtonText;
-		}
-
-		/**
-		 * Creates a new <code>AbstractAdapter</code>.
-		 *
-		 * @param addButtonText The add button's text
-		 * @param removeButtonText The remove button's text
-		 * @param optionalButtonText The text of the optional button, which means
-		 * the optional button will be shown
-		 */
-		public AbstractAdapter(String addButtonText,
-		                       String removeButtonText,
-		                       String optionalButtonText) {
-
-			this(optionalButtonText);
-			this.setAddButtonText(addButtonText);
-			this.setRemoveButtonText(removeButtonText);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public String addButtonText() {
-			return addButtonText;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public boolean enableOptionOnSelectionChange(ObjectListSelectionModel listSelectionModel) {
-			return listSelectionModel.selectedValuesSize() == 1;
-		}
-
-		public boolean enableRemoveOnSelectionChange(ObjectListSelectionModel listSelectionModel) {
-			return listSelectionModel.selectedValue() != null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public boolean hasOptionalButton() {
-			return hasOptionalButton;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public String optionalButtonText() {
-			return optionalButtonText;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public void optionOnSelection(ObjectListSelectionModel listSelectionModel) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		public String removeButtonText() {
-			return removeButtonText;
-		}
-
-		/**
-		 * Changes the text of the add button. This method has to be called before
-		 * the <code>AddRemoveListPane</code> is initialized.
-		 *
-		 * @param addButtonText The add button's text
-		 */
-		public void setAddButtonText(String addButtonText) {
-			this.addButtonText = addButtonText;
-		}
-
-		/**
-		 * Changes the state of the optional button, meaning if it should be shown
-		 * between the add and remove buttons or not.
-		 *
-		 * @param hasOptionalButton <code>true</code> to show an optional button
-		 * and to use the behavior related to the optional button;
-		 * <code>false</code> to not use it
-		 */
-		public void setHasOptionalButton(boolean hasOptionalButton) {
-			this.hasOptionalButton = hasOptionalButton;
-		}
-
-		/**
-		 * Changes the text of the optional button. This method has to be called
-		 * before the <code>AddRemoveListPane</code> is initialized. This does not
-		 * make the optional button visible.
-		 *
-		 * @param optionalButtonText The optional button's text
-		 */
-		public void setOptionalButtonText(String optionalButtonText) {
-			this.optionalButtonText = optionalButtonText;
-		}
-
-		/**
-		 * Changes the text of the remove button. This method has to be called
-		 * before the <code>AddRemoveListPane</code> is initialized.
-		 *
-		 * @param removeButtonText The remove button's text
-		 */
-		public void setRemoveButtonText(String removeButtonText) {
-			this.removeButtonText = removeButtonText;
-		}
-	}
-
-	/**
-	 * This adapter is used to perform the actual action when adding a new item
-	 * or removing the selected items. It is possible to add an optional button.
-	 */
-	public static interface Adapter {
-
-		/**
-		 * The add button's text.
-		 *
-		 * @return The text shown on the add button
-		 */
-		String addButtonText();
-
-		/**
-		 * Invoked when the user selects the Add button.
-		 */
-		void addNewItem(ObjectListSelectionModel listSelectionModel);
-
-		/**
-		 * Invoked when selection changes. Implementation dictates whether button
-		 * should be enabled.
-		 */
-		boolean enableOptionOnSelectionChange(ObjectListSelectionModel listSelectionModel);
-
-		/**
-		 * Invoked when selection changes. Implementation dictates whether remove button
-		 * should be enabled.
-		 */
-		boolean enableRemoveOnSelectionChange(ObjectListSelectionModel listSelectionModel);
-
-		/**
-		 * Determines whether an optional button should be added between the add
-		 * and remove buttons.
-		 *
-		 * @return <code>true</code> to show an optional button and to use the
-		 * behavior related to the optional button; <code>false</code> to not use
-		 * it
-		 */
-		boolean hasOptionalButton();
-
-		/**
-		 * Resource string key for the optional button.
-		 */
-		String optionalButtonText();
-
-		/**
-		 * Invoked when the user selects the optional button
-		 */
-		void optionOnSelection(ObjectListSelectionModel listSelectionModel);
-
-		/**
-		 * The remove button's text.
-		 *
-		 * @return The text shown on the remove button
-		 */
-		String removeButtonText();
-
-		/**
-		 * Invoked when the user selects the Remove button.
-		 */
-		void removeSelectedItems(ObjectListSelectionModel listSelectionModel);
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java
deleted file mode 100644
index 05a7eda..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * This implementation of the <code>AddRemovePane</code> uses a <code>Table</code>
- * as its main widget.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------- ----------- |
- * | | Column 1 | Column 2 | ...   | Column i | ...   | Colunm n | | Add...  | |
- * | |-----------------------------------------------------------| ----------- |
- * | |          |          |       |          |       |          | ----------- |
- * | |-----------------------------------------------------------| | Edit... | |
- * | |          |          |       |          |       |          | ----------- |
- * | |-----------------------------------------------------------| ----------- |
- * | |          |          |       |          |       |          | | Remove  | |
- * | |-----------------------------------------------------------| ----------- |
- * | -------------------------------------------------------------             |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 1.0
- */
-public abstract class AddRemoveTablePane<T extends Model> extends AddRemovePane<T>
-{
-	/**
-	 * Flag used to prevent circular
-	 */
-	private boolean locked;
-
-	/**
-	 * The main widget of this add/remove pane.
-	 */
-	private Table table;
-
-	/**
-	 * Creates a new <code>AddRemoveTablePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 */
-	public AddRemoveTablePane(Pane<? extends T> parentPane,
-	                          Composite parent,
-	                          Adapter adapter,
-	                          ListValueModel<?> listHolder,
-	                          WritablePropertyValueModel<?> selectedItemHolder,
-	                          ITableLabelProvider labelProvider) {
-
-		super(parentPane,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider);
-
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveTablePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param adapter
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	public AddRemoveTablePane(Pane<? extends T> parentPane,
-	                          Composite parent,
-	                          Adapter adapter,
-	                          ListValueModel<?> listHolder,
-	                          WritablePropertyValueModel<?> selectedItemHolder,
-	                          ITableLabelProvider labelProvider,
-	                          String helpId) {
-
-		super(parentPane,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider,
-		      helpId);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveTablePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 */
-	public AddRemoveTablePane(Pane<?> parentPane,
-	                          PropertyValueModel<? extends T> subjectHolder,
-	                          Composite parent,
-	                          Adapter adapter,
-	                          ListValueModel<?> listHolder,
-	                          WritablePropertyValueModel<?> selectedItemHolder,
-	                          ITableLabelProvider labelProvider) {
-
-		super(parentPane,
-		      subjectHolder,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider);
-	}
-
-	/**
-	 * Creates a new <code>AddRemoveTablePane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of the subject
-	 * @param adapter
-	 * @param parent The parent container
-	 * @param listHolder The <code>ListValueModel</code> containing the items
-	 * @param selectedItemHolder The holder of the selected item, if more than
-	 * one item or no items are selected, then <code>null</code> will be passed
-	 * @param labelProvider The renderer used to format the list holder's items
-	 * @param helpId The topic help ID to be registered with this pane
-	 */
-	public AddRemoveTablePane(Pane<?> parentPane,
-	                          PropertyValueModel<? extends T> subjectHolder,
-	                          Composite parent,
-	                          Adapter adapter,
-	                          ListValueModel<?> listHolder,
-	                          WritablePropertyValueModel<?> selectedItemHolder,
-	                          ITableLabelProvider labelProvider,
-	                          String helpId) {
-
-		super(parentPane,
-		      subjectHolder,
-		      parent,
-		      adapter,
-		      listHolder,
-		      selectedItemHolder,
-		      labelProvider,
-		      helpId);
-	}
-
-	protected abstract ColumnAdapter<?> buildColumnAdapter();
-
-	private WritablePropertyValueModel<Object> buildSelectedItemHolder() {
-		return new SimplePropertyValueModel<Object>();
-	}
-
-	private PropertyChangeListener buildSelectedItemPropertyChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(
-			buildSelectedItemPropertyChangeListener_()
-		);
-	}
-
-	private PropertyChangeListener buildSelectedItemPropertyChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				if (table.isDisposed()) {
-					return;
-				}
-
-				if (!locked) {
-					locked = true;
-
-					try {
-						Object value = e.getNewValue();
-						getSelectionModel().setSelectedValue(e.getNewValue());
-						int index = -1;
-
-						if (value != null) {
-							index = CollectionTools.indexOf(getListHolder().iterator(), value);
-						}
-
-						table.select(index);
-						updateButtons();
-					}
-					finally {
-						locked = false;
-					}
-				}
-			}
-		};
-	}
-
-	private SelectionChangeListener<Object> buildSelectionListener() {
-		return new SelectionChangeListener<Object>() {
-			public void selectionChanged(SelectionChangeEvent<Object> e) {
-				AddRemoveTablePane.this.selectionChanged();
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public Table getMainControl() {
-		return table;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	@SuppressWarnings("unchecked")
-	protected void initializeMainComposite(Composite container,
-	                                       Adapter adapter,
-	                                       ListValueModel<?> listHolder,
-	                                       WritablePropertyValueModel<?> selectedItemHolder,
-	                                       IBaseLabelProvider labelProvider,
-	                                       String helpId)
-	{
-		table = addUnmanagedTable(container, helpId);
-		table.setHeaderVisible(true);
-
-		TableModelAdapter<Object> tableModel = TableModelAdapter.adapt(
-			(ListValueModel<Object>) listHolder,
-			buildSelectedItemHolder(),
-			table,
-			(ColumnAdapter<Object>) buildColumnAdapter(),
-			(ITableLabelProvider) labelProvider
-		);
-
-		tableModel.addSelectionChangeListener(buildSelectionListener());
-
-		selectedItemHolder.addPropertyChangeListener(
-			PropertyValueModel.VALUE,
-			buildSelectedItemPropertyChangeListener()
-		);
-	}
-
-	/**
-	 * The selection has changed, update (1) the selected item holder, (2) the
-	 * selection model and (3) the buttons.
-	 */
-	private void selectionChanged() {
-
-		if (locked) {
-			return;
-		}
-
-		locked = true;
-
-		try {
-			WritablePropertyValueModel<Object> selectedItemHolder = getSelectedItemHolder();
-			ObjectListSelectionModel selectionModel = getSelectionModel();
-			int selectionCount = table.getSelectionCount();
-
-			if (selectionCount == 0) {
-				selectedItemHolder.setValue(null);
-				selectionModel.clearSelection();
-			}
-			else if (selectionCount != 1) {
-				selectedItemHolder.setValue(null);
-				selectionModel.clearSelection();
-
-				for (int index : table.getSelectionIndices()) {
-					selectionModel.addSelectionInterval(index, index);
-				}
-			}
-			else {
-				int selectedIndex = table.getSelectionIndex();
-				Object selectedItem = getListHolder().get(selectedIndex);
-
-				selectedItemHolder.setValue(selectedItem);
-				selectionModel.setSelectedValue(selectedItem);
-			}
-
-			updateButtons();
-		}
-		finally {
-			locked = false;
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java
deleted file mode 100644
index a652562..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A chooser is simply a pane with three widgets, the label on the left, a main
- * widget, usually a text field, and a right widget which is usually a browse
- * button.
- *
- * @see ClassChooserPane
- * @see PackageChooserPane
- *
- * @version 3.0
- * @since 2.0
- */
-public abstract class ChooserPane<T extends Model> extends Pane<T>
-{
-	/**
-	 * The control shown after the label (left control).
-	 */
-	private Control mainControl;
-
-	/**
-	 * The control shown after the main control.
-	 */
-	private Control rightControl;
-
-	/**
-	 * Creates a new <code>ChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public ChooserPane(Pane<? extends T> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>ChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public ChooserPane(Pane<?> parentPane,
-	                           PropertyValueModel<? extends T> subjectHolder,
-	                           Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.mainControl  = addMainControl(container);
-		this.rightControl = addRightControl(container);
-
-		addLabeledComposite(
-			container,
-			addLeftControl(container),
-			this.mainControl,
-			this.rightControl,
-			getHelpId()
-		);
-	}
-
-	/**
-	 * Creates the left control. By default a label is created and its text is
-	 * retrieved by {@link #getLabelText()}.
-	 *
-	 * @param container The parent container
-	 * @return The newly created left control
-	 */
-	protected Control addLeftControl(Composite container) {
-		return addLabel(container, getLabelText());
-	}
-
-	/**
-	 * The text of the label. This method is called by
-	 * {@link #buildLeftControl(Composite)}.
-	 *
-	 * @return The localized text of the left control (which is a label by
-	 * default)
-	 */
-	protected abstract String getLabelText();
-
-	/**
-	 * Creates the main control of this pane.
-	 *
-	 * @param container The parent container
-	 * @return The newly created main control
-	 */
-	protected abstract Control addMainControl(Composite container);
-
-	/**
-	 * Creates the right control. By default a browse button is created and its
-	 * action is performed by {@link #buildBrowseAction()} and its text is
-	 * retrieved by {@link #getBrowseButtonText()}.
-	 *
-	 * @param container The parent container
-	 * @return The newly created right control
-	 */
-	protected Control addRightControl(Composite container) {
-		return addButton(
-			container,
-			getBrowseButtonText(),
-			buildBrowseAction()
-		);
-	}
-
-	/**
-	 * Returns the text of the browse button. This method is called by
-	 * {@link #buildRightControl(Composite)}.
-	 *
-	 * @return "Browse..."
-	 */
-	protected String getBrowseButtonText() {
-		return JptCommonUiMessages.ChooserPane_browseButton;
-	}
-
-	/**
-	 * Creates the action responsible to perform the action when the Browse is
-	 * clicked.
-	 *
-	 * @return A new <code>Runnable</code> performing the actual action of the
-	 * button
-	 */
-	protected abstract Runnable buildBrowseAction();
-
-	/**
-	 * Returns the help topic ID for the controls of this pane.
-	 *
-	 * @return <code>null</code> is returned otherwise the subclass can return an ID
-	 */
-	protected String getHelpId() {
-		return null;
-	}
-
-	@Override
-	public void enableWidgets(boolean enabled) {
-
-		super.enableWidgets(enabled);
-
-		if (!this.mainControl.isDisposed()) {
-			this.mainControl.setEnabled(enabled);
-		}
-
-		if (!this.rightControl.isDisposed()) {
-			this.rightControl.setEnabled(enabled);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java
deleted file mode 100644
index f50eb3b..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This chooser allows the user to choose a type when browsing and it adds code
- * completion support to the text field, which is the main component.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                             X  | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 2.0
- */
-public abstract class ClassChooserComboPane<T extends Model> extends ClassChooserPane<T>
-{
-
-	/**
-	 * Creates a new <code>ClassChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public ClassChooserComboPane(Pane<? extends T> parentPane,
-	                        Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>ClassChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public ClassChooserComboPane(Pane<?> parentPane,
-	                        PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		Composite subPane = addSubPane(container);
-    	Combo combo = this.addClassCombo(subPane);
-
-		ControlContentAssistHelper.createComboContentAssistant(
-			combo,
-			javaTypeCompletionProcessor
-		);
-
-		return subPane;
-	}
-	
-	protected Combo addClassCombo(Composite container) {
-		return this.addEditableCombo(
-			container,
-			this.buildClassListHolder(),
-			this.buildTextHolder(),
-			this.buildClassConverter()
-		);
- 	}
-	
-	protected abstract ListValueModel<String> buildClassListHolder();
-	
-	protected StringConverter<String> buildClassConverter() {
-		return StringConverter.Default.instance();
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java
deleted file mode 100644
index cbc6184..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaTypeCompletionProcessor;
-import org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jpt.common.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.ClassName;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * This chooser allows the user to choose a type when browsing and it adds code
- * completion support to the text field, which is the main component.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.3
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public abstract class ClassChooserPane<T extends Model> extends ChooserPane<T>
-{
-	/**
-	 * The code completion manager.
-	 */
-	protected JavaTypeCompletionProcessor javaTypeCompletionProcessor;
-
-	private PropertyChangeListener subjectChangeListener;
-
-	/**
-	 * Creates a new <code>ClassChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public ClassChooserPane(Pane<? extends T> parentPane,
-	                        Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>ClassChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public ClassChooserPane(Pane<?> parentPane,
-	                        PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-
-		// TODO bug 156185 - when this is fixed there should be api for this
-		this.javaTypeCompletionProcessor = new JavaTypeCompletionProcessor(false, false);
-
-		this.subjectChangeListener = this.buildSubjectChangeListener();
-		this.getSubjectHolder().addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-
-		this.classChooserSubjectChanged(getSubject());
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent e) {
-				ClassChooserPane.this.classChooserSubjectChanged((T) e.getNewValue());
-			}
-		};
-	}
-
-	protected void classChooserSubjectChanged(T newSubject) {
-		IPackageFragment packageFragment = null;
-		if (newSubject != null) {
-			IPackageFragmentRoot root = getPackageFragmentRoot();
-			if (root != null) {
-				packageFragment = root.getPackageFragment("");
-			}
-		}
-		this.javaTypeCompletionProcessor.setPackageFragment(packageFragment);
-	}
-
-	@Override
-	protected Control addLeftControl(Composite container) {
-		if( ! this.allowTypeCreation()) {
-			return super.addLeftControl(container);
-		}
-		Hyperlink labelLink = this.addHyperlink(container,
-			this.getLabelText(),
-			this.buildHyperLinkAction()
-		);
-		return labelLink;
-	}
-
-	private Runnable buildHyperLinkAction() {
-		return new Runnable() {
-			public void run() {
-				ClassChooserPane.this.hyperLinkSelected();
-			}
-		};
-	}
-
-	protected void hyperLinkSelected() {
-		IType type = getType();
-		if (type != null) {
-			openInEditor(type);	
-		}
-		else if (allowTypeCreation()){
-			createType();
-		}
-	}
-	
-	protected IType getType() {
-		if (getClassName() == null) {
-			return null;
-		}
-		IType type = null;
-		try {
-			type = getJavaProject().findType(getClassName().replace('$', '.'));
-		}
-		catch (JavaModelException e) {
-			JptCommonUiPlugin.log(e);
-		}
-		return type;
-	}
-	
-	protected void createType() {
-		StructuredSelection selection = new StructuredSelection(getJavaProject().getProject());
-
-		NewClassWizardPage newClassWizardPage = new NewClassWizardPage();
-		newClassWizardPage.init(selection);
-		newClassWizardPage.setSuperClass(getSuperclassName(), true);
-		newClassWizardPage.setSuperInterfaces(getSuperInterfaceNames(), true);
-		if (!StringTools.stringIsEmpty(getClassName())) {
-			newClassWizardPage.setTypeName(ClassName.getSimpleName(getClassName()), true);
-			String packageName = ClassName.getPackageName(getClassName());
-			newClassWizardPage.setPackageFragment(getFirstJavaSourceFolder().getPackageFragment(packageName), true);
-		}
-		NewClassCreationWizard wizard = new NewClassCreationWizard(newClassWizardPage, false);
-		wizard.init(PlatformUI.getWorkbench(), selection);
-
-		WizardDialog dialog = new WizardDialog(getShell(), wizard);
-		dialog.create();
-		int dResult = dialog.open();
-		if (dResult == Window.OK) {
-			String className = (newClassWizardPage.getCreatedType()).getFullyQualifiedName(getEnclosingTypeSeparator());
-			setClassName(className);
-		}
-	}
-	
-	protected abstract void setClassName(String className);
-	
-	/**
-	 * Override this to change the enclosing type separator
-	 */
-	protected char getEnclosingTypeSeparator() {
-		return '$';
-	}
-	
-	/**
-	 * Override this to set a superclass in the New Class wizard.  If no class is chosen, 
-	 * clicking the hyperlink label will open the new class wizard.
-	 */
-	protected String getSuperclassName() {
-		return "";
-	}
-	
-	/**
-	 * Override this to set a super interface in the New Class wizard.  If no class is chosen, 
-	 * clicking the hyperlink label will open the new class wizard.
-	 * @see getSuperInterfaceName
-	 */
-	protected List<String> getSuperInterfaceNames() {
-		return getSuperInterfaceName() != null ? Collections.singletonList(getSuperInterfaceName()) : Collections.<String>emptyList();
-	}
-	
-	/**
-	 * Override this to set a super interface in the New Class wizard.  If no class is chosen, 
-	 * clicking the hyperlink label will open the new class wizard.
-	 */
-	protected String getSuperInterfaceName() {
-		return null;
-	}
-	
-	/**
-	 * Override this if it does not make sense to allow the user to create a new type.
-	 * This will determine whether clicking the hyperlink opens the New Class wizard
-	 * @return
-	 */
-	protected boolean allowTypeCreation() {
-		return true;
-	}
-	
-	protected void openInEditor(IType type) {
-		IJavaElement javaElement = type.getParent();
-		try {
-			JavaUI.openInEditor(javaElement, true, true);
-		}
-		catch (JavaModelException e) {
-			JptCommonUiPlugin.log(e);
-		}
-		catch (PartInitException e) {
-			JptCommonUiPlugin.log(e);
-		}
-	}
-
-	protected abstract IJavaProject getJavaProject();
-	
-	@Override
-	protected final Runnable buildBrowseAction() {
-		return new Runnable() {
-			public void run() {
-				promptType();
-			}
-		};
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		Composite subPane = addSubPane(container);
-		Text text = addText(subPane, buildTextHolder());
-
-		ControlContentAssistHelper.createTextContentAssistant(
-			text,
-			javaTypeCompletionProcessor
-		);
-
-		return subPane;
-	}
-
-	/**
-	 * Creates the value holder of the subject's property.
-	 *
-	 * @return The holder of the class name
-	 */
-	protected abstract WritablePropertyValueModel<String> buildTextHolder();
-
-	/**
-	 * Prompts the user the Open Type dialog.
-	 *
-	 * @return Either the selected type or <code>null</code> if the user
-	 * cancelled the dialog
-	 */
-	protected IType chooseType() {
-		IJavaElement[] elements = new IJavaElement[] { getJavaProject() };
-		IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements);
-		SelectionDialog typeSelectionDialog;
-
-		try {
-			typeSelectionDialog = JavaUI.createTypeDialog(
-				getShell(),
-				PlatformUI.getWorkbench().getProgressService(),
-				scope,
-				getTypeDialogStyle(),
-				false,
-				StringTools.stringIsEmpty(getClassName()) ? "" : ClassName.getSimpleName(getClassName())
-			);
-		}
-		catch (JavaModelException e) {
-			JptCommonUiPlugin.log(e);
-			return null;
-		}
-
-		typeSelectionDialog.setTitle(JptCommonUiMessages.ClassChooserPane_dialogTitle);
-		typeSelectionDialog.setMessage(JptCommonUiMessages.ClassChooserPane_dialogMessage);
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-
-		return null;
-	}
-
-	protected int getTypeDialogStyle() {
-		return IJavaElementSearchConstants.CONSIDER_CLASSES;
-	}
-	
-	/**
-	 * Returns the class name from its subject.
-	 *
-	 * @return The class name or <code>null</code> if none is defined
-	 */
-	protected abstract String getClassName();
-
-	protected IPackageFragmentRoot getFirstJavaSourceFolder() {
-		Iterator<IPackageFragmentRoot> i = JDTTools.getJavaSourceFolders(getJavaProject()).iterator();
-		return i.hasNext() ? i.next() : null;
-	}
-
-	/**
-	 * The browse button was clicked, its action invokes this action which should
-	 * prompt the user to select a class and set it.
-	 */
-	protected void promptType() {
-		IType type = this.chooseType();
-
-		if (type != null) {
-			String className = type.getFullyQualifiedName(getEnclosingTypeSeparator());
-			setClassName(className);
-		}
-	}
-
-	protected IPackageFragmentRoot getPackageFragmentRoot() {
-		return JDTTools.getCodeCompletionContextRoot(getJavaProject());
-	}
-
-	@Override
-	public void dispose() {
-		this.getSubjectHolder().removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		super.dispose();
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java
deleted file mode 100644
index 4046ed1..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Tools;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Pane with combo box support for automatic updating of:
- *  - selected value
- *  - default value
- *  - value choices
- */
-public abstract class ComboPane<T extends Model>
-	extends Pane<T>
-{
-	/**
-	 * The main (only) widget of this pane.
-	 */
-	protected Combo comboBox;
-	
-	
-	// **************** constructors ******************************************
-	
-	protected ComboPane(
-			Pane<? extends T> parentPane, 
-			Composite parent) {
-		
-		super(parentPane, parent);
-	}
-	
-	protected ComboPane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent) {
-	
-		super(parentPane, subjectHolder, parent);
-	}
-	
-	protected ComboPane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			PropertyValueModel<Boolean> enabledModel) {
-	
-		super(parentPane, subjectHolder, parent, enabledModel);
-	}
-	
-	
-	// **************** initialization ****************************************
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.comboBox = this.addEditableCombo(container);
-		this.comboBox.addModifyListener(this.buildModifyListener());
-		SWTUtil.attachDefaultValueHandler(this.comboBox);
-	}
-	
-	protected ModifyListener buildModifyListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				ComboPane.this.comboBoxModified();
-			}
-		};
-	}
-	
-	
-	// **************** typical overrides *************************************
-	
-	/**
-	 * Return the possible values to be added to the combo during
-	 * population.
-	 */
-	protected abstract Iterable<String> getValues();
-	
-	/**
-	 * Return whether the combo is to add a default value to the choices
-	 */
-	protected boolean usesDefaultValue() {
-		// default response is 'true'
-		return true;
-	}
-	
-	/**
-	 * Return the default value, or <code>null</code> if no default is
-	 * specified. This method is only called when the subject is non-null.
-	 */
-	protected abstract String getDefaultValue();
-	
-	/**
-	 * Return the current value from the subject.
-	 * This method is only called when the subject is non-null.
-	 */
-	protected abstract String getValue();
-	
-	/**
-	 * Set the specified value as the new value on the subject.
-	 */
-	protected abstract void setValue(String value);
-	
-	
-	// **************** overrides *********************************************
-	
-	@Override
-	protected void propertyChanged(String propertyName) {
-		super.propertyChanged(propertyName);
-		this.updateSelectedItem();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		super.doPopulate();
-		this.populateComboBox();
-	}
-	
-	
-	// **************** populating ********************************************
-	
-	/**
-	 * Populate the combo-box list by clearing it, then adding first the default
-	 * value, if available, and then the possible choices.
-	 */
-	protected void populateComboBox() {
-		this.comboBox.removeAll();
-		
-		if (usesDefaultValue()) {
-			this.comboBox.add(this.buildDefaultValueEntry());
-		}
-			
-		for (String value : this.getValues()) {
-			this.comboBox.add(value);
-		}
-		
-		this.updateSelectedItem_();
-	}
-	
-	protected String buildDefaultValueEntry() {
-		if (getSubject() == null) {
-			return JptCommonUiMessages.NoneSelected;
-		}
-		String defaultValue = this.getDefaultValue();
-		return (defaultValue == null) ? this.buildNullDefaultValueEntry() : this.buildNonNullDefaultValueEntry(defaultValue);
-	}
-	
-	protected String buildNullDefaultValueEntry() {
-		return JptCommonUiMessages.DefaultEmpty;
-	}
-	
-	protected String buildNonNullDefaultValueEntry(String defaultValue) {
-		return NLS.bind(
-				JptCommonUiMessages.DefaultWithOneParam,
-				defaultValue);
-	}
-	
-	protected void updateSelectedItem() {
-		// make sure the default value is up to date (??? ~bjv)
-		if (usesDefaultValue()) {
-			String defaultValueEntry = this.buildDefaultValueEntry();
-			if ( ! this.comboBox.getItem(0).equals(defaultValueEntry)) {
-				this.comboBox.remove(0);
-				this.comboBox.add(defaultValueEntry, 0);
-			}
-		}
-		
-		this.updateSelectedItem_();
-	}
-	
-	/**
-	 * Updates the selected item by selecting the current value, if not
-	 * <code>null</code>, or select the default value if one is available,
-	 * otherwise remove the selection.
-	 */
-	protected void updateSelectedItem_() {
-		String value = (this.getSubject() == null) ? null : this.getValue();
-		if (value == null) {
-			if (usesDefaultValue()) {
-				// select the default value
-				this.comboBox.select(0);
-			}
-			else {
-				this.comboBox.setText("");
-			}
-		} else {
-			// select the new value
-			if ( ! value.equals(this.comboBox.getText())) {
-				// This prevents the cursor from being set back to the beginning of the line (bug 234418).
-				// The reason we are hitting this method at all is because the
-				// context model is updating from the resource model in a way
-				// that causes change notifications to be fired (the annotation
-				// is added to the resource model, change notification occurs
-				// on the update thread, and then the name is set, these 2
-				// threads can get in the wrong order).
-				// The #valueChanged() method sets the populating flag to true,
-				// but in this case it is already set back to false when we
-				// receive notification back from the model because it has
-				// moved to the update thread and then jumps back on the UI thread.
-				this.comboBox.setText(value);
-			}
-		}
-	}
-	
-	protected void repopulateComboBox() {
-		if ( ! this.comboBox.isDisposed()) {
-			this.repopulate();
-		}
-	}
-	
-	
-	// **************** combo-box listener callback ***************************
-	
-	protected void comboBoxModified() {
-		if ( ! this.isPopulating()) {
-			this.valueChanged(this.comboBox.getText());
-		}
-	}
-	
-	/**
-	 * The combo-box selection has changed, update the model if necessary.
-	 * If the value has changed and the subject is null, we can build a subject
-	 * before setting the value.
-	 */
-	protected void valueChanged(String newValue) {
-		T subject = this.getSubject();
-		String oldValue;
-		if (subject == null) {
-			if (this.nullSubjectIsNotAllowed()) {
-				return;  // no subject to set the value on
-			}
-			oldValue = null;
-		} else {
-			oldValue = this.getValue();
-		}
-		
-		// convert empty string or default to null
-		if (StringTools.stringIsEmpty(newValue) || this.valueIsDefault(newValue)) {
-			newValue = null;
-		}
-		
-		// set the new value if it is different from the old value
-		if (Tools.valuesAreDifferent(oldValue, newValue)) {
-			this.setPopulating(true);
-			
-			try {
-				this.setValue(newValue);
-			} finally {
-				this.setPopulating(false);
-			}
-		}
-	}
-	
-	/**
-	 * Return whether we can set the value when the subject is null
-	 * (i.e. #setValue(String) will construct the subject if necessary).
-	 */
-	protected boolean nullSubjectIsAllowed() {
-		return false;
-	}
-	
-	protected final boolean nullSubjectIsNotAllowed() {
-		return ! this.nullSubjectIsAllowed();
-	}
-	
-	/**
-	 * pre-condition: value is not null
-	 */
-	protected boolean valueIsDefault(String value) {
-		if (! usesDefaultValue()) {
-			return false;
-		}
-		return (this.comboBox.getItemCount() > 0)
-				&& value.equals(this.comboBox.getItem(0));
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java
deleted file mode 100644
index 97f4dc3..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.ui.WidgetFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * This <code>WidgetFactory</code> simply creates plain SWT widgets.
- *
- * @version 2.0
- * @since 2.0
- */
-public class DefaultWidgetFactory implements WidgetFactory {
-
-	/**
-	 * The singleton instance of this <code>IWidgetFactory</code>
-	 */
-	private static final WidgetFactory INSTANCE = new DefaultWidgetFactory();
-
-	/**
-	 * Creates a new <code>DefaultWidgetFactory</code>.
-	 */
-	private DefaultWidgetFactory() {
-		super();
-	}
-
-	/**
-	 * Returns the singleton instance of this <code>IWidgetFactory</code>.
-	 *
-	 * @return The singleton instance of this <code>IWidgetFactory</code>
-	 */
-	public static WidgetFactory instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createButton(Composite parent, String text) {
-		return this.createButton(parent, text, SWT.NULL);
-	}
-
-	/**
-	 * Creates a new button.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @param style The style to apply to the button, which determines its type:
-	 * toggle, push, check box, radio
-	 * @return The newly created <code>Button</code>
-	 */
-	private Button createButton(Composite parent, String text, int style) {
-		Button button = new Button(parent, style);
-		button.setText(text);
-		return button;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Deprecated
-	public CCombo createCCombo(Composite parent) {
-		return new CCombo(parent, SWT.BORDER | SWT.READ_ONLY);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createCheckBox(Composite parent, String text) {
-		return this.createButton(parent, text, SWT.CHECK);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Combo createCombo(Composite parent) {
-		return new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Composite createComposite(Composite parent) {
-		return new Composite(parent, SWT.NULL);
-	}
-	
-	/**
-	 * {@inheritDoc}
-	 */
-	public DateTime createDateTime(Composite parent, int style) {
-		return new DateTime(parent, style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Deprecated
-	public CCombo createEditableCCombo(Composite parent) {
-		return new CCombo(parent, SWT.BORDER);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Combo createEditableCombo(Composite parent) {
-		return new Combo(parent, SWT.BORDER);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Group createGroup(Composite parent, String title) {
-		Group group = new Group(parent, SWT.NULL);
-		group.setText(title);
-		return group;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Hyperlink createHyperlink(Composite parent, String text) {
-		Hyperlink hyperlink = new Hyperlink(parent, SWT.NULL);
-		hyperlink.setText(text);
-		return hyperlink;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Label createLabel(Composite parent, String labelText) {
-		Label label = new Label(parent, SWT.WRAP);
-		label.setText(labelText);
-		return label;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public List createList(Composite parent, int style) {
-		return new List(parent, SWT.BORDER | style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public FormText createMultiLineLabel(Composite parent, String labelText) {
-
-		Composite container = new Composite(parent, SWT.NONE);
-
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		container.setLayoutData(gridData);
-
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.numColumns   = 1;
-		layout.bottomMargin = 0;
-		layout.leftMargin   = 0;
-		layout.rightMargin  = 0;
-		layout.topMargin    = 0;
-		container.setLayout(layout);
-
-		FormToolkit widgetFactory = new FormToolkit(parent.getDisplay());
-		FormText text = widgetFactory.createFormText(container, true);
-		text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		text.setText(labelText, false, false);
-
-		return text;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createMultiLineText(Composite parent) {
-		return new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createPasswordText(Composite parent) {
-		return new Text(parent, SWT.BORDER | SWT.PASSWORD);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createPushButton(Composite parent, String text) {
-		return this.createButton(parent, text, SWT.PUSH);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createRadioButton(Composite parent, String text) {
-		return this.createButton(parent, text, SWT.RADIO);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Section createSection(Composite parent, int style) {
-		return new Section(parent, style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Spinner createSpinner(Composite parent) {
-		return new Spinner(parent, SWT.NULL);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Table createTable(Composite parent, int style) {
-		return new Table(parent, SWT.BORDER | style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createText(Composite parent) {
-		return new Text(parent, SWT.BORDER);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createTriStateCheckBox(Composite parent, String text) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, text, this);
-		return checkBox.getCheckBox();
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java
deleted file mode 100644
index 1c6509e..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-
-/**
- * The abstract implementation of a dialog using a "state object" (model object)
- * for behavior.
- * <p>
- * The main pane of this dialog should be extending <code>DialogPane</code>
- * for creating the right type of widgets and it has the "state object" (subject)
- * behavior built-in.
- *
- * @see Node
- * @see DialogPane
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public abstract class Dialog<T extends Node> extends TitleAreaDialog
-{
-	/**
-	 * The main content pane of this dialog.
-	 */
-	private DialogPane<?> pane;
-
-	/**
-	 * The holder of the "state object" used by this dialog.
-	 */
-	private WritablePropertyValueModel<T> subjectHolder;
-
-	/**
-	 * Caches the title text until the dialog is created and the dialog's shell
-	 * needs to be configured.
-	 */
-	private String title;
-
-	/**
-	 * Creates a new <code>Dialog</code>.
-	 *
-	 * @param parent The parent shell
-	 */
-	protected Dialog(Shell parent) {
-		this(parent, "");
-	}
-
-	/**
-	 * Creates a new <code>Dialog</code>.
-	 *
-	 * @param parent The parent shell
-	 * @param title The dialog's title
-	 */
-	protected Dialog(Shell parent, String title) {
-		super(parent);
-		this.title = title;
-		initialize();
-	}
-
-	/**
-	 * Initializes the main pane of this dialog. This method is invoked only
-	 * when the dialog is requested to show on screen and not during
-	 * initialization.
-	 *
-	 * @param container The container to which the widgets should be added to,
-	 * the layout is already set
-	 */
-	protected abstract DialogPane<?> buildLayout(Composite container);
-
-	/**
-	 * Creates the state object (model object) that will be used to keep track
-	 * of the information entered in this dialog. The state object will be stored
-	 * in the subject holder and can be retrieved using {@link #subject()}.
-	 *
-	 * @return A new state object
-	 */
-	protected T buildStateObject() {
-		return null;
-	}
-
-	/**
-	 * Creates the <code>Validator</code> that will be notified when changes are
-	 * made to the state object.
-	 *
-	 * @return The validator that will be set on the state object
-	 */
-	Node.Validator buildValidator() {
-		return Node.NULL_VALIDATOR;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public boolean close() {
-
-		// Dispose the pane in order to remove any listeners that could
-		// have been installed outside the scrope of the state object
-		if (pane != null) {
-			pane.dispose();
-			pane = null;
-		}
-
-		return super.close();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(getTitle());
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void create() {
-		super.create();
-		installSubject();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected Control createContents(Composite parent) {
-		if (hasTitleArea()) {
-			return super.createContents(parent);
-		}
-
-		return createDefaultContent(parent);
-	}
-
-	/**
-	 * Creates the default main container of this dialog when the title area is
-	 * not required. The top part is the dialog area populated by the subclass
-	 * and the lower part is the button pane having the OK and Cancel buttons.
-	 *
-	 * @param parent The parent container
-	 * @return The
-	 */
-	private Composite createDefaultContent(Composite parent) {
-
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		GridLayout layout      = new GridLayout(1, false);
-		layout.marginHeight    = 0;
-		layout.marginWidth     = 0;
-		layout.verticalSpacing = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		applyDialogFont(composite);
-		initializeDialogUnits(composite);
-		dialogArea = createDialogArea(composite);
-		buttonBar  = createButtonBar(composite);
-
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected Composite createDialogArea(Composite parent) {
-
-		// If the title area needs to be shown, then leave the superclass to
-		// create the necessary widgets
-		if (hasTitleArea()) {
-			parent = (Composite) super.createDialogArea(parent);
-		}
-
-		// Create the main area's container
-		Composite container = new Composite(parent, SWT.NULL);
-		container.setLayout(new GridLayout(1, false));
-
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.FILL;
-		gridData.verticalAlignment         = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace   = true;
-		container.setLayoutData(gridData);
-
-		// Initialize the content pane
-		pane = buildLayout(container);
-
-		// Initialize the UI part, which requires the widgets being created
-		initializeUI();
-
-		return parent;
-	}
-
-	/**
-	 * Determines whether the description area (where a title, description and
-	 * image) should be visible or hidden. <code>ValidatingDialog</code>
-	 * automatically show the description area in order to show problems.
-	 *
-	 * @return <code>false</code> by default, which means the methods used to
-	 * update the title, description and image shouldn't be called; <code>true</code>
-	 * to make the description pane visible
-	 */
-	protected boolean hasTitleArea() {
-		return false;
-	}
-
-	/**
-	 * Returns the helps system.
-	 *
-	 * @return The platform's help system
-	 *
-	 * @category Helper
-	 */
-	protected final IWorkbenchHelpSystem getHelpSystem() {
-		return PlatformUI.getWorkbench().getHelpSystem();
-	}
-
-	/**
-	 * Initializes this dialog.
-	 */
-	protected void initialize() {
-		this.subjectHolder = new SimplePropertyValueModel<T>();
-	}
-
-	/**
-	 * Initializes the UI part of this dialog, this is called after the widgets
-	 * have been created.
-	 */
-	protected void initializeUI() {
-	}
-
-	/**
-	 * Creates the state object, if one is needed and install a <code>Validator</code>
-	 * in order to receive notification of changes done to that state object. The
-	 * subject can be retrieved from the subject holder.
-	 */
-	private void installSubject() {
-
-		T subject = buildStateObject();
-
-		if (subject != null) {
-			subject.setValidator(buildValidator());
-		}
-
-		subjectHolder.setValue(subject);
-	}
-
-	/**
-	 * Asynchronously launches this dialog in the UI thread.
-	 */
-	public final void openDialog() {
-		SWTUtil.setUserInterfaceActive(false);
-		SWTUtil.show(this);
-	}
-
-	/**
-	 * Asynchronously launches this dialog in the UI thread and invoke the given
-	 * <code>PostExecution</code> to perform any post-task.
-	 *
-	 * @param postExecution This interface let the caller to invoke a piece of
-	 * code once the dialog is disposed
-	 */
-	public final void openDialog(PostExecution<? extends Dialog<T>> execution) {
-		SWTUtil.setUserInterfaceActive(false);
-		SWTUtil.show(this, execution);
-	}
-
-	/**
-	 * Gives access to the dialog's main pane.
-	 *
-	 * @return The pane showing the custom widgets
-	 */
-	protected DialogPane<?> getPane() {
-		return pane;
-	}
-
-	/**
-	 * Returns the subject of this dialog.
-	 *
-	 * @return The subject of this dialog or <code>null</code> if no subject was
-	 * used
-	 */
-	public T getSubject() {
-		return subjectHolder.getValue();
-	}
-
-	/**
-	 * Returns the holder of the subject.
-	 *
-	 * @return The subject holder used to be passed to the dialog pane, which is
-	 * an instance of <code>DialogPane</code>
-	 */
-	protected final PropertyValueModel<T> getSubjectHolder() {
-		return subjectHolder;
-	}
-
-	/**
-	 * Retrieves the dialog's title. The title passed to the constructor will be
-	 * returned by default but if it wasn't specified, this method can be used
-	 * to return it.
-	 *
-	 * @return Either the title passed to the constructor or a different title
-	 */
-	protected String getTitle() {
-		return title;
-	}
-
-	/**
-	 * Determines whether the dialog was cancelled or not.
-	 *
-	 * @return <code>true</code> if the dialog was cancelled; <code>false</code>
-	 * if it was confirmed
-	 */
-	public final boolean wasCancelled() {
-		return getReturnCode() == CANCEL;
-	}
-
-	/**
-	 * Determines whether the dialog was confirmed or not.
-	 *
-	 * @return <code>true</code> if the dialog was confirmed; <code>false</code>
-	 * if it was cancelled
-	 */
-	public final boolean wasConfirmed() {
-		return getReturnCode() == OK;
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java
deleted file mode 100644
index 823cd0c..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The abstract pane to use when the pane is shown in an <code>Dialog</code>.
- *
- * @see Dialog
- *
- * @version 2.0
- * @since 2.0
- */
-public abstract class DialogPane<T extends Node> extends Pane<T> {
-
-	/**
-	 * Creates a new <code>DialogPane</code>.
-	 *
-	 * @param parentPane The parent controller of this one
-	 * @param parent The parent container
-	 *
-	 * @category Constructor
-	 */
-	protected DialogPane(DialogPane<? extends T> parentPane,
-	                             Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>DialogPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent controller;
-	 * <code>false</code> to not align them
-	 *
-	 * @category Constructor
-	 */
-	protected DialogPane(DialogPane<? extends T> parentPane,
-	                             Composite parent,
-	                             boolean automaticallyAlignWidgets) {
-
-		super(parentPane, parent, automaticallyAlignWidgets);
-	}
-
-	/**
-	 * Creates a new <code>DialogPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 *
-	 * @category Constructor
-	 */
-	protected DialogPane(DialogPane<?> parentPane,
-	                             PropertyValueModel<? extends T> subjectHolder,
-	                             Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	/**
-	 * Creates a new <code>DialogPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent controller;
-	 * <code>false</code> to not align them
-	 *
-	 * @category Constructor
-	 */
-	protected DialogPane(DialogPane<?> parentPane,
-	                             PropertyValueModel<? extends T> subjectHolder,
-	                             Composite parent,
-	                             boolean automaticallyAlignWidgets) {
-
-		super(parentPane, subjectHolder, parent, automaticallyAlignWidgets);
-	}
-
-	/**
-	 * Creates a new <code>DialogPane</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 *
-	 * @category Constructor
-	 */
-	protected DialogPane(PropertyValueModel<? extends T> subjectHolder,
-	                             Composite parent) {
-
-		super(subjectHolder, parent, DefaultWidgetFactory.instance());
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java
deleted file mode 100644
index f3069c5..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Arrays;
-import java.util.Comparator;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.common.ui.WidgetFactory;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import com.ibm.icu.text.Collator;
-
-/**
- * This pane simply shows a combo where its data is populating through
- * {@link #choices()} and a default value can also be added.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | | I                                                                   |v| |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 1.0
- */
-@SuppressWarnings("nls")
-abstract class EnumComboViewer<T extends Model, V> extends Pane<T>
-{
-	/**
-	 * The main widget of this pane.
-	 */
-	private ComboViewer comboViewer;
-
-	/**
-	 * A constant used to represent the <code>null</code> value.
-	 */
-	public static final String NULL_VALUE = "null";
-
-	/**
-	 * Creates a new <code>EnumComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	EnumComboViewer(Pane<? extends T> parentPane,
-	                        Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>EnumComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	EnumComboViewer(Pane<?> parentPane,
-	                        PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	/**
-	 * Creates a new <code>EnumComboViewer</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	EnumComboViewer(PropertyValueModel<? extends T> subjectHolder,
-	                        Composite parent,
-	                        WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	/**
-	 * Creates the list of choices and add an extra element that represents the
-	 * default value.
-	 *
-	 * @return The combo's choices including the default value
-	 */
-	private Object[] buildChoices() {
-		V[] choices = getChoices();
-		if (sortChoices()) {
-			Arrays.sort(choices, buildComparator());
-		}
-
-		Object[] extendedChoices = new Object[choices.length + 1];
-		System.arraycopy(choices, 0, extendedChoices, 1, choices.length);
-		extendedChoices[0] = NULL_VALUE;
-
-		return extendedChoices;
-	}
-
-	/**
-	 * Return true to sort the choices in alphabetical order
-	 * @return
-	 */
-	protected boolean sortChoices() {
-		return true;
-	}
-	
-	/**
-	 * Creates the <code>ComboViewer</code> with the right combo widgets.
-	 *
-	 * @param container The container of the combo
-	 * @return A new <code>ComboViewer</code> containing the right combo widget
-	 */
-	protected ComboViewer addComboViewer(Composite container) {
-		return addComboViewer(container, buildLabelProvider());
-	}
-
-	private Comparator<Object> buildComparator() {
-		return new Comparator<Object>() {
-			final LabelProvider labelProvider = buildLabelProvider();
-
-			public int compare(Object value1, Object value2) {
-				String displayString1 = labelProvider.getText(value1);
-				String displayString2 = labelProvider.getText(value2);
-				return Collator.getInstance().compare(displayString1, displayString2);
-			}
-		};
-	}
-
-	/**
-	 * Retrieves the localized string from the given NLS class by creating the
-	 * key. That key is the concatenation of the composite's short class name
-	 * with the toString() of the given value separated by an underscore.
-	 *
-	 * @param nlsClass The NLS class used to retrieve the localized text
-	 * @param compositeClass The class used for creating the key, its short class
-	 * name is the beginning of the key
-	 * @param value The value used to append its toString() to the generated key
-	 * @return The localized text associated with the value
-	 */
-	protected final String buildDisplayString(Class<?> nlsClass,
-	                                          Class<?> compositeClass,
-	                                          Object value) {
-
-		return SWTUtil.buildDisplayString(nlsClass, compositeClass, value);
-	}
-
-	/**
-	 * Retrieves the localized string from the given NLS class by creating the
-	 * key. That key is the concatenation of the composite's short class name
-	 * with the toString() of the given value separated by an underscore.
-	 *
-	 * @param nlsClass The NLS class used to retrieve the localized text
-	 * @param composite The object used to retrieve the short class name that is
-	 * the beginning of the key
-	 * @param value The value used to append its toString() to the generated key
-	 * @return The localized text associated with the value
-	 */
-	protected final String buildDisplayString(Class<?> nlsClass,
-	                                          Object composite,
-	                                          Object value) {
-
-		return SWTUtil.buildDisplayString(nlsClass, composite, value);
-	}
-
-	/**
-	 * Creates the display string for the given element. If the element is the
-	 * virtual <code>null</code> value then its display string will be "Default"
-	 * appended by the actual default value, if it exists.
-	 *
-	 * @param value The value to convert into a human readable string
-	 * @return The string representation of the given element
-	 */
-	@SuppressWarnings("unchecked")
-	private String buildDisplayString(Object value) {
-		if (value == NULL_VALUE) {
-			V defaultValue = (getSubject() != null) ? getDefaultValue() : null;
-
-			if (defaultValue != null) {
-				String displayString = displayString(defaultValue);
-				return NLS.bind(JptCommonUiMessages.EnumComboViewer_defaultWithDefault, displayString);
-			}
-			return nullDisplayString();
-		}
-
-		return displayString((V) value);
-	}
-
-	final LabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				return buildDisplayString(element);
-			}
-		};
-	}
-
-	private ISelection buildSelection() {
-		Object value = (getSubject() != null) ? getValue() : null;
-
-		if (value == null) {
-			value = NULL_VALUE;
-		}
-
-		return new StructuredSelection(value);
-	}
-
-	private ISelectionChangedListener buildSelectionChangedListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				if (!isPopulating()) {
-					StructuredSelection selection = (StructuredSelection) e.getSelection();
-					valueChanged(selection.getFirstElement());
-				}
-			}
-		};
-	}
-
-	/**
-	 * Returns the possible choices to show in the viewer.
-	 *
-	 * @return The items to show in the combos
-	 */
-	protected abstract V[] getChoices();
-
-	/**
-	 * Returns the default value, this method is not called if the subject is
-	 * <code>null</code>.
-	 *
-	 * @return The value that is declared as being the default when it is not
-	 * defined or <code>null</code> if there is no default value
-	 */
-	protected abstract V getDefaultValue();
-
-	/**
-	 * Returns the displayable string for the given value.
-	 *
-	 * @param value The value to translate into a human readable string
-	 * @return The localized text representing the given value
-	 */
-	protected abstract String displayString(V value);
-	
-	/**
-	 * Returns the displayable string for a null value.
-	 */
-	protected String nullDisplayString() {
-		return null; //I would rather display nothing than "Default()"
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void doPopulate() {
-		super.doPopulate();
-		this.populateCombo();
-	}
-
-	/**
-	 * Returns
-	 *
-	 * @return
-	 */
-	final ComboViewer getComboViewer() {
-		return comboViewer;
-	}
-
-	/**
-	 * Retrieves the subject's value. The subject is never <code>null</code>.
-	 *
-	 * @return The subject' value, which can be <code>null</code>
-	 */
-	protected abstract V getValue();
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected final void initializeLayout(Composite container) {
-
-		this.comboViewer = this.addComboViewer(container);
-		this.comboViewer.addSelectionChangedListener(buildSelectionChangedListener());
-	}
-
-	/**
-	 * Populates the combo by re-adding all the items.
-	 */
-	private void populateCombo() {
-
-		removeAll();
-		comboViewer.add(buildChoices());
-		updateSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void propertyChanged(String propertyName) {
-		super.propertyChanged(propertyName);
-		this.populateCombo();
-	}
-
-	/**
-	 * Removes all the items from the combo.
-	 */
-	abstract void removeAll();
-
-	/**
-	 * Requests the given new value be set on the subject.
-	 *
-	 * @param value The new value to be set
-	 */
-	protected abstract void setValue(V value);
-
-	/**
-	 * Updates the cursor, which is required to show the entire selected item
-	 * within the combo's area.
-	 */
-	abstract void updateCursor();
-
-	/**
-	 * Updates the combo's selected item.
-	 */
-	private void updateSelection() {
-		comboViewer.setSelection(buildSelection());
-		updateCursor();
-	}
-
-	/**
-	 * The selection changes, notify the subclass to set the value.
-	 *
-	 * @param value The new selected item
-	 */
-	@SuppressWarnings("unchecked")
-	private void valueChanged(Object value) {
-
-		// Convert the default "null" value to a real null
-		if (value == NULL_VALUE) {
-			value = null;
-		}
-
-		setPopulating(true);
-
-		try {
-			setValue((V) value);
-		}
-		finally {
-			setPopulating(false);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java
deleted file mode 100644
index 85d6b19..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This <code>EnumComboViewer</code> should be used within a dialog pane.
- *
- * @version 2.0
- * @since 2.0
- */
-public abstract class EnumDialogComboViewer<T extends Model, V>
-	extends EnumComboViewer<T, V>
-{
-	/**
-	 * Creates a new <code>EnumDialogComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	protected EnumDialogComboViewer(DialogPane<? extends T> parentPane,
-	                                Composite parent
-	) {
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>EnumDialogComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	protected EnumDialogComboViewer(DialogPane<?> parentPane,
-	                                PropertyValueModel<? extends T> subjectHolder,
-	                                Composite parent
-	) {
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	public void enableWidgets(boolean enabled) {
-		super.enableWidgets(enabled);
-
-		Combo combo = getCombo();
-		if ( ! combo.isDisposed()) {
-			combo.setEnabled(enabled);
-		}
-	}
-
-	protected final Combo getCombo() {
-		return getComboViewer().getCombo();
-	}
-
-	@Override
-	void removeAll() {
-		getCombo().removeAll();
-	}
-
-	@Override
-	void updateCursor() {
-		getCombo().setSelection(new Point(0, 0));
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java
deleted file mode 100644
index b6ee89f..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This <code>EnumComboViewer</code> should be used within a form pane.
- *
- * @version 2.3
- * @since 1.0
- */
-public abstract class EnumFormComboViewer<T extends Model, V>
-	extends EnumComboViewer<T, V>
-{
-	/**
-	 * Creates a new <code>EnumFormComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	protected EnumFormComboViewer(Pane<? extends T> parentPane,
-	                              Composite parent
-	) {
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>EnumFormComboViewer</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 */
-	protected EnumFormComboViewer(Pane<?> parentPane,
-	                              PropertyValueModel<? extends T> subjectHolder,
-	                              Composite parent
-	) {
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	public void enableWidgets(boolean enabled) {
-		super.enableWidgets(enabled);
-
-		Combo combo = getCombo();
-		if ( ! combo.isDisposed()) {
-			combo.setEnabled(enabled);
-		}
-	}
-
-	protected final Combo getCombo() {
-		return this.getComboViewer().getCombo();
-	}
-
-	@Override
-	void removeAll() {
-		getCombo().removeAll();
-	}
-
-	@Override
-	void updateCursor() {
-		getCombo().setSelection(new Point(0, 0));
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java
deleted file mode 100644
index 4b47bad..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This chooser allows the user to choose a file when browsing.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                            |v| | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 3.0
- * @since 3.0
- */
-public abstract class FileChooserComboPane<T extends Model> extends FileChooserPane<T>
-{
-	/**
-	 * Creates a new <code>FileChooserComboPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public FileChooserComboPane(Pane<? extends T> parentPane,
-	                       Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>FileChooserComboPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public FileChooserComboPane(Pane<?> parentPane,
-	                       PropertyValueModel<? extends T> subjectHolder,
-	                       Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		
-		return addEditableCombo(
-			container,
-			this.buildListHolder(),
-			this.getTextHolder(),
-			this.buildStringConverter()
-		);
-	}
-
-	/**
-	 * Creates the list holder of the combo box.
-	 */
-	protected ListValueModel<String> buildListHolder() {
-		return new SimpleListValueModel<String>(
-			this.buildDefaultList()
-		);
-	}
-
-	/**
-	 * Creates the default list of the combo box.
-	 */
-	protected List<String> buildDefaultList() {
-		return Arrays.asList(this.getDefaultString());
-	}
-
-	/**
-	 * Returns the default value of the combo box.
-	 */
-	protected abstract String getDefaultString();
-	
-	/**
-	 * The converter responsible to transform each combo box item
-	 * into a string representation
-	 */
-	protected StringConverter<String> buildStringConverter() {
-		return StringConverter.Default.<String>instance();
-	}
-
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java
deleted file mode 100644
index bcaec6d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.dialogs.ISelectionStatusValidator;
-
-/**
- * This chooser allows the user to choose a file when browsing.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public abstract class FileChooserPane<T extends Model> extends ChooserPane<T>
-{
-	private WritablePropertyValueModel<String> textHolder;
-
-	/**
-	 * Creates a new <code>FileChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public FileChooserPane(Pane<? extends T> parentPane,
-	                       Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>FileChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public FileChooserPane(Pane<?> parentPane,
-	                       PropertyValueModel<? extends T> subjectHolder,
-	                       Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected final Runnable buildBrowseAction() {
-		return new Runnable() {
-			public void run() {
-				promptFile();
-			}
-		};
-	}
-
-	/**
-	 * Creates the <code>ViewerFilter</code> that will filter the content of the
-	 * dialog and only displays what is valid.
-	 *
-	 * @return A new <code>ViewerFilter</code>
-	 */
-	protected ViewerFilter buildFilter() {
-		return new ViewerFilter() {
-			@Override
-			public boolean select(Viewer viewer,
-			                      Object parentElement,
-			                      Object element) {
-
-				return true;
-			}
-		};
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		return this.addText(container, this.textHolder);
-	}
-
-	/**
-	 * Creates the value holder of the subject's property.
-	 *
-	 * @return The holder of the class name
-	 */
-	protected abstract WritablePropertyValueModel<String> buildTextHolder();
-
-	/**
-	 * Creates the validator that will show a status message based on what is
-	 * selected in the selection dialog.
-	 *
-	 * @return A new <code>ISelectionStatusValidator</code>
-	 */
-	protected ISelectionStatusValidator buildValidator() {
-		return new ISelectionStatusValidator() {
-			public IStatus validate(Object[] selection) {
-
-				if (selection.length != 1) {
-					return new Status(IStatus.ERROR, JptCommonUiPlugin.PLUGIN_ID, "");
-				}
-
-				return new Status(IStatus.OK, JptCommonUiPlugin.PLUGIN_ID, "");
-			}
-		};
-	}
-
-	/**
-	 * Returns the selection dialog's title.
-	 *
-	 * @return A non-<code>null</code> string
-	 */
-	protected abstract String getDialogTitle();
-
-	/**
-	 * Retrieves the project path that will be used by the selection dialog.
-	 *
-	 * @return The project path used to display its content in a selection dialog
-	 */
-	protected abstract String getProjectPath();
-
-	protected  WritablePropertyValueModel<String> getTextHolder() {
-		return this.textHolder;
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.textHolder = this.buildTextHolder();
-	}
-
-	/**
-	 * The browse button was clicked, its action invokes this action which should
-	 * prompt the user to select a file and set it.
-	 */
-	protected void promptFile() {
-		String projectPath= this.getProjectPath();
-
-		FileDialog dialog = new FileDialog(getShell());
-		dialog.setText(this.getDialogTitle());
-		dialog.setFilterPath(projectPath);
-		String filePath = dialog.open();
-		if (filePath != null) {
-			FileChooserPane.this.textHolder.setValue(filePath);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java
deleted file mode 100644
index d7cce8a..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-
-/**
- * This chooser allows the user to choose a folder when browsing.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                            |v| | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 3.0
- * @since 3.0
- */
-public abstract class FolderChooserComboPane<T extends Model> extends FolderChooserPane<T>
-{
-	/**
-	 * Creates a new <code>FolderChooserComboPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public FolderChooserComboPane(Pane<? extends T> parentPane,
-	                         Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>FolderChooserComboPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public FolderChooserComboPane(Pane<?> parentPane,
-	                         PropertyValueModel<? extends T> subjectHolder,
-	                         Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		
-		return addEditableCombo(
-			container,
-			this.buildListHolder(),
-			this.getTextHolder(),
-			this.buildStringConverter()
-		);
-	}
-
-	/**
-	 * Creates the list holder of the combo box.
-	 */
-	protected ListValueModel<String> buildListHolder() {
-		return new SimpleListValueModel<String>(
-			this.buildDefaultList()
-		);
-	}
-
-	/**
-	 * Creates the default list of the combo box.
-	 */
-	protected List<String> buildDefaultList() {
-		return Arrays.asList(this.getDefaultString());
-	}
-
-	/**
-	 * Returns the default value of the combo box.
-	 */
-	protected abstract String getDefaultString();
-	
-	/**
-	 * The converter responsible to transform each combo box item
-	 * into a string representation
-	 */
-	protected StringConverter<String> buildStringConverter() {
-		return StringConverter.Default.<String>instance();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java
deleted file mode 100644
index 0aa4142..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 20010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-
-/**
- * This chooser allows the user to choose a folder when browsing.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 3.0
- * @since 2.0
- */
-public abstract class FolderChooserPane<T extends Model> extends ChooserPane<T>
-{
-	private WritablePropertyValueModel<String> textHolder;
-
-	/**
-	 * Creates a new <code>FolderChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public FolderChooserPane(Pane<? extends T> parentPane,
-	                         Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>FolderChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public FolderChooserPane(Pane<?> parentPane,
-	                         PropertyValueModel<? extends T> subjectHolder,
-	                         Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected final Runnable buildBrowseAction() {
-		return new Runnable() {
-			public void run() {
-				promptFolder();
-			}
-		};
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		return this.addText(container, this.textHolder);
-	}
-
-	/**
-	 * Creates the value holder of the subject's property.
-	 *
-	 * @return The holder of the class name
-	 */
-	protected abstract WritablePropertyValueModel<String> buildTextHolder();
-
-	/**
-	 * Returns the message to be shown in the selection dialog.
-	 *
-	 * @return A non-<code>null</code> string shown above the text field of the
-	 * selection dialog
-	 */
-	protected abstract String getDialogMessage();
-
-	/**
-	 * Returns the selection dialog's title.
-	 *
-	 * @return A non-<code>null</code> string
-	 */
-	protected abstract String getDialogTitle();
-
-	/**
-	 * Returns the path that the dialog will use to filter the directories it
-	 * shows to the argument, which may be null. If the string is null, then the
-	 * operating system's default filter path will be used.
-	 * <p>
-	 * Note that the path string is platform dependent. For convenience, either
-	 * '/' or '\' can be used as a path separator.
-	 * </p>
-	 *
-	 * @return The filter path
-	 */
-	protected String filterPath() {
-		return null;
-	}
-
-	protected  WritablePropertyValueModel<String> getTextHolder() {
-		return this.textHolder;
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.textHolder = this.buildTextHolder();
-	}
-
-	/**
-	 * The browse button was clicked, its action invokes this action which should
-	 * prompt the user to select a folder and set it.
-	 */
-	protected void promptFolder() {
-
-		DirectoryDialog dialog = new DirectoryDialog(getShell());
-		dialog.setMessage(this.getDialogMessage());
-		dialog.setText(this.getDialogTitle());
-		dialog.setFilterPath(this.filterPath());
-		String directory = dialog.open();
-
-		if (directory != null) {
-			this.textHolder.setValue(directory);
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java
deleted file mode 100644
index ea1302f..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.WidgetFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * This <code>WidgetFactory</code> is responsible to create the widgets
- * using the <code>FormToolkit</code> in order use the form style (flat-style)
- * look and feel.
- *
- * @see FormToolkit
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public class FormWidgetFactory implements WidgetFactory {
-
-	/**
-	 * The actual factory responsible for creating the new widgets.
-	 */
-	private final FormToolkit widgetFactory;
-
-	/**
-	 * Creates a new <code>FormWidgetFactory</code>.
-	 *
-	 * @param widgetFactory The actual factory responsible for creating the new
-	 * widgets
-	 */
-	public FormWidgetFactory(FormToolkit widgetFactory) {
-		super();
-
-		Assert.isNotNull(widgetFactory, "The widget factory cannot be null");
-		this.widgetFactory = widgetFactory;
-	}
-
-	/**
-	 * Wraps the given <code>Composite</code> into a new <code>Composite</code>
-	 * in order to have the widgets' border painted. Except for <code>CCombo</code>,
-	 * the top and bottom margins have to be 2 pixel and the left and right
-	 * margins have to be 1 pixel.
-	 *
-	 * @param container The parent of the sub-pane
-	 * @return A new <code>Composite</code> that has the necessary space to paint
-	 * the border
-	 */
-	protected Composite createBorderContainer(Composite container) {
-		return createBorderContainer(container, 2, 1);
-	}
-	
-	protected Composite createBorderContainer(Composite container, int marginHeight, int marginWidth) {
-
-		GridLayout layout = new GridLayout(1, false);
-		layout.marginHeight = marginHeight;
-		layout.marginWidth  = marginWidth;
-
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-
-		container = widgetFactory.createComposite(container);
-		container.setLayoutData(gridData);
-		container.setLayout(layout);
-
-		return container;
-	}
-	
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createButton(Composite parent, String text) {
-		return createButton(parent, text, SWT.NULL);
-	}
-
-	/**
-	 * Creates a new button.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @param style The style to apply to the button, which determines its type:
-	 * toggle, push, check box, radio
-	 * @return The newly created <code>Button</code>
-	 */
-	protected Button createButton(Composite parent, String text, int style) {
-		return widgetFactory.createButton(parent, text, SWT.FLAT | style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Deprecated
-	public CCombo createCCombo(Composite parent) {
-		return createCCombo(parent, SWT.READ_ONLY);
-	}
-
-	/**
-	 * Creates a new combo.
-	 *
-	 * @param parent The parent container
-	 * @param style The style to apply to the combo, usually read-only, flat
-	 * @return The newly created <code>CCombo</code>
-	 */
-	protected CCombo createCCombo(Composite parent, int style) {
-		parent = createBorderContainer(parent, 1, 1);
-
-		CCombo combo = new CCombo(parent, style);
-		widgetFactory.adapt(combo, true, false);
-
-		// Bugzilla 145837 - workaround for no borders on Windows XP
-		if (widgetFactory.getBorderStyle() == SWT.BORDER) {
-			combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		}
-
-		return combo;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createCheckBox(Composite parent, String text) {
-		return createButton(parent, text, SWT.CHECK);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Combo createCombo(Composite parent) {
-		return new Combo(parent, SWT.READ_ONLY | SWT.FLAT);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Composite createComposite(Composite parent) {
-		return this.widgetFactory.createComposite(parent);
-	}
-	/**
-	 * {@inheritDoc}
-	 */
-	public DateTime createDateTime(Composite parent, int style) {
-		parent = createBorderContainer(parent);
-
-		DateTime dateTime = new DateTime(parent, style | SWT.FLAT);
-		dateTime.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		this.widgetFactory.adapt(dateTime, true, false);
-
-		return dateTime;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Deprecated
-	public CCombo createEditableCCombo(Composite parent) {
-		return createCCombo(parent, SWT.NULL);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Combo createEditableCombo(Composite parent) {
-		Combo combo = new Combo(parent, SWT.FLAT);
-		return combo;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Group createGroup(Composite parent, String title) {
-		Group group = new Group(parent, SWT.NULL);
-		group.setText(title);
-		return group;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Hyperlink createHyperlink(Composite parent, String text) {
-		return widgetFactory.createHyperlink(parent, text, SWT.FLAT);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Label createLabel(Composite container, String labelText) {
-		return widgetFactory.createLabel(container, labelText, SWT.WRAP);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public List createList(Composite container, int style) {
-		List list = new List(container, SWT.FLAT | style);
-		list.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		return list;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public FormText createMultiLineLabel(Composite parent, String labelText) {
-
-		Composite container = widgetFactory.createComposite(parent, SWT.NONE);
-
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		container.setLayoutData(gridData);
-
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.numColumns   = 1;
-		layout.bottomMargin = 0;
-		layout.leftMargin   = 0;
-		layout.rightMargin  = 0;
-		layout.topMargin    = 0;
-		container.setLayout(layout);
-
-		FormText text = widgetFactory.createFormText(container, true);
-		text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		text.setText(labelText, false, false);
-
-		return text;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createMultiLineText(Composite parent) {
-		return createText(parent, SWT.MULTI | SWT.V_SCROLL);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createPasswordText(Composite parent) {
-		return createText(parent, SWT.PASSWORD);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createPushButton(Composite parent, String text) {
-		return createButton(parent, text, SWT.PUSH);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createRadioButton(Composite parent, String text) {
-		return createButton(parent, text, SWT.RADIO);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Section createSection(Composite parent, int style) {
-		return widgetFactory.createSection(parent, SWT.FLAT | style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Spinner createSpinner(Composite parent) {
-		parent = createBorderContainer(parent);
-
-		Spinner spinner = new Spinner(parent, SWT.FLAT);
-		spinner.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		widgetFactory.adapt(spinner, true, false);
-
-		return spinner;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Table createTable(Composite parent, int style) {
-		Table table = this.widgetFactory.createTable(parent, SWT.BORDER | style);
-		table.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		return table;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Text createText(Composite parent) {
-		return createText(parent, SWT.NONE);
-	}
-
-	protected Text createText(Composite parent, int style) {
-		return widgetFactory.createText(parent, null, SWT.BORDER | SWT.FLAT | style);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	public Button createTriStateCheckBox(Composite parent, String text) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, text, this);
-		return checkBox.getCheckBox();
-	}
-
-	/**
-	 * Returns the actual factory responsible for creating the new widgets.
-	 *
-	 * @return The factory creating the widgets with the form style (flat-style)
-	 */
-	public FormToolkit getWidgetFactory() {
-		return widgetFactory;
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java
deleted file mode 100644
index 6703d6a..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.TransformationWritablePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This is a replacement for a Spinner.  It is a combo that only accepts integers.
- * It also includes a Default option in the combo.
- */
-public abstract class IntegerCombo<T extends Model>
-	extends Pane<T>
-{
-
-	/**
-	 * The main (only) widget of this pane.
-	 */
-	private Combo comboBox;
-
-
-	private PropertyValueModel<String> defaultValueHolder;
-	
-	// ********** constructors **********
-
-	protected IntegerCombo(
-						Pane<? extends T> parentPane,
-						Composite parent
-	) {
-		super(parentPane, parent);
-	}
-
-	protected IntegerCombo(
-						Pane<?> parentPane,
-						PropertyValueModel<? extends T> subjectHolder,
-						Composite parent
-	) {
-		super(parentPane, subjectHolder, parent);
-	}
-
-	public Combo getCombo() {
-		return this.comboBox;
-	}
-	
-	// ********** initialization **********
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.defaultValueHolder = buildDefaultStringHolder();
-		this.comboBox = this.addIntegerCombo(container);
-
-		int margin = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth();
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-		gridData.horizontalIndent = margin;
-		gridData.grabExcessHorizontalSpace = false;
-		this.comboBox.setLayoutData(gridData);
-		
-		this.comboBox.addVerifyListener(this.buildVerifyListener());
-		SWTUtil.attachDefaultValueHandler(this.comboBox);
-	}
-	
-	protected Combo addIntegerCombo(Composite container) {
-		return this.addLabeledEditableCombo(
-				container,
-				getLabelText(),
-				buildDefaultListHolder(),
-				buildSelectedItemStringHolder(),
-				getHelpId()
-				);
-		
-	}
-	
-	protected VerifyListener buildVerifyListener() {
-		return new VerifyListener() {
-			public void verifyText(VerifyEvent e) {
-				IntegerCombo.this.verifyComboBox(e);
-			}
-		};
-	}
-
-	protected ListValueModel<String> buildDefaultListHolder() {
-		return new PropertyListValueModelAdapter<String>(this.defaultValueHolder);
-	}
-	
-	private PropertyValueModel<String> buildDefaultStringHolder() {
-		return new TransformationPropertyValueModel<Integer, String>(buildDefaultHolder()) {
-			@Override
-			protected String transform(Integer value) {
-				if (value == null) {
-					return JptCommonUiMessages.NoneSelected;
-				}
-				return super.transform(value);
-			}
-			@Override
-			protected String transform_(Integer value) {
-				return getDefaultValueString(value);
-			}
-		};
-	}
-	
-	private String getDefaultValueString(Integer defaultValue) {
-		return NLS.bind(
-				JptCommonUiMessages.DefaultWithOneParam,
-				defaultValue
-			);
-	}
-	
-	private String getDefaultValueString() {
-		return this.defaultValueHolder.getValue();
-	}
-
-	protected WritablePropertyValueModel<String> buildSelectedItemStringHolder() {
-		return new TransformationWritablePropertyValueModel<Integer, String>(buildSelectedItemHolder()) {
-			@Override
-			protected String transform(Integer value) {
-				return value == null ? 
-						getDefaultValueString()
-					: 
-						value.toString();
-			}
-			
-			@Override
-			protected Integer reverseTransform_(String value) {
-				int intLength;
-				try {
-					intLength = Integer.parseInt(value);
-				}
-				catch (NumberFormatException e) {
-					//if the default is selected from the combo, set length to null
-					return null;
-				}
-				return Integer.valueOf(intLength);
-			}
-		};
-	}
-
-	// ********** abstract methods **********
-	
-	protected abstract String getLabelText();
-	
-	protected abstract String getHelpId();
-
-	protected abstract PropertyValueModel<Integer> buildDefaultHolder();
-	
-	protected abstract WritablePropertyValueModel<Integer> buildSelectedItemHolder();
-
-	// ********** combo-box verify listener callback **********
-
-	protected void verifyComboBox(VerifyEvent e) {
-		if (e.character == '\b') {
-			//ignore backspace
-			return;
-		}
-		if (e.text.equals("") //DefaultValueHandler sets the text to "" //$NON-NLS-1$
-				|| e.text.equals(this.defaultValueHolder.getValue())) { 
-			return;
-		}
-		try {
-			Integer.parseInt(e.text);
-		}
-		catch (NumberFormatException exception) {
-			e.doit = false;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java
deleted file mode 100644
index 3dd6355..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Collection;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * The dialog used to requests a name from the user.
- *
- * @version 2.0
- * @since 2.0
- */
-public class NewNameDialog extends ValidatingDialog<NewNameStateObject>
-{
-	private String description;
-	private Image descriptionImage;
-	private String descriptionTitle;
-	private String labelText;
-	private String name;
-	private Collection<String> names;
-
-	/**
-	 * Creates a new <code>NewNameDialog</code>.
-	 *
-	 * @param parentShell
-	 * @param dialogTitle
-	 * @param descriptionTitle
-	 * @param descriptionImage
-	 * @param description
-	 * @param labelText
-	 * @param name
-	 * @param names
-	 */
-	NewNameDialog(Shell parentShell,
-	              String dialogTitle,
-	              String descriptionTitle,
-	              Image descriptionImage,
-	              String description,
-	              String labelText,
-	              String name,
-	              Collection<String> names)
-	{
-		super(parentShell, dialogTitle);
-
-		this.name             = name;
-		this.names            = names;
-		this.labelText        = labelText;
-		this.description      = description;
-		this.descriptionImage = descriptionImage;
-		this.descriptionTitle = descriptionTitle;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected DialogPane<NewNameStateObject> buildLayout(Composite container) {
-		return new NewNameDialogPane(container);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected NewNameStateObject buildStateObject() {
-		return new NewNameStateObject(name, names);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public void create() {
-		super.create();
-
-		NewNameDialogPane pane = (NewNameDialogPane) getPane();
-		pane.selectAll();
-
-		getButton(OK).setEnabled(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected String getDescription() {
-		return description;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected Image getDescriptionImage() {
-		return descriptionImage;
-	}
-
-	/* (non-Javadoc)
-	 */
-	@Override
-	protected String getDescriptionTitle() {
-		return descriptionTitle;
-	}
-
-	/**
-	 * Returns the text field's input, which is the new name the user entered.
-	 *
-	 * @return The name the user entered
-	 */
-	public String getName() {
-		return getSubject().getName();
-	}
-
-	private class NewNameDialogPane extends DialogPane<NewNameStateObject> {
-
-		private Text text;
-
-		NewNameDialogPane(Composite parent) {
-			super(NewNameDialog.this.getSubjectHolder(), parent);
-		}
-
-		private WritablePropertyValueModel<String> buildNameHolder() {
-			return new PropertyAspectAdapter<NewNameStateObject, String>(getSubjectHolder(), NewNameStateObject.NAME_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return subject.getName();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setName(value);
-				}
-			};
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected void initializeLayout(Composite container) {
-
-			text = addLabeledText(
-				container,
-				labelText,
-				buildNameHolder()
-			);
-		}
-
-		void selectAll() {
-			text.selectAll();
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java
deleted file mode 100644
index 4142c07..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This builder is responsible to create a fully initialized
- * <code>NewNameDialog</code> once all the properties have been set.
- *
- * @see NewNameDialog
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class NewNameDialogBuilder {
-
-	/**
-	 * The message to show in the description area.
-	 */
-	private String description;
-
-	/**
-	 * The image of the description area.
-	 */
-	private Image descriptionImage;
-
-	/**
-	 * The title to show in the description area.
-	 */
-	private String descriptionTitle;
-
-	/**
-	 * The title of the new name dialog.
-	 */
-	private String dialogTitle;
-
-	/**
-	 * The text field's label.
-	 */
-	private String labelText;
-
-	/**
-	 * The initial input or <code>null</code> if no initial value can be
-	 * specified.
-	 */
-	private String name;
-
-	/**
-	 * The collection of names that can't be used or an empty collection if none
-	 * are available.
-	 */
-	private Collection<String> names;
-
-	/**
-	 * The parent shell of the new name dialog.
-	 */
-	private Shell parentShell;
-
-	/**
-	 * Creates a new <code>NewNameDialogBuilder</code>.
-	 *
-	 * @param parentShell The parent shell of the new name dialog
-	 */
-	public NewNameDialogBuilder(Shell parentShell) {
-		super();
-		initialize(parentShell);
-	}
-
-	/**
-	 * Creates the dialog that will be used to request a new name from the user.
-	 *
-	 * @return The initialized dialog
-	 */
-	public NewNameDialog buildDialog() {
-		return new NewNameDialog(
-			parentShell,
-			dialogTitle,
-			descriptionTitle,
-			descriptionImage,
-			description,
-			labelText,
-			name,
-			names
-		);
-	}
-
-	/**
-	 * Initializes this builder.
-	 *
-	 * @param parentShell The parent shell of the new name dialog
-	 */
-	protected void initialize(Shell parentShell) {
-
-		Assert.isNotNull(parentShell, "The parent shell cannot be null");
-
-		this.parentShell = parentShell;
-		this.names       = Collections.emptyList();
-	}
-
-	/**
-	 * Sets the description to be shown in the description area under the title.
-	 *
-	 * @param description The message to show in the description area
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * Sets the image to be shown to the right side of the description area.
-	 *
-	 * @param descriptionImage The image of the description area
-	 */
-	public void setDescriptionImage(Image descriptionImage) {
-		this.descriptionImage = descriptionImage;
-	}
-
-	/**
-	 * Sets the title to be shown in the description area.
-	 *
-	 * @param descriptionTitle The title to show in the description area
-	 */
-	public void setDescriptionTitle(String descriptionTitle) {
-		this.descriptionTitle = descriptionTitle;
-	}
-
-	/**
-	 * Sets the dialog's title.
-	 *
-	 * @param dialogTitle The title of the new name dialog
-	 */
-	public void setDialogTitle(String dialogTitle) {
-		this.dialogTitle = dialogTitle;
-	}
-
-	/**
-	 * Sets the existing names that will be used to validate the text field's
-	 * input and prevent the user from using it.
-	 *
-	 * @param names The collection of names that can't be used
-	 */
-	public void setExistingNames(Iterator<String> names) {
-		this.names = CollectionTools.collection(names);
-	}
-
-	/**
-	 * Sets the text to label the text field.
-	 *
-	 * @param labelText The text field's label
-	 */
-	public void setLabelText(String labelText) {
-		this.labelText = labelText;
-	}
-
-	/**
-	 * Sets the initial name if one exists. It is valid to leave this
-	 * <code>null</code> when the user has to enter something.
-	 *
-	 * @param name The initial input
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java
deleted file mode 100644
index f86bae2..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.Collection;
-import java.util.List;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.node.AbstractNode;
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.jpt.common.utility.internal.node.Problem;
-
-/**
- * This is the state object used by the <code>NewNameDialog</code>, which stores
- * the current name and validates it when it is modified.
- *
- * @see NewNameDialog
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-final class NewNameStateObject extends AbstractNode
-{
-	/**
-	 * The initial input or <code>null</code> if no initial value can be
-	 * specified.
-	 */
-	private String name;
-
-	/**
-	 * The collection of names that can't be used or an empty collection if none
-	 * are available.
-	 */
-	private Collection<String> names;
-
-	/**
-	 * The <code>Validator</code> used to validate this state object.
-	 */
-	private Validator validator;
-
-	/**
-	 * Notifies a change in the name property.
-	 */
-	static final String NAME_PROPERTY = "name";
-
-	/**
-	 * Creates a new <code>NewNameStateObject</code>.
-	 *
-	 * @param name The initial input or <code>null</code> if no initial value can
-	 * be specified
-	 * @param names The collection of names that can't be used or an empty
-	 * collection if none are available
-	 */
-	NewNameStateObject(String name, Collection<String> names) {
-		super(null);
-
-		this.name  = name;
-		this.names = names;
-	}
-
-	/**
-	 * Validates the name property.
-	 *
-	 * @param currentProblems The list to which <code>Problem</code>s can be
-	 * added
-	 */
-	private void addNameProblems(List<Problem> currentProblems) {
-
-		if (StringTools.stringIsEmpty(name)) {
-			currentProblems.add(buildProblem(JptCommonUiMessages.NewNameStateObject_nameMustBeSpecified, IMessageProvider.ERROR));
-		}
-		else if (names.contains(name.trim())) {
-			currentProblems.add(buildProblem(JptCommonUiMessages.NewNameStateObject_nameAlreadyExists, IMessageProvider.ERROR));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void addProblemsTo(List<Problem> currentProblems)
-	{
-		super.addProblemsTo(currentProblems);
-		addNameProblems(currentProblems);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void checkParent(Node parentNode) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public String displayString() {
-		return null;
-	}
-
-	/**
-	 * Returns the current name stored in this state object.
-	 *
-	 * @return The current name or <code>null</code>
-	 */
-	String getName() {
-		return name;
-	}
-
-	/**
-	 * Sets the current name stored in this state object or <code>null</code> to
-	 * clear it.
-	 *
-	 * @param name The new name or <code>null</code>
-	 */
-	public void setName(String name) {
-		String oldName = this.name;
-		this.name = name;
-		firePropertyChanged(NAME_PROPERTY, oldName, name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public void setValidator(Validator validator) {
-		this.validator = validator;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public Validator getValidator() {
-		return validator;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java
deleted file mode 100644
index 21e7420..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-/**
- * A <code>null</code> instance of <code>PostExecution</code>.
- *
- * @version 2.0
- * @since 1.0
- */
-public final class NullPostExecution implements PostExecution<Dialog> {
-
-	/**
-	 * The singleton instance of this <code>NullPostExecution</code>.
-	 */
-	private static PostExecution<Dialog> INSTANCE;
-
-	/**
-	 * Creates a new <code>NullPostExecution</code>.
-	 */
-	private NullPostExecution() {
-		super();
-	}
-
-	/**
-	 * Returns the singleton instance of this <code>NullPostExecution</code>.
-	 *
-	 * @param <T> The dialog where this <code>PostExecution</code> will be used
-	 * @return The singleton instance with the proper type
-	 */
-	@SuppressWarnings("unchecked")
-	public static synchronized <T extends Dialog> PostExecution<T> instance() {
-
-		if (INSTANCE == null) {
-			INSTANCE = new NullPostExecution();
-		}
-
-		return (PostExecution<T>) INSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	public void execute(Dialog dialog) {
-		// Nothing to do
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java
deleted file mode 100644
index cc9453c..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaPackageCompletionProcessor;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-/**
- * This chooser allows the user to choose a package when browsing and it adds
- * code completion support to the text field, which is the main component.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |       !---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @version 2.0
- * @since 2.0
- */
-public abstract class PackageChooserPane<T extends Model> extends ChooserPane<T>
-{
-	/**
-	 * The code completion manager.
-	 */
-	private JavaPackageCompletionProcessor javaPackageCompletionProcessor;
-
-	private PropertyChangeListener subjectChangeListener;
-
-	/**
-	 * Creates a new <code>PackageChooserPane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public PackageChooserPane(Pane<? extends T> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	/**
-	 * Creates a new <code>PackageChooserPane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public PackageChooserPane(Pane<?> parentPane,
-	                          PropertyValueModel<? extends T> subjectHolder,
-	                          Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-
-		// TODO bug 156185 - when this is fixed there should be api for this
-		this.javaPackageCompletionProcessor = new JavaPackageCompletionProcessor(
-			new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_ROOT)
-		);
-		this.subjectChangeListener = this.buildSubjectChangeListener();
-		this.getSubjectHolder().addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		this.packageChooserSubjectChanged(getSubject());
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent e) {
-				PackageChooserPane.this.packageChooserSubjectChanged((T) e.getNewValue());
-			}
-		};
-	}
-
-	protected void packageChooserSubjectChanged(T newSubject) {
-		IPackageFragmentRoot root = null;
-		if (newSubject != null) {
-			root = getPackageFragmentRoot();
-		}
-		this.javaPackageCompletionProcessor.setPackageFragmentRoot(root);
-	}
-
-	@Override
-	protected final Runnable buildBrowseAction() {
-		return new Runnable() {
-			public void run() {
-				promptPackage();
-			}
-		};
-	}
-
-	@Override
-	protected Control addMainControl(Composite container) {
-		Composite subPane = addSubPane(container);
-
-		Text text = addText(subPane, buildTextHolder());
-
-		Image image = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL).getImage();
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = image.getBounds().width;
-		text.setLayoutData(data);
-
-		ControlContentAssistHelper.createTextContentAssistant(
-			text,
-			javaPackageCompletionProcessor
-		);
-
-		return subPane;
-	}
-
-	/**
-	 * Creates the value holder of the subject's property.
-	 *
-	 * @return The holder of the package name
-	 */
-	protected abstract WritablePropertyValueModel<String> buildTextHolder();
-
-	/**
-	 * Prompts the user the Open Package dialog.
-	 *
-	 * @return Either the selected package or <code>null</code> if the user
-	 * cancelled the dialog
-	 */
-	protected IPackageFragment choosePackage() {
-
-		SelectionDialog selectionDialog;
-
-		try {
-			selectionDialog = JavaUI.createPackageDialog(
-				getShell(),
-				getPackageFragmentRoot()
-			);
-		}
-		catch (JavaModelException e) {
-			JptCommonUiPlugin.log(e);
-			return null;
-		}
-
-		selectionDialog.setTitle(JptCommonUiMessages.PackageChooserPane_dialogTitle);
-		selectionDialog.setMessage(JptCommonUiMessages.PackageChooserPane_dialogMessage);
-
-		IPackageFragment pack = getPackageFragment();
-
-		if (pack != null) {
-			selectionDialog.setInitialSelections(new Object[] { pack });
-		}
-
-		if (selectionDialog.open() == Window.OK) {
-			return (IPackageFragment) selectionDialog.getResult()[0];
-		}
-
-		return null;
-	}
-
-	protected abstract IJavaProject getJavaProject();
-
-	/**
-	 * Returns the package name from its subject.
-	 *
-	 * @return The package name or <code>null</code> if none is defined
-	 */
-	protected abstract String getPackageName();
-
-	/**
-	 * The browse button was clicked, its action invokes this action which should
-	 * prompt the user to select a package and set it.
-	 */
-	protected void promptPackage() {
-		IPackageFragment packageFragment = choosePackage();
-
-		if (packageFragment != null) {
-			String packageName = packageFragment.getElementName();
-			this.setPackageName(packageName);
-		}
-	}
-	
-	protected abstract void setPackageName(String packageName);
-
-	private IPackageFragment getPackageFragment() {
-		String packageName = getPackageName();
-
-		if (packageName == null) {
-			return null;
-		}
-
-		return getPackageFragmentRoot().getPackageFragment(packageName);
-	}
-
-	protected IPackageFragmentRoot getPackageFragmentRoot() {
-		return JDTTools.getCodeCompletionContextRoot(getJavaProject());
-	}
-
-	@Override
-	public void dispose() {
-		this.getSubjectHolder().removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		super.dispose();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java
deleted file mode 100644
index e1c0863..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java
+++ /dev/null
@@ -1,3722 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jpt.common.ui.WidgetFactory;
-import org.eclipse.jpt.common.ui.internal.Tracing;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.DateTimeModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.SpinnerModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TriStateCheckBoxModelAdapter;
-import org.eclipse.jpt.common.ui.internal.util.ControlAligner;
-import org.eclipse.jpt.common.ui.internal.util.LabeledButton;
-import org.eclipse.jpt.common.ui.internal.util.LabeledControlUpdater;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.NonNullBooleanTransformer;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.model.value.CompositeBooleanPropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * The abstract definition of a pane which holds onto a <code>PropertyValueModel</code>
- * that contains the subject of this pane.
- * <p>
- * It also contains convenience methods for building buttons, labels, check
- * boxes, and radio buttons, etc.
- * <p>
- * It is possible to easily listen to any property changes coming from the
- * subject, {@link #addPropertyNames(Collection)} is specify which properties
- * are of interest and {@link #propertyChanged(String)} is used to notify the
- * pane when the property has changed.
- *
- * @see FormPane
- * @see DialogPane
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public abstract class Pane<T extends Model>
-{
-	/**
-	 * The listener registered with the subject in order to be notified when a
-	 * property has changed, the property names are determined by
-	 * {@link #propertyNames()}.
-	 */
-	private PropertyChangeListener aspectChangeListener;
-
-	/**
-	 * The container of this composite.
-	 */
-	private final Composite container;
-
-	/**
-	 * The aligner responsible to align the left controls.
-	 */
-	private ControlAligner leftControlAligner;
-
-	/**
-	 * Flag used to stop the circular population of widgets.
-	 */
-	private boolean populating;
-
-	/**
-	 * The aligner responsible to align the left controls.
-	 */
-	private ControlAligner rightControlAligner;
-
-	/**
-	 * This listener is registered with the subject holder in order to
-	 * automatically repopulate this pane with the new subject.
-	 */
-	private PropertyChangeListener subjectChangeListener;
-
-	/**
-	 * The subject of this pane.
-	 */
-	private PropertyValueModel<T> subjectHolder;
-
-	/**
-	 * The collection of registered sub-panes will be automatically notified
-	 * when listeners need to be engaged or disengaged or when to populate its
-	 * widgets.
-	 */
-	private Collection<Pane<?>> subPanes;
-
-	/**
-	 * The factory used to create various common widgets.
-	 */
-	private WidgetFactory widgetFactory;
-
-	/**
-	 * The collection of <code>Control</code>s that are displayed in this pane,
-	 * which will have their enablement state updated when
-	 * {@link #enableWidgets(boolean)} is called.
-	 */
-	private ArrayList<Control> managedWidgets;
-	
-	/**
-	 * The collection of <code>Pane</code>s that are displayed in this pane,
-	 * which will have their enablement state updated when
-	 * {@link #enableWidgets(boolean)} is called.
-	 */
-	private ArrayList<Pane<?>> managedSubPanes;
-	
-	/**
-	 * This enabled model is used to store the pane's base enablement state.
-	 * If API is called to set the pane enabled, this model gets updated.  If the pane is thereby
-	 * fully enabled (controller enabled model is also in agreement) the pane's widgets are set
-	 * enabled.
-	 * @see #getCombinedEnabledModel()
-	 */
-	private final WritablePropertyValueModel<Boolean> baseEnabledModel 
-			= new SimplePropertyValueModel<Boolean>(Boolean.TRUE);
-	
-	/**
-	 * This enabled model is used to define the pane's enablement as controlled by other widgets,
-	 * tests, etc. (for example a radio button)
-	 * If this model is changed, and the pane is thereby fully enabled (base enabled model is also 
-	 * in agreement) the pane's widgets are set enabled.
-	 * @see #getCombinedEnabledModel()
-	 */
-	private PropertyValueModel<Boolean> controllerEnabledModel;
-	
-	/**
-	 * The "and" combination of {@link #baseEnabledModel} and {@link #controllerEnabledModel}
-	 */
-	private PropertyValueModel<Boolean> combinedEnabledModel;
-	
-	private PropertyChangeListener combinedEnabledModelListener;
-	
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<? extends T> parentPane,
-	        Composite parent) {
-		
-		this(parentPane, parent, true);
-	}
-
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent pane;
-	 * <code>false</code> to not align them
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<? extends T> parentPane,
-	        Composite parent,
-	        boolean automaticallyAlignWidgets) {
-		
-		this(
-			parentPane,
-			parentPane.getSubjectHolder(),
-			parent,
-			automaticallyAlignWidgets);
-	}
-
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent pane;
-	 * <code>false</code> to not align them
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<? extends T> parentPane,
-	        Composite parent,
-	        boolean automaticallyAlignWidgets,
-	        boolean parentManagePane) {
-		
-		this(
-			parentPane,
-			parentPane.getSubjectHolder(),
-			parent,
-			automaticallyAlignWidgets,
-			parentManagePane);
-	}
-
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<?> parentPane,
-	        PropertyValueModel<? extends T> subjectHolder,
-	        Composite parent) {
-		
-		this(parentPane, subjectHolder, parent, true);
-	}
-	
-	protected Pane(
-			Pane<?> parentPane,
-	        PropertyValueModel<? extends T> subjectHolder,
-	        Composite parent,
-	        PropertyValueModel<Boolean> enabledModel) {
-		
-		this(parentPane, subjectHolder, parent, true, enabledModel);
-	}
-
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent pane;
-	 * <code>false</code> to not align them
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			boolean automaticallyAlignWidgets) {
-		
-		this(parentPane, subjectHolder, parent, automaticallyAlignWidgets, true);
-	}
-	
-	protected Pane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			boolean automaticallyAlignWidgets,
-			PropertyValueModel<Boolean> enabledModel) {
-		
-		this(parentPane, subjectHolder, parent, automaticallyAlignWidgets, true, enabledModel);
-	}
-	
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various widgets
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent pane;
-	 * <code>false</code> to not align them
-	 * @param parentManagePane <code>true</code> to have the parent pane manage
-	 * the enabled state of this pane
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			boolean automaticallyAlignWidgets, 
-			boolean parentManagePane) {
-		
-		this(subjectHolder, parent, parentPane.getWidgetFactory());
-		this.initialize(parentPane, automaticallyAlignWidgets, parentManagePane);
-	}
-	
-	protected Pane(
-			Pane<?> parentPane,
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			boolean automaticallyAlignWidgets, 
-			boolean parentManagePane,
-			PropertyValueModel<Boolean> enabledModel) {
-		
-		this(subjectHolder, parent, parentPane.getWidgetFactory());
-		this.initialize(parentPane, automaticallyAlignWidgets, parentManagePane);
-		this.initializeEnabledModel(enabledModel);
-	}
-	
-	/**
-	 * Creates a new <code>Pane</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 *
-	 * @category Constructor
-	 */
-	protected Pane(
-			PropertyValueModel<? extends T> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		
-		super();
-		this.initialize(subjectHolder, widgetFactory);
-		this.container = this.addContainer(parent);
-		this.initializeLayout(this.container);
-		this.engageSubjectHolder();
-		this.engageListeners(getSubject());
-		this.populate();
-	}
-
-
-	// ********** initialization **********
-
-	@SuppressWarnings("unchecked")
-	private void initialize(
-			PropertyValueModel<? extends T> subjectHolder,
-	        WidgetFactory widgetFactory) {
-		
-		Assert.isNotNull(subjectHolder, "The subject holder cannot be null");
-
-		this.subjectHolder         = (PropertyValueModel<T>) subjectHolder;
-		this.widgetFactory         = widgetFactory;
-		this.subPanes              = new ArrayList<Pane<?>>();
-		this.managedWidgets        = new ArrayList<Control>();
-		this.managedSubPanes       = new ArrayList<Pane<?>>();
-		this.leftControlAligner    = new ControlAligner();
-		this.rightControlAligner   = new ControlAligner();
-		this.subjectChangeListener = this.buildSubjectChangeListener();
-		this.aspectChangeListener  = this.buildAspectChangeListener();
-		
-		this.initialize();
-	}
-
-	protected void initialize() {
-		// do nothing by default
-	}
-
-	/**
-	 * Registers this pane with the parent pane.
-	 *
-	 * @param parentPane The parent pane
-	 * @param automaticallyAlignWidgets <code>true</code> to make the widgets
-	 * this pane aligned with the widgets of the given parent pane;
-	 * <code>false</code> to not align them
-	 * @param parentManagePane <code>true</code> to have the parent pane manage
-	 * the enabled state of this pane
-	 *
-	 * @category Initialization
-	 */
-	private void initialize(
-			Pane<?> parentPane,
-			boolean automaticallyAlignWidgets,
-	        boolean parentManagePane) {
-		
-		// Register this pane with the parent pane, it will call the methods
-		// automatically (engageListeners(), disengageListeners(), populate(),
-		// dispose(), etc)
-		parentPane.registerSubPane(this);
-		
-		if (parentManagePane) {
-			parentPane.manageSubPane(this);
-		}
-		
-		// Align the left and right controls with the controls from the parent
-		// pane
-		if (automaticallyAlignWidgets) {
-			parentPane.addAlignLeft(this);
-			parentPane.addAlignRight(this);
-		}
-	}
-	
-	private void initializeEnabledModel(PropertyValueModel<Boolean> enabledModel) {
-		this.controllerEnabledModel = enabledModel;
-		this.combinedEnabledModel = 
-				CompositeBooleanPropertyValueModel.and(this.baseEnabledModel, this.controllerEnabledModel);
-		this.combinedEnabledModelListener = buildCombinedEnabledModelListener();
-		this.combinedEnabledModel.addPropertyChangeListener(
-				PropertyValueModel.VALUE, this.combinedEnabledModelListener);
-		enableWidgets_(getCombinedEnablement());
-	}
-	
-	private PropertyChangeListener buildCombinedEnabledModelListener() {
-		return new SWTPropertyChangeListenerWrapper(buildControllerEnabledModelListener_());
-	}
-	
-	private PropertyChangeListener buildControllerEnabledModelListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent e) {
-				Pane.this.controllerEnablementChanged();
-			}
-		};
-	}
-	
-	/**
-	 * Initializes the layout of this pane.
-	 *
-	 * @param container The parent container
-	 *
-	 * @category Layout
-	 */
-	protected abstract void initializeLayout(Composite container);
-
-	private void manageWidget(Control control) {
-		if (this.managedWidgets.contains(control)) {
-			throw new IllegalStateException();
-		}
-		this.managedWidgets.add(control);
-	}
-	
-	private void manageSubPane(Pane<?> subPane) {
-		if (this.managedSubPanes.contains(subPane)) {
-			throw new IllegalStateException();
-		}
-		this.managedSubPanes.add(subPane);
-	}
-
-	/**
-	 * Adds the given pane's widgets (those that were registered with its
-	 * left <code>ControlAligner</code>) to this pane's left
-	 * <code>ControlAligner</code> so that their width can be adjusted to have
-	 * the width of the widest widget.
-	 *
-	 * @param pane The pane containing the widgets to add
-	 *
-	 * @category Layout
-	 */
-	protected final void addAlignLeft(Pane<?> container) {
-		this.leftControlAligner.add(container.leftControlAligner);
-	}
-
-	/**
-	 * Adds the given control to the collection of widgets that have their width
-	 * adjust with the width of the widest widget. The left alignment is usually
-	 * used for labels.
-	 *
-	 * @param pane The pane to add
-	 *
-	 * @category Layout
-	 */
-	protected final void addAlignLeft(Control control) {
-		this.leftControlAligner.add(control);
-	}
-
-	/**
-	 * Adds the given pane's widgets (those that were registered with its
-	 * right <code>ControlAligner</code>) to this pane's right
-	 * <code>ControlAligner</code> so that their width can be adjusted to have
-	 * the width of the widest widget.
-	 *
-	 * @param pane The pane containing the widgets to add
-	 *
-	 * @category Layout
-	 */
-	protected final void addAlignRight(Pane<?> container) {
-		this.rightControlAligner.add(container.rightControlAligner);
-	}
-
-	/**
-	 * Adds the given control to the collection of widgets that have their width
-	 * adjust with the width of the widest widget. The left alignment is usually
-	 * used for buttons.
-	 *
-	 * @param pane The pane to add
-	 *
-	 * @category Layout
-	 */
-	protected final void addAlignRight(Control control) {
-		this.rightControlAligner.add(control);
-	}
-
-	/**
-	 * Adds the given pane's controls (those that were registered for
-	 * alignment) from this pane.
-	 *
-	 * @param pane The pane containing the widgets to add for
-	 * alignment
-	 *
-	 * @category Layout
-	 */
-	protected final void addPaneForAlignment(Pane<?> container) {
-		addAlignLeft(container);
-		addAlignRight(container);
-	}
-
-	/**
-	 * Adds any property names to the given collection in order to be notified
-	 * when the actual property changes in the subject.
-	 *
-	 * @param propertyNames The collection of property names to register with the
-	 * subject
-	 */
-	protected void addPropertyNames(Collection<String> propertyNames) {
-	}
-
-	private PropertyChangeListener buildAspectChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(buildAspectChangeListener_());
-	}
-
-	private PropertyChangeListener buildAspectChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				//subject() could have changed or is null because of the possibility of
-				//"jumping" on the UI thread here and a selection change occuring
-				if (e.getSource() == getSubject()) {
-					updatePane(e.getPropertyName());
-				}
-			}
-		};
-	}
-
-	/**
-	 * Creates a new button using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addButton(Composite container,
-	                                   String text,
-	                                   final Runnable buttonAction) {
-
-		return this.addButton(container, text, null, buttonAction);
-	}
-	
-	/**
-	 * Creates a new unmanaged <code>Button</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addUnmanagedButton(Composite container,
-	                                   String text,
-	                                   final Runnable buttonAction) {
-
-		return this.addUnmanagedButton(container, text, null, buttonAction);
-	}
-
-	/**
-	 * Creates a new button using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param helpId The topic help ID to be registered for the new check box
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addButton(Composite container,
-	                                   String text,
-	                                   String helpId,
-	                                   final Runnable buttonAction) {
-
-		Button button = addUnmanagedButton(container, text, helpId, buttonAction);
-		this.manageWidget(button);
-
-		return button;
-	}
-	
-	/**
-	 * Creates a new unmanaged <code>Button</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param helpId The topic help ID to be registered for the new check box
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	private Button addUnmanagedButton(Composite container,
-	                                   String text,
-	                                   String helpId,
-	                                   final Runnable buttonAction) {
-
-		Button button = this.widgetFactory.createButton(container, text);
-		button.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				SWTUtil.asyncExec(buttonAction);
-			}
-		});
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(button, helpId);
-		}
-
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = false;
-		gridData.horizontalAlignment       = GridData.FILL;
-		button.setLayoutData(gridData);
-
-		return button;
-	}
-
-	/**
-	 * This layout will leave space for decorations on widgets.
-	 * Whether decorated or not, all of the widgets need the same indent
- 	 * so that they align properly.
-	 */
-	protected GridData getFieldGridData() {
-		int margin = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin;
-		data.horizontalIndent = margin;
-		data.grabExcessHorizontalSpace = true;
-		return data;
-	}
-
-	/**
-	 * Creates a new check box using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param booleanHolder The holder of the selection state
-	 * @param helpId The topic help ID to be registered for the new check box
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addCheckBox(
-			Composite parent,
-	        String buttonText,
-	        WritablePropertyValueModel<Boolean> booleanHolder,
-	        String helpId) {
-		
-		return this.addToggleButton(
-			parent,
-			buttonText,
-			booleanHolder,
-			helpId,
-			SWT.CHECK);
-	}
-	
-	protected final Button addCheckBox(
-			Composite parent,
-			String buttonText,
-			WritablePropertyValueModel<Boolean> booleanHolder,
-			String helpId,
-			PropertyValueModel<Boolean> enabledModel) {
-		
-		Button button = this.addUnmanagedToggleButton(parent, buttonText, booleanHolder, helpId, SWT.CHECK);
-		this.controlEnabledState(enabledModel, button);
-		return button;
-	}
-	
-	/**
-	 * Creates a new <code>Section</code> that can be collapsed. A sub-pane is
-	 * automatically added as its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addCollapsibleSection(
-			Composite container,
-	        String sectionText) {
-		
-		return this.addCollapsibleSection(
-				container,
-				sectionText,
-				new SimplePropertyValueModel<Boolean>(Boolean.FALSE));
-	}
-	
-	/**
-	 * Creates a new <code>Section</code> that can be collapsed. A sub-pane is
-	 * automatically added as its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param description The section's description or <code>null</code> if none
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addCollapsibleSection(Composite container,
-	                                                  String sectionText,
-	                                                  String description) {
-
-		return this.addCollapsibleSection(
-			container,
-			sectionText,
-			description,
-			new SimplePropertyValueModel<Boolean>(Boolean.FALSE)
-		);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param type The type of section to create
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	private Composite addCollapsibleSection(Composite container,
-	                                          String sectionText,
-	                                          int type,
-	                                          PropertyValueModel<Boolean> expandedStateHolder) {
-		
-		return addCollapsibleSection(container, sectionText, null, type, expandedStateHolder);
-	}
-	
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param description The section's description or <code>null</code> if none
-	 * was provided
-	 * @param type The type of section to create
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	private Composite addCollapsibleSection(Composite container,
-	                                          String sectionText,
-	                                          String description,
-	                                          int type,
-	                                          PropertyValueModel<Boolean> expandedStateHolder) {
-
-		Composite subPane = this.addSection(
-			container,
-			sectionText,
-			description,
-			ExpandableComposite.TWISTIE | type
-		);
-
-		Section section = (Section) subPane.getParent();
-
-		expandedStateHolder.addPropertyChangeListener(
-			PropertyValueModel.VALUE,
-			buildExpandedStateChangeListener(section)
-		);
-
-		section.setExpanded(
-			expandedStateHolder.getValue() != null ? expandedStateHolder.getValue() : true
-		);
-
-		return subPane;
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addCollapsibleSection(Composite container,
-	                                                  String sectionText,
-	                                                  PropertyValueModel<Boolean> expandedStateHolder) {
-
-		return this.addCollapsibleSection(
-			container,
-			sectionText,
-			ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE,
-			expandedStateHolder
-		);
-	}
-	
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param description The section's description or <code>null</code> if none
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addCollapsibleSection(Composite container,
-	                                                  String sectionText,
-	                                                  String description,
-	                                                  PropertyValueModel<Boolean> expandedStateHolder) {
-
-		return this.addCollapsibleSection(
-			container,
-			sectionText,
-			description,
-			ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE,
-			expandedStateHolder
-		);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client which can be typed cast directly as a <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addCollapsibleSubSection(Composite container,
-	                                          String sectionText,
-	                                          PropertyValueModel<Boolean> expandedStateHolder) {
-
-		return this.addCollapsibleSection(
-			container,
-			sectionText,
-			SWT.NULL,
-			expandedStateHolder
-		);
-	}
-
-	/**
-	 * Creates a new non-editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Combo addCombo(Composite container) {
-		Combo combo = this.addUnmanagedCombo(container);
-		this.manageWidget(combo);
-		return combo;
-	}
-
-	/**
-	 * Creates a new non-editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	private Combo addUnmanagedCombo(Composite container) {
-		Combo combo = this.widgetFactory.createCombo(container);
-		combo.setLayoutData(getFieldGridData());
-		return combo;
-	}
-
-	/**
-	 * Creates a new non-editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addCombo(Composite container,
-	                                     ListValueModel<V> listHolder,
-	                                     WritablePropertyValueModel<V> selectedItemHolder,
-	                                     StringConverter<V> stringConverter) {
-
-		Combo combo = this.addCombo(container);
-
-		ComboModelAdapter.adapt(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			stringConverter
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new non-editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	private <V> Combo addUnmanagedCombo(Composite container,
-	                                     ListValueModel<V> listHolder,
-	                                     WritablePropertyValueModel<V> selectedItemHolder,
-	                                     StringConverter<V> stringConverter) {
-
-		Combo combo = this.addUnmanagedCombo(container);
-
-		ComboModelAdapter.adapt(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			stringConverter
-		);
-
-		return combo;
-	}
-
-	protected final <V> Combo addCombo(
-			Composite container,
-			ListValueModel<V> listHolder,
-			WritablePropertyValueModel<V> selectedItemHolder,
-			StringConverter<V> stringConverter,
-			PropertyValueModel<Boolean> enabledModel) {
-		
-		Combo combo = this.addUnmanagedCombo(container, listHolder, selectedItemHolder, stringConverter);
-		this.controlEnabledState(enabledModel, combo);
-		return combo;
-	}
-
-	/**
-	 * Creates a new <code>ComboViewer</code> using a <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param labelProvider The provider responsible to convert the combo's items
-	 * into human readable strings
-	 * @return The newly created <code>ComboViewer</code>
-	 *
-	 * @category Layout
-	 */
-	protected final ComboViewer addComboViewer(Composite container,
-	                                             IBaseLabelProvider labelProvider) {
-
-		Combo combo = this.addCombo(container);
-		ComboViewer viewer = new ComboViewer(combo);
-		viewer.setLabelProvider(labelProvider);
-		return viewer;
-	}
-
-	/**
-	 * Creates the main container of this pane. The layout and layout data are
-	 * automatically set.
-	 *
-	 * @param parent The parent container
-	 * @return The newly created <code>Composite</code> that will holds all the
-	 * widgets created by this pane through {@link #initializeLayout(Composite)}
-	 *
-	 * @category Layout
-	 */
-	protected Composite addContainer(Composite parent) {
-		return this.addSubPane(parent);
-	}
-	
-	protected final <V> Combo addEditableCombo(
-			Composite container,
-			ListValueModel<V> listHolder,
-			WritablePropertyValueModel<V> selectedItemHolder,
-			StringConverter<V> stringConverter,
-			PropertyValueModel<Boolean> enabledModel) {
-		
-		Combo combo = this.addUnmanagedEditableCombo(container, listHolder, selectedItemHolder, stringConverter);
-		this.controlEnabledState(enabledModel, combo);
-		return combo;
-	}
-	
-	protected final Combo addEditableCombo(
-			Composite container) {
-		
-		Combo combo = this.widgetFactory.createEditableCombo(container);
-		combo.setLayoutData(getFieldGridData());
-		this.manageWidget(combo);
-		return combo;
-	}
-	
-	/**
-	 * Creates a new editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addEditableCombo(Composite container,
-	                                             ListValueModel<V> listHolder,
-	                                             WritablePropertyValueModel<V> selectedItemHolder,
-	                                             StringConverter<V> stringConverter) {
-
-		Combo combo = this.addEditableCombo(container);
-
-		ComboModelAdapter.adapt(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			stringConverter
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new editable <code>ComboViewer</code> using a <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param labelProvider The provider responsible to convert the combo's items
-	 * into human readable strings
-	 * @return The newly created <code>ComboViewer</code>
-	 *
-	 * @category Layout
-	 */
-	protected final ComboViewer addEditableComboViewer(Composite container,
-	                                                     IBaseLabelProvider labelProvider) {
-
-		Combo combo = this.addEditableCombo(container);
-		ComboViewer viewer = new ComboViewer(combo);
-		viewer.setLabelProvider(labelProvider);
-		return viewer;
-	}
-
-	private PropertyChangeListener buildExpandedStateChangeListener(final Section section) {
-		return new SWTPropertyChangeListenerWrapper(buildExpandedStateChangeListener_(section));
-	}
-
-	private PropertyChangeListener buildExpandedStateChangeListener_(final Section section) {
-		return new PropertyChangeListener() {
-			public void propertyChanged(final PropertyChangeEvent e) {
-				Boolean value = (Boolean) e.getNewValue();
-				if (value == null) {
-					value = Boolean.TRUE;
-				}
-				section.setExpanded(value);
-			}
-		};
-	}
-
-	/**
-	 * Creates a new <code>Hyperlink</code> that will invoked the given
-	 * <code>Runnable</code> when selected. The given action is always invoked
-	 * from the UI thread.
-	 *
-	 * @param parent The parent container
-	 * @param text The hyperlink's text
-	 * @param hyperLinkAction The action to be invoked when the link was selected
-	 * return The newly created <code>Hyperlink</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Hyperlink addHyperlink(Composite parent,
-	                                         String text,
-	                                         final Runnable hyperLinkAction) {
-
-		Hyperlink link = this.widgetFactory.createHyperlink(parent, text);
-		this.manageWidget(link);
-
-		link.addMouseListener(new MouseAdapter() {
-			@Override
-			public void mouseUp(MouseEvent e) {
-
-				Hyperlink hyperLink = (Hyperlink) e.widget;
-
-				if (hyperLink.isEnabled()) {
-					SWTUtil.asyncExec(hyperLinkAction);
-				}
-			}
-		});
-
-		return link;
-	}
-
-	/**
-	 * Creates a new label using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param labelText The label's text
-	 *
-	 * @category Layout
-	 */
-	protected final Label addLabel(Composite container,
-	                                 String labelText) {
-		
-		Label label = addUnmanagedLabel(container, labelText);
-		manageWidget(label);
-		return label;
-	}
-
-	protected final Label addLabel(
-			Composite container,
-			String labelText,
-			PropertyValueModel<Boolean> enabledModel
-	) {
-		Label label = this.addUnmanagedLabel(container, labelText);
-		this.controlEnabledState(enabledModel, label);
-		return label;
-	}
-
-	/**
-	 * Creates a new unmanaged <code>Label</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param labelText The label's text
-	 *
-	 * @category Layout
-	 */
-	private Label addUnmanagedLabel(Composite container,
-	                                 String labelText) {
-
-		return this.widgetFactory.createLabel(container, labelText);
-	}
-
-	/**
-	 * Creates a new container that will have a non-editable combo labeled with
-	 * the given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addLabeledCombo(Composite container,
-	                                            String labelText,
-	                                            ListValueModel<V> listHolder,
-	                                            WritablePropertyValueModel<V> selectedItemHolder,
-	                                            StringConverter<V> stringConverter,
-	                                            Control rightControl,
-	                                            String helpId) {
-
-		Combo combo = this.addCombo(
-			container,
-			listHolder,
-			selectedItemHolder,
-			stringConverter
-		);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			(combo.getParent() != container) ? combo.getParent() : combo,
-			rightControl,
-			helpId
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new container that will have a non-editable combo labeled with
-	 * the given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addLabeledCombo(Composite container,
-	                                            String labelText,
-	                                            ListValueModel<V> listHolder,
-	                                            WritablePropertyValueModel<V> selectedItemHolder,
-	                                            StringConverter<V> stringConverter,
-	                                            String helpId) {
-
-		return this.addLabeledCombo(
-			container,
-			labelText,
-			listHolder,
-			selectedItemHolder,
-			stringConverter,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center control labeled
-	 * with the given label.
-	 *
-	 * @param container The parent container
-	 * @param leftControl The widget shown to the left of the main widget
-	 * @param centerControl The main widget
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-													Control leftControl,
-	                                                Control centerControl,
-	                                                Control rightControl,
-	                                                String helpId) {
-
-		// Container for the label and main composite
-		container = this.addSubPane(container, 3, 0, 0, 0, 0);
-
-		// Left control
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.BEGINNING;
-		gridData.grabExcessHorizontalSpace = false;
-		leftControl.setLayoutData(gridData);
-
-		// Re-parent the left control to the new sub pane
-		leftControl.setParent(container);
-		this.addAlignLeft(leftControl);
-
-
-		// Re-parent the center control to the new sub pane
-		centerControl.setParent(container);
-
-		// Register the help id for the center control
-		if (helpId != null) {
-			getHelpSystem().setHelp(centerControl, helpId);
-		}
-
-		// Right control
-		if (rightControl == null) {
-			Composite spacer = this.addPane(container);
-			spacer.setLayout(this.buildSpacerLayout());
-			rightControl = spacer;
-		}
-		else {
-			rightControl.setParent(container);
-
-			// Register the help id for the right control
-			if (helpId != null) {
-				getHelpSystem().setHelp(rightControl, helpId);
-			}
-		}
-
-		gridData = new GridData();
-		gridData.horizontalAlignment       = GridData.FILL_HORIZONTAL;
-		gridData.grabExcessHorizontalSpace = false;
-
-		rightControl.setLayoutData(gridData);
-		this.addAlignRight(rightControl);
-
-		return container;
-	}
-	
-	/**
-	 * Creates a new container that will have the given center control labeled
-	 * with the given label.
-	 *
-	 * @param container The parent container
-	 * @param label The label used to describe the center control
-	 * @param centerControl The main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * control
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-													Control label,
-	                                                Control centerControl,
-	                                                String helpId) {
-
-		return this.addLabeledComposite(
-			container,
-			label,
-			centerControl,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center composite labeled
-	 * with the given label text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text to label the main composite
-	 * @param centerPane The main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-	                                                String labelText,
-	                                                Pane<?> centerPane,
-	                                                String helpId) {
-
-		return this.addLabeledComposite(
-			container,
-			labelText,
-			centerPane.getControl(),
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center composite labeled
-	 * with the given label text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text to label the main composite
-	 * @param centerControl The main widget
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-	                                                String labelText,
-	                                                Control centerControl) {
-
-
-		return this.addLabeledComposite(
-			container,
-			labelText,
-			centerControl,
-			null,
-			null
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center composite labeled
-	 * with the given label text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text to label the main composite
-	 * @param centerControl The main widget
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-	                                                String labelText,
-	                                                Control centerControl,
-	                                                Control rightControl,
-	                                                String helpId) {
-
-		return this.addLabeledComposite(
-			container,
-			this.addLabel(container, labelText),
-			centerControl,
-			rightControl,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center composite labeled
-	 * with the given label text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text to label the main composite
-	 * @param centerControl The main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The container of the label and the given center control
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addLabeledComposite(Composite container,
-	                                                String labelText,
-	                                                Control centerControl,
-	                                                String helpId) {
-
-		Label label = this.addLabel(container, labelText);
-
-		return this.addLabeledComposite(
-			container,
-			label,
-			centerControl,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center control labeled
-	 * with the given label.
-	 *
-	 * @param container The parent container
-	 * @param leftControl The widget shown to the left of the main widget
-	 * @param centerControl The main widget
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Combo addLabeledEditableCombo(Composite container,
-	                                                  String labelText,
-	                                                  ModifyListener comboListener,
-	                                                  Control rightControl,
-	                                                  String helpId) {
-
-		Combo combo = this.addEditableCombo(container);
-		combo.addModifyListener(comboListener);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			(combo.getParent() != container) ? combo.getParent() : combo,
-			rightControl,
-			helpId
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new container that will have an editable combo labeled with the
-	 * given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param comboListener The listener that will be notified when the selection
-	 * changes
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Combo addLabeledEditableCombo(Composite container,
-	                                                  String labelText,
-	                                                  ModifyListener comboListener,
-	                                                  String helpId) {
-
-		return this.addLabeledEditableCombo(
-			container,
-			labelText,
-			comboListener,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center control labeled
-	 * with the given label.
-	 *
-	 * @param container The parent container
-	 * @param leftControl The widget shown to the left of the main widget
-	 * @param centerControl The main widget
-	 * @param labelProvider The provider responsible to convert the combo's items
-	 * into human readable strings
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Combo addLabeledEditableComboViewer(Composite container,
-	                                                        String labelText,
-	                                                        ModifyListener comboListener,
-	                                                        ILabelProvider labelProvider,
-	                                                        Control rightControl,
-	                                                        String helpId) {
-
-		ComboViewer comboViewer = this.addEditableComboViewer(
-			container,
-			labelProvider
-		);
-
-		Combo combo = comboViewer.getCombo();
-		combo.addModifyListener(comboListener);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			(combo.getParent() != container) ? combo.getParent() : combo,
-			rightControl,
-			helpId
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new container that will have an editable combo labeled with the
-	 * given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param comboListener The listener that will be notified when the selection
-	 * changes
-	 * @param labelProvider The provider responsible to convert the combo's items
-	 * into human readable strings
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Combo addLabeledEditableComboViewer(Composite container,
-	                                                        String labelText,
-	                                                        ModifyListener comboListener,
-	                                                        ILabelProvider labelProvider,
-	                                                        String helpId) {
-
-		return this.addLabeledEditableComboViewer(
-			container,
-			labelText,
-			comboListener,
-			labelProvider,
-			null,
-			helpId
-		);
-	}
-	
-	/**
-	 * Creates a new container that will have an editable combo labeled with the
-	 * given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param helpId The topic help ID to be registered for the given center
-	 * composite
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addLabeledEditableCombo(Composite container,
-	                                                      String labelText,
-	                                                      ListValueModel<V> listHolder,
-	                                                      WritablePropertyValueModel<V> selectedItemHolder,
-	                                                      String helpId) {
-
-		return this.addLabeledEditableCombo(
-			container,
-			labelText,
-			listHolder,
-			selectedItemHolder,
-			StringConverter.Default.<V>instance(),
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have the given center control labeled
-	 * with the given label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @param rightControl The control shown to the right of the main widget
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addLabeledEditableCombo(Composite container,
-	                                                    String labelText,
-	                                                    ListValueModel<V> listHolder,
-	                                                    WritablePropertyValueModel<V> selectedItemHolder,
-	                                                    StringConverter<V> stringConverter,
-	                                                    Control rightControl,
-	                                                    String helpId) {
-
-		Combo combo = this.addEditableCombo(
-			container,
-			listHolder,
-			selectedItemHolder,
-			stringConverter
-		);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			(combo.getParent() != container) ? combo.getParent() : combo,
-			rightControl,
-			helpId
-		);
-
-		return combo;
-	}
-
-	/**
-	 * Creates a new container that will have an editable combo labeled with the
-	 * given text.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text of the label
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @param helpId The topic help ID to be registered for the given center
-	 * compositer
-	 * @return The newly created <code>Combo</code>
-	 *
-	 * @category Layout
-	 */
-	protected final <V> Combo addLabeledEditableCombo(Composite container,
-	                                                    String labelText,
-	                                                    ListValueModel<V> listHolder,
-	                                                    WritablePropertyValueModel<V> selectedItemHolder,
-	                                                    StringConverter<V> stringConverter,
-	                                                    String helpId) {
-
-		return this.addLabeledEditableCombo(
-			container,
-			labelText,
-			listHolder,
-			selectedItemHolder,
-			stringConverter,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text area's label
-	 * @param textHolder The holder of the text field's input
-	 * @param lineCount The number of lines the text area should display
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledMultiLineText(Composite container,
-	                                               String labelText,
-	                                               WritablePropertyValueModel<String> textHolder,
-	                                               int lineCount,
-	                                               String helpId) {
-
-		Text text = this.addMultiLineText(container, textHolder, lineCount);
-
-		container = this.addLabeledComposite(
-			container,
-			labelText,
-			text,
-			helpId
-		);
-
-		int textHeight = text.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-
-		// Specify the number of lines the text area should display
-		GridData gridData = (GridData) text.getLayoutData();
-		gridData.heightHint = text.getLineHeight() * lineCount;
-
-		// Move the label to the top of its cell
-		Control label = container.getChildren()[0];
-		int labelHeight = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-
-		gridData = (GridData) label.getLayoutData();
-		gridData.verticalAlignment = SWT.TOP;
-		gridData.verticalIndent   += (Math.abs(textHeight - labelHeight) / 2);
-
-		return text;
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledPasswordText(Composite container,
-	                                              String labelText,
-	                                              WritablePropertyValueModel<String> textHolder) {
-
-		return this.addLabeledPasswordText(
-			container,
-			labelText,
-			textHolder,
-			null
-		);
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text field's label
-	 * @param rightComponent The component to be placed to the right of the text
-	 * field
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledPasswordText(Composite container,
-	                                              String labelText,
-	                                              WritablePropertyValueModel<String> textHolder,
-	                                              Control rightControl,
-	                                              String helpId) {
-
-		Text text = this.addPasswordText(container, textHolder);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			text,
-			rightControl,
-			helpId
-		);
-
-		return text;
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledPasswordText(Composite container,
-	                                              String labelText,
-	                                              WritablePropertyValueModel<String> textHolder,
-	                                              String helpId) {
-
-		return this.addLabeledPasswordText(
-			container,
-			labelText,
-			textHolder,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new spinner.
-	 *
-	 * @param parent The parent container
-	 * @param labelText The label's text
-	 * @param numberHolder The holder of the integer value
-	 * @param defaultValue The value shown when the holder has <code>null</code>
-	 * @param minimumValue The minimum value that the spinner will allow
-	 * @param maximumValue The maximum value that the spinner will allow
-	 * @param rightControl The widget to be placed to the right of spinner
-	 * @param helpId The topic help ID to be registered for the spinner
-	 * @return The newly created <code>Spinner</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Spinner addLabeledSpinner(Composite parent,
-	                                            String labelText,
-	                                            WritablePropertyValueModel<Integer> numberHolder,
-	                                            int defaultValue,
-	                                            int minimumValue,
-	                                            int maximumValue,
-	                                            Control rightControl,
-	                                            String helpId) {
-
-		Spinner spinner = this.addSpinner(
-			parent,
-			numberHolder,
-			defaultValue,
-			minimumValue,
-			maximumValue,
-			helpId
-		);
-		Label label = addLabel(parent, labelText);
-		addLabeledComposite(
-			parent,
-			label,
-			(spinner.getParent() != parent) ? spinner.getParent() : spinner,
-			rightControl,
-			helpId
-		);
-
-		GridData gridData = (GridData) spinner.getLayoutData();
-		gridData.horizontalAlignment = GridData.BEGINNING;
-
-		return spinner;
-	}
-
-	/**
-	 * Creates a new managed spinner. Managed means that this Pane will
-	 * handle enabling/disabling of this widget if a PaneEnabler is used.  
-	 *
-	 * @param parent The parent container
-	 * @param numberHolder The holder of the integer value
-	 * @param defaultValue The value shown when the holder has <code>null</code>
-	 * @param minimumValue The minimum value that the spinner will allow
-	 * @param maximumValue The maximum value that the spinner will allow
-	 * @param helpId The topic help ID to be registered for the new button
-	 * @return The newly created <code>Spinner</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Spinner addSpinner(Composite parent,
-	                                     WritablePropertyValueModel<Integer> numberHolder,
-	                                     int defaultValue,
-	                                     int minimumValue,
-	                                     int maximumValue,
-	                                     String helpId) {
-
-		Spinner spinner = addUnmanagedSpinner(parent, numberHolder, defaultValue, minimumValue, maximumValue, helpId);
-		this.manageWidget(spinner);
-		return spinner;
-	}
-
-	/**
-	 * Creates a new unmanaged spinner.  Unmanaged means that this Pane will
-	 * not handle the enabling/disabling of this widget.  The owning object will handle
-	 * it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param numberHolder The holder of the integer value
-	 * @param defaultValue The value shown when the holder has <code>null</code>
-	 * @param minimumValue The minimum value that the spinner will allow
-	 * @param maximumValue The maximum value that the spinner will allow
-	 * @param helpId The topic help ID to be registered for the new button
-	 * @return The newly created <code>Spinner</code>
-	 *
-	 * @category Layout
-	 */
-	private Spinner addUnmanagedSpinner(Composite parent,
-	                                     WritablePropertyValueModel<Integer> numberHolder,
-	                                     int defaultValue,
-	                                     int minimumValue,
-	                                     int maximumValue,
-	                                     String helpId) {
-
-		Spinner spinner = this.widgetFactory.createSpinner(parent);
-		spinner.setMinimum(minimumValue);
-		spinner.setMaximum(maximumValue);
-		GridData gridData = getFieldGridData();
-		gridData.grabExcessHorizontalSpace = false;
-		spinner.setLayoutData(gridData);
-
-		SpinnerModelAdapter.adapt(numberHolder, spinner, defaultValue);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(spinner, helpId);
-		}
-
-		return spinner;
-	}
-	
-	/**
-	 * Creates a new managed DateTime of type SWT.TIME.  Managed means that this Pane will
-	 * handle enabling/disabling of this widget if a PaneEnabler is used.  
-	 *
-	 * @param parent The parent container
-	 * @param hoursHolder The holder of the hours integer value
-	 * @param minutesHolder The holder of the minutes integer value
-	 * @param secondsHolder The holder of the seconds integer value
-	 * @param helpId The topic help ID to be registered for the new dateTime
-	 * @return The newly created <code>DateTime</code>
-	 *
-	 * @category Layout
-	 */
-	protected final DateTime addDateTime(Composite parent,
-											WritablePropertyValueModel<Integer> hoursHolder,
-											WritablePropertyValueModel<Integer> minutesHolder,
-											WritablePropertyValueModel<Integer> secondsHolder,
-											String helpId) {
-		
-		DateTime dateTime = this.addUnmanagedDateTime(parent, hoursHolder, minutesHolder, secondsHolder, helpId);
-		this.manageWidget(dateTime);
-
-		return dateTime;
-	}
-
-	protected final DateTime addDateTime(
-			Composite parent,
-			WritablePropertyValueModel<Integer> hoursHolder,
-			WritablePropertyValueModel<Integer> minutesHolder,
-			WritablePropertyValueModel<Integer> secondsHolder,
-			String helpId,
-			PropertyValueModel<Boolean> enabledModel
-	) {
-		DateTime dateTime = this.addUnmanagedDateTime(parent, hoursHolder, minutesHolder, secondsHolder, helpId);
-		this.controlEnabledState(enabledModel, dateTime);
-		return dateTime;
-	}
-
-	/**
-	 * Creates a new unmanaged DateTime of type SWT.TIME.  Unmanaged means that this Pane will
-	 * not handle the enabling/disabling of this widget.  The owning object will handle
-	 * it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param hoursHolder The holder of the hours integer value
-	 * @param minutesHolder The holder of the minutes integer value
-	 * @param secondsHolder The holder of the seconds integer value
-	 * @param helpId The topic help ID to be registered for the new dateTime
-	 * @return The newly created <code>DateTime</code>
-	 *
-	 * @category Layout
-	 */
-	private DateTime addUnmanagedDateTime(Composite parent,
-											WritablePropertyValueModel<Integer> hoursHolder,
-											WritablePropertyValueModel<Integer> minutesHolder,
-											WritablePropertyValueModel<Integer> secondsHolder,
-											String helpId) {
-		
-		DateTime dateTime = this.widgetFactory.createDateTime(parent, SWT.TIME);
-		
-		DateTimeModelAdapter.adapt(hoursHolder, minutesHolder, secondsHolder, dateTime);
-	
-		if (helpId != null) {
-			getHelpSystem().setHelp(dateTime, helpId);
-		}
-
-		return dateTime;
-	}
-	/**
-	 * Creates a new editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @param listHolder The <code>ListValueHolder</code>
-	 * @param selectedItemHolder The holder of the selected item
-	 * @param stringConverter The converter responsible to transform each item
-	 * into a string representation
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	private <V> Combo addUnmanagedEditableCombo(Composite container,
-	                                               ListValueModel<V> listHolder,
-	                                               WritablePropertyValueModel<V> selectedItemHolder,
-	                                               StringConverter<V> stringConverter) {
-
-		Combo combo = addUnmanagedEditableCombo(container);
-
-		ComboModelAdapter.adapt(
-			listHolder,
-			selectedItemHolder,
-			combo,
-			stringConverter
-		);
-
-		return combo;
-	}
-
-	
-	/**
-	 * Creates a new editable <code>Combo</code>.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>CCombo</code>
-	 *
-	 * @category Layout
-	 */
-	private Combo addUnmanagedEditableCombo(Composite container) {
-
-		Combo combo = this.widgetFactory.createEditableCombo(container);
-		combo.setLayoutData(getFieldGridData());
-		return combo;
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledText(Composite container,
-	                                      String labelText,
-	                                      WritablePropertyValueModel<String> textHolder) {
-
-		return this.addLabeledText(container, labelText, textHolder, null);
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text field's label
-	 * @param rightComponent The component to be placed to the right of the text
-	 * field
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledText(Composite container,
-	                                      String labelText,
-	                                      WritablePropertyValueModel<String> textHolder,
-	                                      Control rightComponent,
-	                                      String helpId) {
-
-		Text text = this.addText(container, textHolder);
-
-		this.addLabeledComposite(
-			container,
-			labelText,
-			text,
-			rightComponent,
-			helpId
-		);
-
-		return text;
-	}
-	/**
-	 * 
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param labelText The text field's label
-	 * @param rightComponent The component to be placed to the right of the text
-	 * field
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledText(Composite container,
-	                                      Label label,
-	                                      WritablePropertyValueModel<String> textHolder,
-	                                      Control rightComponent,
-	                                      String helpId) {
-
-		Text text = this.addText(container, textHolder);
-
-		this.addLabeledComposite(
-			container,
-			label,
-			text,
-			rightComponent,
-			helpId
-		);
-
-		return text;
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledText(Composite container,
-	                                      String labelText,
-	                                      WritablePropertyValueModel<String> textHolder,
-	                                      String helpId) {
-
-		return this.addLabeledText(
-			container,
-			labelText,
-			textHolder,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new container that will have a text field as the center control
-	 * labeled with the given label.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the text field
-	 * @return The newly created <code>Text</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Text addLabeledText(Composite container,
-	                                      Label label,
-	                                      WritablePropertyValueModel<String> textHolder,
-	                                      String helpId) {
-
-		return this.addLabeledText(
-			container,
-			label,
-			textHolder,
-			null,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new list and notify the given selection holder when the
-	 * selection changes. If the selection count is different than one than the
-	 * holder will receive <code>null</code>.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new radio button
-	 * @return The newly created <code>List</code>
-	 *
-	 * @category Layout
-	 */
-	protected final List addList(Composite container, String helpId) {
-
-		return this.addList(
-			container,
-			new SimplePropertyValueModel<String>(),
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new list and notify the given selection holder when the
-	 * selection changes. If the selection count is different than one than the
-	 * holder will receive <code>null</code>.
-	 *
-	 * @param container The parent container
-	 * @param selectionHolder The holder of the unique selected item
-	 * @param helpId The topic help ID to be registered for the new radio button
-	 * @return The newly created <code>List</code>
-	 *
-	 * @category Layout
-	 */
-	protected final List addList(Composite container,
-	                               WritablePropertyValueModel<String> selectionHolder,
-	                               String helpId) {
-
-		List list = this.addUnmanagedList(container, selectionHolder, helpId);
-		this.manageWidget(list);
-
-		return list;
-	}
-	
-	/**
-	 * Creates a new unmanaged list and notify the given selection holder when the
-	 * selection changes. If the selection count is different than one than the
-	 * holder will receive <code>null</code>. 
-	 * Unmanaged means that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @param selectionHolder The holder of the unique selected item
-	 * @param helpId The topic help ID to be registered for the new radio button
-	 * @return The newly created <code>List</code>
-	 *
-	 * @category Layout
-	 */
-	private List addUnmanagedList(Composite container,
-	                               WritablePropertyValueModel<String> selectionHolder,
-	                               String helpId) {
-
-		List list = this.widgetFactory.createList(
-			container,
-			SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI
-		);
-
-		list.addSelectionListener(buildSelectionListener(selectionHolder));
-		list.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(list, helpId);
-		}
-
-		return list;
-	}
-
-	/**
-	 * Creates a new lable expanding on multiple lines.
-	 *
-	 * @param parent The parent container
-	 * @param labelText The label's text
-	 *
-	 * @category Layout
-	 */
-	protected final FormText addMultiLineLabel(Composite container,
-	                                         String labelText) {
-
-		FormText label = this.widgetFactory.createMultiLineLabel(container, labelText);
-		manageWidget(label);
-		return label;
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget that has multiple lines.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 */
-	protected final Text addMultiLineText(Composite container) {
-
-		Text text = this.widgetFactory.createMultiLineText(container);
-		text.setLayoutData(getFieldGridData());
-		this.manageWidget(text);
-
-		return text;
-	}
-	
-	/**
-	 * Creates a new <code>Text</code> widget that has multiple lines.
-	 *
-	 * @param container The parent container
-	 * @param lineCount The number of lines the text area should display
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addMultiLineText(Composite container,
-	                                        int lineCount,
-	                                        String helpId) {
-
-		Text text = this.addMultiLineText(container);
-		
-		GridData gridData   = getFieldGridData();
-		gridData.heightHint = text.getLineHeight() * lineCount;
-		text.setLayoutData(gridData);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(text, helpId);
-		}
-
-		return text;
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget that has multiple lines.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param lineCount The number of lines the text area should display
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addMultiLineText(Composite container,
-	                                        WritablePropertyValueModel<String> textHolder,
-	                                        int lineCount) {
-
-		return this.addMultiLineText(container, textHolder, lineCount, null);
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget that has multiple lines.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addMultiLineText(Composite container,
-	                                        WritablePropertyValueModel<String> textHolder,
-	                                        int lineCount,
-	                                        String helpId) {
-
-		Text text = this.addMultiLineText(container, lineCount, helpId);
-		SWTTools.bind(textHolder, text);
-		return text;
-	}
-
-	/**
-	 * Creates a new <code>PageBook</code> and set the proper layout and layout
-	 * data.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>PageBook</code>
-	 *
-	 * @category Layout
-	 */
-	protected final PageBook addPageBook(Composite container) {
-
-		PageBook pageBook = new PageBook(container, SWT.NULL);
-		pageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return pageBook;
-	}
-
-	/**
-	 * Creates a new container without specifying any layout manager.
-	 *
-	 * @param container The parent of the new container
-	 * @return The newly created <code>Composite</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addPane(Composite parent) {
-		return this.widgetFactory.createComposite(parent);
-	}
-
-	/**
-	 * Creates a new container using the given layout manager.
-	 *
-	 * @param parent The parent of the new container
-	 * @param layout The layout manager of the new container
-	 * @return The newly created container
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addPane(Composite container, Layout layout) {
-
-		container = this.addPane(container);
-		container.setLayout(layout);
-		container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return container;
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addPasswordText(Composite container,
-	                                       WritablePropertyValueModel<String> textHolder) {
-
-		Text text = this.addPasswordText(container);
-		SWTTools.bind(textHolder, text);
-
-		return text;
-	}
-	
-	/**
-	 * Creates a new <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addPasswordText(Composite container) {
-
-		Text text = this.widgetFactory.createPasswordText(container);
-		text.setLayoutData(getFieldGridData());
-
-		this.manageWidget(text);
-		return text;
-	}
-
-	/**
-	 * Creates a new push button using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addPushButton(Composite parent,
-	                                       String buttonText,
-	                                       final Runnable buttonAction) {
-
-		return this.addPushButton(parent, buttonText, null, buttonAction);
-	}
-
-	/**
-	 * Creates a new push button using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param buttonAction The action to be invoked when the button is pressed
-	 * @param helpId The topic help ID to be registered for the new radio button
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addPushButton(Composite parent,
-	                                       String buttonText,
-	                                       String helpId,
-	                                       final Runnable buttonAction) {
-
-		Button button = this.widgetFactory.createPushButton(parent, buttonText);
-		manageWidget(button);
-		button.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				SWTUtil.asyncExec(buttonAction);
-			}
-		});
-
-		button.setLayoutData(new GridData());
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(button, helpId);
-		}
-
-		return button;
-	}
-
-	/**
-	 * Creates a new check box using the given information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param booleanHolder The holder of the selection state
-	 * @param helpId The topic help ID to be registered for the new radio button
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Button addRadioButton(Composite parent,
-	                                        String buttonText,
-	                                        WritablePropertyValueModel<Boolean> booleanHolder,
-	                                        String helpId) {
-
-		return this.addToggleButton(
-			parent,
-			buttonText,
-			booleanHolder,
-			helpId,
-			SWT.RADIO
-		);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSection(Composite container,
-	                                       String sectionText) {
-
-		return this.addSection(
-			container,
-			sectionText,
-			ExpandableComposite.TITLE_BAR
-		);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param type The type of section to create
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	private Composite addSection(Composite container,
-	                               String sectionText,
-	                               int type) {
-
-		return this.addSection(container, sectionText, null, type);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param description The section's description
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSection(Composite container,
-	                                       String sectionText,
-	                                       String description) {
-
-		return this.addSection(
-			container,
-			sectionText,
-			description,
-			ExpandableComposite.TITLE_BAR
-		);
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client and is the returned <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @param description The section's description or <code>null</code> if none
-	 * was provider
-	 * @param type The type of section to create
-	 * @param expandedStateHolder The holder of the boolean that will dictate
-	 * when to expand or collapse the section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	private Composite addSection(Composite container,
-	                               String sectionText,
-	                               String description,
-	                               int type) {
-
-		Section section = this.widgetFactory.createSection(container, type | ((description != null) ? Section.DESCRIPTION : SWT.NULL));
-		section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		section.setText(sectionText);
-		section.marginWidth  = 0;
-		section.marginHeight = 0;
-		
-		if (description != null) {
-			section.setDescription(description);
-		}
-
-		Composite subPane = this.addSubPane(section);
-		section.setClient(subPane);
-
-		return subPane;
-	}
-
-	private SelectionListener buildSelectionListener(final WritablePropertyValueModel<String> selectionHolder) {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				List list = (List) e.widget;
-				String[] selectedItems = list.getSelection();
-				if ((selectedItems == null) || (selectedItems.length != 1)) {
-					selectionHolder.setValue(null);
-				}
-				else {
-					selectionHolder.setValue(selectedItems[0]);
-				}
-			}
-		};
-	}
-
-	/**
-	 * Creates the layout responsible to compute the size of the spacer created
-	 * for the right control when none was given. The spacer helps to align all
-	 * the right controls.
-	 *
-	 * @category Layout
-	 */
-	private Layout buildSpacerLayout() {
-		return new Layout() {
-			@Override
-			protected Point computeSize(Composite composite,
-			                            int widthHint,
-			                            int heightHint,
-			                            boolean flushCache) {
-
-				return new Point(widthHint, heightHint);
-			}
-
-			@Override
-			protected void layout(Composite composite, boolean flushCache) {
-				GridData data = (GridData) composite.getLayoutData();
-				composite.setBounds(0, 0, data.widthHint, data.heightHint);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener() {
-		return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
-	}
-
-	private PropertyChangeListener buildSubjectChangeListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent e) {
-				Pane.this.subjectChanged((T) e.getOldValue(), (T) e.getNewValue());
-			}
-		};
-	}
-
-	/**
-	 * Creates a new <code>Composite</code> used as a sub-pane.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Composite</code> used as a sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubPane(Composite container) {
-		return this.addSubPane(container, 0);
-	}
-
-	/**
-	 * Creates a new <code>Composite</code> used as a sub-pane.
-	 *
-	 * @param container The parent container
-	 * @param topMargin The extra spacing to add at the top of the pane
-	 * @return The newly created <code>Composite</code> used as a sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubPane(Composite container, int topMargin) {
-		return this.addSubPane(container, topMargin, 0);
-	}
-
-	/**
-	 * Creates a new <code>Composite</code> used as a sub-pane.
-	 *
-	 * @param container The parent container
-	 * @param topMargin The extra spacing to add at the top of the pane
-	 * @param leftMargin The extra spacing to add to the left of the pane
-	 * @return The newly created <code>Composite</code> used as a sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubPane(Composite container,
-	                                       int topMargin,
-	                                       int leftMargin) {
-
-		return this.addSubPane(container, topMargin, leftMargin, 0, 0);
-	}
-
-	/**
-	 * Creates a new <code>Composite</code> used as a sub-pane, the new widget
-	 * will have its layout and layout data already initialized, the layout will
-	 * be a <code>GridLayout</code> with 1 column.
-	 *
-	 * @param container The parent container
-	 * @param topMargin The extra spacing to add at the top of the pane
-	 * @param leftMargin The extra spacing to add to the left of the pane
-	 * @param bottomMargin The extra spacing to add at the bottom of the pane
-	 * @param rightMargin The extra spacing to add to the right of the pane
-	 * @return The newly created <code>Composite</code> used as a sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubPane(Composite container,
-	                                       int topMargin,
-	                                       int leftMargin,
-	                                       int bottomMargin,
-	                                       int rightMargin) {
-
-		return this.addSubPane(
-			container,
-			1,
-			topMargin,
-			leftMargin,
-			bottomMargin,
-			rightMargin);
-	}
-
-	/**
-	 * Creates a new <code>Composite</code> used as a sub-pane, the new widget
-	 * will have its layout and layout data already initialized, the layout will
-	 * be a <code>GridLayout</code> with 1 column.
-	 *
-	 * @param container The parent container
-	 * @param topMargin The extra spacing to add at the top of the pane
-	 * @param leftMargin The extra spacing to add to the left of the pane
-	 * @param bottomMargin The extra spacing to add at the bottom of the pane
-	 * @param rightMargin The extra spacing to add to the right of the pane
-	 * @return The newly created <code>Composite</code> used as a sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubPane(Composite container,
-	                                       int columnCount,
-	                                       int topMargin,
-	                                       int leftMargin,
-	                                       int bottomMargin,
-	                                       int rightMargin) {
-
-		GridLayout layout = new GridLayout(columnCount, false);
-		layout.marginHeight = 0;
-		layout.marginWidth  = 0;
-		layout.marginTop    = topMargin;
-		layout.marginLeft   = leftMargin;
-		layout.marginBottom = bottomMargin;
-		layout.marginRight  = rightMargin;
-
-		container = this.addPane(container, layout);
-
-		return container;
-	}
-
-	/**
-	 * Creates a new <code>Section</code>. A sub-pane is automatically added as
-	 * its client which can be typed cast directly as a <code>Composite</code>.
-	 *
-	 * @param container The container of the new widget
-	 * @param sectionText The text of the new section
-	 * @return The <code>Section</code>'s sub-pane
-	 *
-	 * @category Layout
-	 */
-	protected final Composite addSubSection(Composite container,
-	                                          String sectionText) {
-
-		return this.addCollapsibleSubSection(
-			container,
-			sectionText,
-			new SimplePropertyValueModel<Boolean>(Boolean.TRUE)
-		);
-	}
-
-	/**
-	 * Creates a new table.
-	 *
-	 * @param container The parent container
-	 * @param style The style to apply to the table
-	 * @param helpId The topic help ID to be registered for the new table or
-	 * <code>null</code> if no help ID is required
-	 * @return The newly created <code>Table</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Table addTable(Composite container,
-	                                 int style,
-	                                 String helpId) {
-
-		Table table = addUnmanagedTable(container, style, helpId);
-		this.manageWidget(table);
-
-		return table;
-	}
-	/**
-	 * Creates a new unmanaged table.  Unmanaged means that this Pane will
-	 * not handle the enabling/disabling of this widget.  The owning object will handle
-	 * it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @param style The style to apply to the table
-	 * @param helpId The topic help ID to be registered for the new table or
-	 * <code>null</code> if no help ID is required
-	 * @return The newly created <code>Table</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Table addUnmanagedTable(Composite container,
-	                                 int style,
-	                                 String helpId) {
-
-		Table table = this.widgetFactory.createTable(container, style);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-
-		GridData gridData   = new GridData(GridData.FILL_BOTH);
-		gridData.heightHint = table.getItemHeight() * 4;
-		table.setLayoutData(gridData);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(table, helpId);
-		}
-
-		return table;
-	}
-
-	/**
-	 * Creates a new table.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new table or
-	 * <code>null</code> if no help ID is required
-	 * @return The newly created <code>Table</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Table addTable(Composite container, String helpId) {
-
-		return this.addTable(
-			container,
-			SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI,
-			helpId
-		);
-	}
-	
-	/**
-	 * Creates a new unmanaged table.  Unmanaged means that this Pane will
-	 * not handle the enabling/disabling of this widget.  The owning object will handle
-	 * it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new table or
-	 * <code>null</code> if no help ID is required
-	 * @return The newly created <code>Table</code>
-	 *
-	 * @category Layout
-	 */
-	protected final Table addUnmanagedTable(Composite container, String helpId) {
-
-		return this.addUnmanagedTable(
-			container,
-			SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI,
-			helpId
-		);
-	}
-
-	/**
-	 * Creates a new managed <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addText(Composite container) {
-		Text text = this.addUnmanagedText(container);
-		this.manageWidget(text);
-		return text;
-	}
-	
-	/**
-	 * Creates a new unmanaged <code>Text</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	private Text addUnmanagedText(Composite container) {
-		Text text = this.widgetFactory.createText(container);
-		text.setLayoutData(getFieldGridData());
-		return text;
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addText(Composite container, String helpId) {
-
-		Text text = this.addText(container);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(text, helpId);
-		}
-
-		return text;
-	}
-	
-	/**
-	 * Creates a new unmanaged <code>Text</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	private Text addUnmanagedText(Composite container, String helpId) {
-
-		Text text = this.addUnmanagedText(container);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(text, helpId);
-		}
-		
-		return text;
-	}
-	
-	/**
-	 * Creates a new <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addText(Composite container,
-	                               WritablePropertyValueModel<String> textHolder) {
-
-		return this.addText(container, textHolder, null);
-	}
-
-	/**
-	 * Creates a new <code>Text</code> widget.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	protected final Text addText(Composite container,
-	                               WritablePropertyValueModel<String> textHolder,
-	                               String helpId) {
-
-		Text text = this.addText(container, helpId);
-		SWTTools.bind(textHolder, text);
-
-		return text;
-	}
-	
-	protected final Text addText(
-			Composite container,
-			WritablePropertyValueModel<String> textHolder,
-			String helpId,
-			PropertyValueModel<Boolean> enabledModel
-	) {
-		Text text = this.addUnmanagedText(container, textHolder, helpId);
-		this.controlEnabledState(enabledModel, text);
-		return text;
-	}
-
-	/**
-	 * Creates a new unmanaged <code>Text</code> widget.  Unmanaged means 
-	 * that this Pane will not handle the enabling/disabling of this widget.  
-	 * The owning object will handle it with its own PaneEnabler or ControlEnabler.
-	 *
-	 * @param container The parent container
-	 * @param textHolder The holder of the text field's input
-	 * @param helpId The topic help ID to be registered for the new text
-	 * @return The newly created <code>Text</code> widget
-	 *
-	 * @category Layout
-	 */
-	private Text addUnmanagedText(Composite container,
-	                               WritablePropertyValueModel<String> textHolder,
-	                               String helpId) {
-
-		Text text = this.addUnmanagedText(container, helpId);
-		SWTTools.bind(textHolder, text);
-
-		return text;
-	}
-
-	/**
-	 * Creates a new container with a titled border.
-	 *
-	 * @param title The text of the titled border
-	 * @param container The parent container
-	 * @return The newly created <code>Composite</code> with a titled border
-	 *
-	 * @category Layout
-	 */
-	protected final Group addTitledGroup(Composite container, String title) {
-		return this.addTitledGroup(container, title, null);
-	}
-
-	/**
-	 * Creates a new container with a titled border.
-	 *
-	 * @param title The text of the titled border
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new group
-	 * @return The newly created <code>Composite</code> with a titled border
-	 *
-	 * @category Layout
-	 */
-	protected final Group addTitledGroup(Composite container,
-	                                      String title,
-	                                      String helpId) {
-
-		return addTitledGroup(container, title, 1, helpId);
-	}
-	
-	/**
-	 * Creates a new container with a titled border.
-	 *
-	 * @param title The text of the titled border
-	 * @param container The parent container
-	 * @param helpId The topic help ID to be registered for the new group
-	 * @return The newly created <code>Composite</code> with a titled border
-	 *
-	 * @category Layout
-	 */
-	protected final Group addTitledGroup(Composite container,
-	                                      String title,
-	                                      int columnCount,
-	                                      String helpId) {
-
-		Group group = this.widgetFactory.createGroup(container, title);
-		//manageWidget(group); TODO unsure if I want to manage groups, 
-		//also should probably rename this addUnmanagedTitledPane
-		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		GridLayout layout = new GridLayout(columnCount, false);
-		layout.marginHeight = 0;
-		layout.marginWidth  = 0;
-		layout.marginTop    = 5;
-		layout.marginLeft   = 5;
-		layout.marginBottom = 5;
-		layout.marginRight  = 5;
-		group.setLayout(layout);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(group, helpId);
-		}
-
-		return group;
-	}
-
-	/**
-	 * Creates a new unmanaged new toggle button (radio button or check box).  
-	 * Unmanaged means  that this Pane will not handle the enabling/disabling 
-	 * of this widget. The owning object will handle it with its own PaneEnabler 
-	 * or ControlEnabler.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param booleanHolder The holder of the selection state
-	 * @param helpId The topic help ID to be registered for the new button
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	private Button addUnmanagedToggleButton(
-			Composite parent,
-	        String buttonText,
-	        WritablePropertyValueModel<Boolean> booleanHolder,
-	        String helpId,
-	        int toggleButtonType) {
-		
-		Button button;
-		
-		if (toggleButtonType == SWT.PUSH) {
-			button = this.widgetFactory.createPushButton(parent, buttonText);
-		}
-		else if (toggleButtonType == SWT.RADIO) {
-			button = this.widgetFactory.createRadioButton(parent, buttonText);
-		}
-		else if (toggleButtonType == SWT.CHECK) {
-			button = this.widgetFactory.createCheckBox(parent, buttonText);
-		}
-		else {
-			button = this.widgetFactory.createButton(parent, buttonText);
-		}
-		
-		button.setLayoutData(new GridData());
-		SWTTools.bind(booleanHolder, button);
-		
-		if (helpId != null) {
-			getHelpSystem().setHelp(button, helpId);
-		}
-		
-		return button;
-	}
-	
-	/**
-	 * Creates a new toggle button (radio button or check box) using the given
-	 * information.
-	 *
-	 * @param parent The parent container
-	 * @param buttonText The button's text
-	 * @param booleanHolder The holder of the selection state
-	 * @param helpId The topic help ID to be registered for the new button
-	 * @return The newly created <code>Button</code>
-	 *
-	 * @category Layout
-	 */
-	private Button addToggleButton(
-			Composite parent,
-	        String buttonText,
-	        WritablePropertyValueModel<Boolean> booleanHolder,
-	        String helpId,
-	        int toggleButtonType) {
-		
-		Button button = addUnmanagedToggleButton(
-				parent, 
-				buttonText, 
-				booleanHolder, 
-				helpId, 
-				toggleButtonType);
-		this.manageWidget(button);
-		return button;
-	}
-
-	/**
-	 * Creates a new check box that can have 3 selection states (selected,
-	 * unselected and partially selected.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @param booleanHolder The holder of the boolean value where <code>null</code>
-	 * means partially selected
-	 * @param helpId The topic help ID to be registered for the new check box
-	 * @return The newly created <code>TriStateCheckBox</code>
-	 *
-	 * @category Layout
-	 */
-	protected final TriStateCheckBox addTriStateCheckBox(Composite parent,
-	                                                       String text,
-	                                                       WritablePropertyValueModel<Boolean> booleanHolder,
-	                                                       String helpId) {
-
-		TriStateCheckBox checkBox = new TriStateCheckBox(
-			parent,
-			text,
-			this.getWidgetFactory()
-		);
-
-		this.manageWidget(checkBox.getCheckBox());
-
-		TriStateCheckBoxModelAdapter.adapt(
-			booleanHolder,
-			checkBox
-		);
-
-		if (helpId != null) {
-			getHelpSystem().setHelp(checkBox.getCheckBox(), helpId);
-		}
-
-		return checkBox;
-	}
-
-	/**
-	 * Creates a new check box that can have 3 selection states (selected,
-	 * unselected and partially selected.
-	 *
-	 * @param parent The parent container
-	 * @param text The button's text
-	 * @param booleanHolder The holder of the boolean value where <code>null</code>
-	 * means partially selected
-	 * @param stringHolder The holder of the string to put in parenthesis after
-	 * the check box's text when it is partially selected
-	 * @param helpId The topic help ID to be registered for the new check box
-	 * @return The newly created <code>TriStateCheckBox</code>
-	 *
-	 * @category Layout
-	 */
-	protected final TriStateCheckBox addTriStateCheckBoxWithDefault(Composite parent,
-	                                                                  String text,
-	                                                                  WritablePropertyValueModel<Boolean> booleanHolder,
-	                                                                  PropertyValueModel<String> stringHolder,
-	                                                                  String helpId) {
-
-		TriStateCheckBox checkBox = this.addTriStateCheckBox(
-			parent,
-			text,
-			booleanHolder,
-			helpId
-		);
-
-		new LabeledControlUpdater(
-			new LabeledButton(checkBox.getCheckBox()),
-			stringHolder
-		);
-
-		return checkBox;
-	}
-
-	/**
-	 * Requests this pane to populate its widgets with the subject's values.
-	 *
-	 * @category Populate
-	 */
-	protected void doPopulate() {
-		this.log(Tracing.UI_LAYOUT, "   ->doPopulate()");
-	}
-	
-	private void controlEnabledState(PropertyValueModel<Boolean> booleanModel, Control... controls) {
-		this.controlEnabledState_(this.wrapEnabledModel(booleanModel), controls);
-	}
-
-	/**
-	 * Assume the "enabled" models can return null (which is typical with aspect
-	 * adapters etc.).
-	 */
-	private PropertyValueModel<Boolean> wrapEnabledModel(PropertyValueModel<Boolean> booleanModel) {
-		return new TransformationPropertyValueModel<Boolean, Boolean>(booleanModel, NonNullBooleanTransformer.FALSE);
-	}
-	
-	private void controlEnabledState_(PropertyValueModel<Boolean> booleanModel, Control... controls) {
-		SWTTools.controlEnabledState(this.andEnabledModel(booleanModel), controls);
-	}
-	
-	private PropertyValueModel<Boolean> getCombinedEnabledModel() {
-		return (this.combinedEnabledModel != null) ? this.combinedEnabledModel : this.baseEnabledModel;
-	}
-	
-	private boolean getCombinedEnablement() {
-		Boolean enabled = getCombinedEnabledModel().getValue();
-		return (enabled == null) ? true : enabled.booleanValue();
-	}
-	
-	private PropertyValueModel<Boolean> andEnabledModel(PropertyValueModel<Boolean> booleanModel) {
-		return CompositeBooleanPropertyValueModel.and(getCombinedEnabledModel(), booleanModel);
-	}
-	
-	protected void controllerEnablementChanged() {
-		enableWidgets_(getCombinedEnablement());
-	}
-	
-	/**
-	 * Changes the enablement state of the widgets of this pane.
-	 *
-	 * @param enabled <code>true</code> to enable the widgets or <code>false</code>
-	 * to disable them
-	 *
-	 * @category Layout
-	 */
-	public void enableWidgets(boolean enabled) {
-		this.baseEnabledModel.setValue(Boolean.valueOf(enabled));
-		enableWidgets_(getCombinedEnablement());
-	}
-	
-	private void enableWidgets_(boolean enabled) {
-		if (! this.container.isDisposed()) {
-			for (Control control : this.managedWidgets) {
-				control.setEnabled(enabled);
-			}
-			
-			for (Pane<?> subPane : this.managedSubPanes) {
-				subPane.enableWidgets(enabled);
-			}
-		}
-	}
-	
-	private void engageSubjectHolder() {
-		this.subjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-	}
-	
-	/**
-	 * engage the specified subject
-	 */
-	protected void engageListeners(T subject) {
-		if (subject != null) {
-			this.engageListeners_(subject);
-		}
-	}
-
-	/**
-	 * specified subject is not null
-	 */
-	protected void engageListeners_(T subject) {
-		this.log(Tracing.UI_LAYOUT, "   ->engageListeners_(" + subject + ')');
-
-		for (String propertyName : this.getPropertyNames()) {
-			subject.addPropertyChangeListener(propertyName, this.aspectChangeListener);
-		}
-	}
-
-	/**
-	 * disengage the specified subject
-	 */
-	protected void disengageListeners(T subject) {
-		if (subject != null) {
-			this.disengageListeners_(subject);
-		}
-	}
-
-	/**
-	 * specified subject is not null
-	 */
-	protected void disengageListeners_(T subject) {
-		this.log(Tracing.UI_LAYOUT, "   ->disengageListeners_(" + subject + ')');
-
-		for (String propertyName : this.getPropertyNames()) {
-			subject.removePropertyChangeListener(propertyName, this.aspectChangeListener);
-		}
-	}
-
-	private void disengageSubjectHolder() {
-		this.subjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-	}
-
-	/**
-	 * Returns the main <code>Control</code> of this pane.
-	 *
-	 * @return The main container
-	 *
-	 * @category Layout
-	 */
-	public Composite getControl() {
-		return this.container;
-	}
-
-	/**
-	 * Returns the subject holder used by this pane.
-	 *
-	 * @return The holder of the subject
-	 *
-	 * @category Populate
-	 */
-	protected final PropertyValueModel<T> getSubjectHolder() {
-		return this.subjectHolder;
-	}
-
-	/**
-	 * Returns the factory responsible for creating the widgets.
-	 *
-	 * @return The factory used by this pane to create the widgets
-	 *
-	 * @category Layout
-	 */
-	protected final WidgetFactory getWidgetFactory() {
-		return this.widgetFactory;
-	}
-
-	/**
-	 * Returns the margin taken by a group box, which is the number of pixel the
-	 * group box border and its margin takes before displaying its widgets plus
-	 * 5 pixels since the widgets inside of the group box and the border should
-	 * have that extra 5 pixels.
-	 *
-	 * @return The width taken by the group box border with its margin
-	 *
-	 * @category Layout
-	 */
-	protected final int getGroupBoxMargin() {
-		Group group = this.widgetFactory.createGroup(SWTUtil.getShell(), "");
-		Rectangle clientArea = group.getClientArea();
-		group.dispose();
-		return clientArea.x + 5;
-	}
-
-	/**
-	 * Returns the helps system.
-	 *
-	 * @return The platform's help system
-	 *
-	 * @category Helper
-	 */
-	protected final IWorkbenchHelpSystem getHelpSystem() {
-		return PlatformUI.getWorkbench().getHelpSystem();
-	}
-
-
-	/**
-	 * Determines whether
-	 *
-	 * @return
-	 *
-	 * @category Populate
-	 */
-	protected final boolean isPopulating() {
-		return this.populating;
-	}
-
-	/**
-	 * Logs the given message if the <code>Tracing.DEBUG_LAYOUT</code> is enabled.
-	 *
-	 * @param flag
-	 * @param message The logging message
-	 */
-	protected void log(String flag, String message) {
-		if (flag.equals(Tracing.UI_LAYOUT) && Tracing.booleanDebugOption(Tracing.UI_LAYOUT)) {
-			this.log(message);
-		}
-	}
-
-	protected void log(String message) {
-		Class<?> thisClass = this.getClass();
-		String className = thisClass.getSimpleName();
-
-		if (thisClass.isAnonymousClass()) {
-			className = className.substring(0, className.indexOf('$'));
-			className += "->" + thisClass.getSuperclass().getSimpleName();
-		}
-
-		Tracing.log(className + ": " + message);
-	}
-
-	/**
-	 * Notifies this pane to populate itself using the subject's information.
-	 *
-	 * @category Populate
-	 */
-	private void populate() {
-		if (!this.container.isDisposed()) {
-			this.log(Tracing.UI_LAYOUT, "populate()");
-			this.repopulate();
-		}
-	}
-
-	/**
-	 * Notifies the subject's property associated with the given property name
-	 * has changed.
-	 *
-	 * @param propertyName The property name associated with the property change
-	 *
-	 * @category Populate
-	 */
-	protected void propertyChanged(String propertyName) {
-	}
-
-	/**
-	 * Returns the list of names to listen for properties changing from the
-	 * subject.
-	 *
-	 * @return A non-<code>null</code> list of property names
-	 *
-	 * @category Populate
-	 */
-	protected Collection<String> getPropertyNames() {
-		ArrayList<String> propertyNames = new ArrayList<String>();
-		addPropertyNames(propertyNames);
-		return propertyNames;
-	}
-
-	/**
-	 * Removes the given pane's widgets (those that were registered with
-	 * its left <code>ControlAligner</code>) from this pane's left
-	 * <code>ControlAligner</code> so that their width will no longer be adjusted
-	 * with the width of the widest widget.
-	 *
-	 * @param pane The pane containing the widgets to remove
-	 *
-	 * @category Layout
-	 */
-	protected final void removeAlignLeft(Pane<?> pane) {
-		this.leftControlAligner.remove(pane.leftControlAligner);
-	}
-
-	/**
-	 * Removes the given control from the collection of widgets that are aligned
-	 * to have the same width when they are shown to the left side of the 3
-	 * widget colums.
-	 *
-	 * @param pane The pane to remove, its width will no longer be
-	 * ajusted to be the width of the longest widget
-	 *
-	 * @category Layout
-	 */
-	protected final void removeAlignLeft(Control control) {
-		this.leftControlAligner.remove(control);
-	}
-
-	/**
-	 * Removes the given pane's widgets (those that were registered with
-	 * its right <code>ControlAligner</code>) from this pane's right
-	 * <code>ControlAligner</code> so that their width will no longer be adjusted
-	 * with the width of the widest widget.
-	 *
-	 * @param pane The pane containing the widgets to remove
-	 *
-	 * @category Layout
-	 */
-	protected final void removeAlignRight(Pane<?> pane) {
-		this.rightControlAligner.remove(pane.rightControlAligner);
-	}
-
-	/**
-	 * Removes the given control from the collection of widgets that are aligned
-	 * to have the same width when they are shown to the right side of the 3
-	 * widget colums.
-	 *
-	 * @param pane The pane to remove, its width will no longer be
-	 * ajusted to be the width of the longest widget
-	 *
-	 * @category Layout
-	 */
-	protected final void removeAlignRight(Control control) {
-		this.rightControlAligner.remove(control);
-	}
-
-	/**
-	 * Removes the given pane's controls (those that were registered for
-	 * alignment) from this pane.
-	 *
-	 * @param pane The pane containing the widgets that no longer
-	 * requires their width adjusted with the width of the longest widget
-	 *
-	 * @category Layout
-	 */
-	protected final void removePaneForAlignment(Pane<?> pane) {
-		removeAlignLeft(pane);
-		removeAlignRight(pane);
-	}
-
-	/**
-	 * This method is called (perhaps internally) when this needs to repopulate
-	 * but the object of interest has not changed.
-	 *
-	 * @category Populate
-	 */
-	protected final void repopulate() {
-
-		this.log(Tracing.UI_LAYOUT, "   ->repopulate()");
-
-		// Populate this pane
-		try {
-			setPopulating(true);
-			doPopulate();
-		}
-		finally {
-			setPopulating(false);
-		}
-
-		// Ask the sub-panes to repopulate themselves
-		for (Pane<?> subPane : this.subPanes) {
-			subPane.repopulate();
-		}
-	}
-
-	/**
-	 * Sets the internal flag that is used to determine whether the pane is being
-	 * populated or not. During population, it is required to not update the
-	 * widgets when the model is updated nor to update the model when the widgets
-	 * are being synchronized with the model's values.
-	 *
-	 * @param populating
-	 *
-	 * @category Populate
-	 */
-	protected final void setPopulating(boolean populating) {
-		this.populating = populating;
-	}
-
-	/**
-	 * Either show or hides this pane.
-	 *
-	 * @param visible The new visibility state
-	 */
-	public void setVisible(boolean visible) {
-		if (!this.container.isDisposed()) {
-			this.container.setVisible(visible);
-		}
-	}
-
-	/**
-	 * Returns the nearest <code>Shell</code> displaying the main widget of this
-	 * pane.
-	 *
-	 * @return The nearest window displaying this pane
-	 */
-	public final Shell getShell() {
-		return this.container.getShell();
-	}
-
-	/**
-	 * Returns the subject of this pane.
-	 *
-	 * @return The subject if this pane was not disposed; <code>null</code>
-	 * if it was
-	 *
-	 * @category Populate
-	 */
-	public T getSubject() {
-		return this.subjectHolder.getValue();
-	}
-
-	/**
-	 * The subject has changed, disconnects any listeners from the old subject
-	 * and connects those listeners onto the new subject.
-	 *
-	 * @param oldsubject The old subject or <code>null</code> if none was set
-	 * @param newSubject The new subject or <code>null</code> if none needs to be
-	 * set
-	 *
-	 * @category Populate
-	 */
-	protected final void subjectChanged(T oldSubject, T newSubject) {
-		if (!this.container.isDisposed()) {
-
-			this.log(Tracing.UI_LAYOUT, "subjectChanged()");
-			this.disengageListeners(oldSubject);
-
-			this.repopulate();
-
-			this.engageListeners(newSubject);
-		}
-	}
-
-
-	/**
-	 * Registers another <code>Pane</code> with this one so it can
-	 * be automatically notified about certain events such as engaging or
-	 * disengaging the listeners, etc.
-	 *
-	 * @param subPane The sub-pane to register
-	 *
-	 * @category Controller
-	 */
-	protected final void registerSubPane(Pane<?> subPane) {
-		this.subPanes.add(subPane);
-	}
-
-	/**
-	 * Unregisters the given <code>Pane</code> from this one so it
-	 * can no longer be automatically notified about certain events such as
-	 * engaging or disengaging the listeners, etc.
-	 *
-	 * @param subPane The sub-pane to unregister
-	 *
-	 * @category Controller
-	 */
-	protected final void unregisterSubPane(Pane<?> subPane) {
-		this.subPanes.remove(subPane);
-	}
-
-	private void updatePane(String propertyName) {
-		if (!isPopulating() && !this.container.isDisposed()) {
-			this.populating = true;
-
-			try {
-				propertyChanged(propertyName);
-			}
-			finally {
-				this.populating = false;
-			}
-		}
-	}
-	
-	public void dispose() {
-		this.log(Tracing.UI_LAYOUT, "dispose()");
-
-		// Dispose this pane
-		this.disengageListeners(getSubject());
-		this.disengageSubjectHolder();
-		
-		if (this.combinedEnabledModel != null && this.combinedEnabledModelListener != null) {
-			this.combinedEnabledModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.combinedEnabledModelListener);
-		}
-		
-		this.leftControlAligner.dispose();
-		this.rightControlAligner.dispose();
-
-		// Ask the sub-panes to dispose themselves
-		for (Pane<?> subPane : this.subPanes) {
-			subPane.dispose();
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java
deleted file mode 100644
index bae4b60..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-/**
- * This <code>PostExecution</code> is used to post execute a portion of code
- * once a dialog, that was launched into a different UI thread, has been
- * disposed.
- *
- * @version 2.0
- * @since 1.0
- */
-public interface PostExecution<T extends Dialog> {
-
-	/**
-	 * Notifies this post exection the dialog that was launched into a different
-	 * UI thread has been disposed.
-	 *
-	 * @param dialog The dialog that was launched into a different thread
-	 */
-	public void execute(T dialog);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java
deleted file mode 100644
index c841976..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * This <code>WidgetFactory</code> is responsible to create the widgets using
- * <code>TabbedPropertySheetWidgetFactory</code> in order use the form style
- * (flat-style) look and feel.
- *
- * @see TabbedPropertySheetWidgetFactory
- *
- * @version 2.0
- * @since 2.0
- */
-public class PropertySheetWidgetFactory extends FormWidgetFactory {
-
-	/**
-	 * Creates a new <code>PropertySheetWidgetFactory</code>.
-	 *
-	 * @param widgetFactory The actual factory responsible for creating the new
-	 * widgets
-	 */
-	public PropertySheetWidgetFactory(TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(widgetFactory);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public Composite createComposite(Composite parent) {
-		return getWidgetFactory().createComposite(parent);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public Group createGroup(Composite parent, String title) {
-		return getWidgetFactory().createGroup(parent, title);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return (TabbedPropertySheetWidgetFactory) super.getWidgetFactory();
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java
deleted file mode 100644
index ecb0d20..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import org.eclipse.jpt.common.ui.WidgetFactory;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This <code>TriStateCheckBox</code> can display one of three states:
- * unchecked, checked, or partially checked. It can be modified via a mouse
- * selection, via a keyboard selection, or programmatically. The selection state is
- * represented by a <code>Boolean</code> value where a <code>null</code>
- * value means partially checked.
- * <p>
- * The order of state changes is: unchecked -> partially checked -> checked.
- *
- * @version 2.0
- * @since 2.0
- */
-@SuppressWarnings("nls")
-public final class TriStateCheckBox
-{
-	/**
-	 * A check box button.
-	 */
-	private final Button button;
-
-	/**
-	 * The current selection state.
-	 */
-	private TriState state;
-
-	/**
-	 * Creates a new <code>TriStateCheckBox</code> with no text.
-	 *
-	 * @param parent The parent composite
-	 * @param widgetFactory The factory used to create the check box
-	 */
-	public TriStateCheckBox(Composite parent, WidgetFactory widgetFactory) {
-		this(parent, null, widgetFactory);
-	}
-
-	/**
-	 * Creates a new <code>TriStateCheckBox</code>.
-	 *
-	 * @param parent The parent composite
-	 * @param text The check box's text
-	 * @param widgetFactory The factory used to create the check box
-	 */
-	public TriStateCheckBox(Composite parent,
-	                        String text,
-	                        WidgetFactory widgetFactory) {
-		super();
-		this.state = TriState.UNCHECKED;
-		this.button = widgetFactory.createCheckBox(parent, text);
-		this.button.addSelectionListener(this.buildSelectionListener());
-	}
-
-	/**
-	 * Convenience method: Adds a dispose listener to the check box.
-	 * The source of any events sent to the listener will be the check box widget.
-	 */
-	public void addDisposeListener(DisposeListener disposeListener) {
-		this.button.addDisposeListener(disposeListener);
-	}
-
-	/**
-	 * Convenience method: Adds a selection listener to the check box.
-	 * The source of any events sent to the listener will be the check box widget.
-	 */
-	public void addSelectionListener(SelectionListener selectionListener) {
-		this.button.addSelectionListener(selectionListener);
-	}
-
-	private SelectionListener buildSelectionListener() {
-		return new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				TriStateCheckBox.this.checkBoxClicked();
-			}
-		};
-	}
-
-	/**
-	 * The check box was clicked, change the tri-state to the next value and
-	 * update the check box's state.
-	 */
-	void checkBoxClicked() {
-		this.state = this.nextState();
-		this.updateCheckBox();
-	}
-
-	/**
-	 * Disposes the check box widget.
-	 */
-	public void dispose() {
-		this.button.dispose();
-	}
-
-	/**
-	 * Returns the <code>Button</code> used to show a tri-state check box.
-	 *
-	 * @return The <code>Button</code> used to show a tri-state check box
-	 */
-	public Button getCheckBox() {
-		return this.button;
-	}
-
-	/**
-	 * Returns the check box's image.
-	 *
-	 * @return The check box's image.
-	 */
-	public Image getImage() {
-		return this.button.getImage();
-	}
-
-	/**
-	 * Returns the check box's selection state.
-	 *
-	 * @return Either <code>true</code> or <code>false</code> for checked or
-	 * unchecked; or <code>null</code> for partially selected
-	 */
-	public Boolean getSelection() {
-		return (this.state == TriState.PARTIALLY_CHECKED) ? null : Boolean.valueOf(this.state == TriState.CHECKED);
-	}
-
-	/**
-	 * Returns the check box's text.
-	 *
-	 * @return The text of the check box
-	 */
-	public String getText() {
-		return this.button.getText();
-	}
-
-	/**
-	 * Returns whether the check box is disposed.
-	 *
-	 * @return <code>true</code> if the check box is disposed; <code>false</code>
-	 * otherwise
-	 */
-	public boolean isDisposed() {
-		return this.button.isDisposed();
-	}
-
-	/**
-	 * Returns whether the check box is enabled.
-	 *
-	 * @return <code>true</code> if the check box is enabled; <code>false</code>
-	 * otherwise
-	 */
-	public boolean isEnabled() {
-		return this.button.isEnabled();
-	}
-
-	/**
-	 * Returns the next state:
-	 *     UNCHECKED -> PARTIALLY_CHECKED
-	 *     PARTIALLY_CHECKED -> CHECKED
-	 *     CHECKED -> UNCHECKED
-	 */
-	private TriState nextState() {
-		switch (this.state) {
-			case UNCHECKED:
-				return TriState.PARTIALLY_CHECKED;
-			case PARTIALLY_CHECKED:
-				return TriState.CHECKED;
-			case CHECKED:
-				return TriState.UNCHECKED;
-			default:
-				throw new IllegalStateException("unknown state: " + this.state);
-		}
-	}
-
-	/**
-	 * Convenience method: Removes a dispose listener from the check box.
-	 */
-	public void removeDisposeListener(DisposeListener disposeListener) {
-		this.button.removeDisposeListener(disposeListener);
-	}
-
-	/**
-	 * Convenience method: Removes a selection listener from the check box.
-	 */
-	public void removeSelectionListener(SelectionListener selectionListener) {
-		this.button.removeSelectionListener(selectionListener);
-	}
-
-	/**
-	 * Changes the check box's enablement state.
-	 *
-	 * @param enabled <code>true</code> to enable the check box or <code>false</code>
-	 * to disable it
-	 */
-	public void setEnabled(boolean enabled) {
-		this.button.setEnabled(enabled);
-	}
-
-	/**
-	 * Sets the check box's image.
-	 *
-	 * @param image The new image of the check box
-	 */
-	public void setImage(Image image) {
-		this.button.setImage(image);
-	}
-
-	/**
-	 * Changes the check box's selection state.
-	 *
-	 * @param selection Either <code>true</code> or <code>false</code> for
-	 * checked and unchecked; or <code>null</code> for partially selected
-	 */
-	public void setSelection(Boolean selection) {
-		TriState old = this.state;
-		this.state = this.stateForBoolean(selection);
-		if (old != this.state) {
-			this.updateCheckBox();
-		}
-	}
-
-	/**
-	 * Sets the check box's text.
-	 *
-	 * @param text The new text of the check box
-	 */
-	public void setText(String text) {
-		this.button.setText(text);
-	}
-
-	/**
-	 * Returns the tri-state corresponding to the boolean.
-	 *
-	 * @param selection The boolean to be converted to a tri-state
-	 */
-	private TriState stateForBoolean(Boolean selection) {
-		return (selection == null) ? TriState.PARTIALLY_CHECKED :
-			selection.booleanValue() ? TriState.CHECKED : TriState.UNCHECKED;
-	}
-
-	/**
-	 * Updates the selection state of the of the check box based on the tri-state
-	 * value.
-	 */
-	void updateCheckBox() {
-		switch (this.state) {
-			case UNCHECKED:
-				this.button.setSelection(false);
-				this.button.setGrayed(false);
-				break;
-			case PARTIALLY_CHECKED:
-				this.button.setSelection(true);
-				this.button.setGrayed(true);
-				break;
-			case CHECKED:
-				this.button.setSelection(true);
-				this.button.setGrayed(false);
-				break;
-			default:
-				throw new IllegalStateException("unknown state: " + this.state);
-		}
-	}
-
-	/**
-	 * An enum containing the possible selections.
-	 */
-	enum TriState {
-		CHECKED,
-		PARTIALLY_CHECKED,
-		UNCHECKED
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java
deleted file mode 100644
index b4b6cdf..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.internal.widgets;
-
-import java.util.ListIterator;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.jpt.common.utility.internal.node.Problem;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This dialog is similar to it superclass, <code>Dialog</code>, with
- * the added value of an error message label below the main panel. A subclass
- * can set this error message as needed so that it can inform the user something
- * incorrect has been entered.
- * <p>
- * If there is an error message, it will be shown. If there is a warning
- * message, it will only be shown if there is no error message. Warning messages
- * have a different icon than error messages.
- *
- * @version 2.0
- * @since 2.0
- */
-public abstract class ValidatingDialog<T extends Node> extends Dialog<T> {
-
-	/**
-	 * Creates a new <code>ValidatingDialog</code>.
-	 *
-	 * @param parent The parent shell
-	 */
-	public ValidatingDialog(Shell parent) {
-		super(parent);
-	}
-
-	/**
-	 * Creates a new <code>ValidatingDialog</code>.
-	 *
-	 * @param parent The parent shell
-	 * @param title The dialog's title
-	 */
-	public ValidatingDialog(Shell parent, String title) {
-		super(parent, title);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	final Node.Validator buildValidator() {
-		return new Node.Validator() {
-			public void pause() {
-			}
-
-			public void resume() {
-			}
-
-			public void validate() {
-				ValidatingDialog.this.validate();
-			}
-		};
-	}
-
-	/**
-	 * Clears the messages from the description pane
-	 */
-	protected final void clearMessage(){
-		setMessage(getDescription());
-	}
-
-	/**
-	 * Clears the error message from the description pane.
-	 */
-	protected final void clearErrorMessage() {
-		setErrorMessage(null);
-	}
-
-	/**
-	 * Returns the description shown in the description pane.
-	 *
-	 * @return The description under the description's title
-	 */
-	protected String getDescription() {
-		return null;
-	}
-
-	/**
-	 * Returns the image shown in the description pane.
-	 *
-	 * @return The image of the description pane or <code>null</code> if none is
-	 * required
-	 */
-	protected Image getDescriptionImage() {
-		return null;
-	}
-
-	/**
-	 * Returns the title of the description pane.
-	 *
-	 * @return The title shown in the description pane
-	 */
-	protected String getDescriptionTitle() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected Point getInitialSize() {
-		Point result = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		Point paneSize = getPane().getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		int width = convertHorizontalDLUsToPixels(400);
-		result.x = Math.max(width, paneSize.x);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected final boolean hasTitleArea() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeUI() {
-
-		super.initializeUI();
-
-		// Update the description title
-		String descriptionTitle = getDescriptionTitle();
-
-		if (descriptionTitle != null) {
-			setTitle(descriptionTitle);
-		}
-
-		// Update the description title
-		String description = getDescription();
-
-		if (description != null) {
-			setMessage(description);
-		}
-
-		// Update the description image
-		Image image = getDescriptionImage();
-
-		if (image != null) {
-			setTitleImage(image);
-		}
-	}
-
-	/**
-	 * Updates the description pane by showing the given error message and format
-	 * the text with the given list of arguments if any exists.
-	 *
-	 * @param errorMessage The error message to show in the description pane
-	 * @param arguments The list of arguments used to format the error message
-	 */
-	protected final void setErrorMessage(String errorMessage, Object... arguments) {
-		setErrorMessage(NLS.bind(errorMessage, arguments));
-	}
-
-	/**
-	 * Updates the description pane by showing the given warning message and format
-	 * the text with the given list of arguments if any exists.
-	 *
-	 * @param warningMessage The warning message to show in the description pane
-	 * @param arguments The list of arguments used to format the error message
-	 */
-	
-	protected final void setWarningMessage(String warningMessage, Object... arguments) {
-		setMessage(NLS.bind(warningMessage, arguments), IMessageProvider.WARNING);
-	}
-
-	/**
-	 * Updates the error message, either shows the first error problem or hides
-	 * the error pane. If the progress bar is shown, then the error message will
-	 * not be shown.
-	 */
-	private void updateMessage() {
-		if (getSubject().branchProblemsSize() == 0) {
-			clearMessage();
-		} else {
-				for (ListIterator<Problem> problems = getSubject().branchProblems(); problems.hasNext();){
-					Problem problem = problems.next();
-					if (problem.messageType() == IMessageProvider.ERROR){
-						this.setErrorMessage(problem.messageKey(), problem.messageArguments());
-					} 
-					else if (problem.messageType() == IMessageProvider.WARNING){
-						this.setWarningMessage(problem.messageKey(), problem.messageArguments());
-					}
-				}
-		}
-		if (!this.containsErrorMessage()){
-			clearErrorMessage();
-		}
-	}
-	
-	public final boolean containsErrorMessage(){
-		boolean error = false;
-		for (ListIterator<Problem> problems = getSubject().branchProblems(); problems.hasNext();){
-			Problem problem = problems.next();
-			if (problem.messageType() ==IMessageProvider.ERROR){
-				error = true;
-			} 
-		}
-		return error;
-	}
-	/**
-	 * Validates the state object and based on its status, update the description
-	 * pane to show the first error if any exists and update the enablement of
-	 * the OK button.
-	 */
-	private void validate() {
-		getSubject().validateBranch();
-		updateMessage();
-		getButton(OK).setEnabled(!containsErrorMessage());
-	}
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java
deleted file mode 100644
index 66f3be3..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-/**
- * Implementation of {@link IStructuredContentProvider} and {@link ILabelProvider} that 
- * maintains a collection (Map, actually) of {@link ItemContentProvider} 
- * delegates that perform the function of providing content and label information
- * for each represented item
- * 
- * NB: This class, if used as a label provider *MUST* be used as a content provider
- * for the same viewer.  It may be used as a content provider with a different
- * label provider, however.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class DelegatingContentAndLabelProvider 
-	extends BaseLabelProvider
-	implements IStructuredContentProvider, ILabelProvider, IDescriptionProvider
-{
-	private final ItemContentProviderFactory itemContentProviderFactory;
-	
-	private final ItemLabelProviderFactory itemLabelProviderFactory;
-	
-	private final Map<Object, ItemContentProvider> itemContentProviders;
-	
-	private final Map<Object, ItemLabelProvider> itemLabelProviders;
-	
-	StructuredViewer viewer;
-	
-	
-	protected DelegatingContentAndLabelProvider(
-			ItemContentProviderFactory itemContentProviderFactory) {
-		this(itemContentProviderFactory, null);
-	}
-	
-	protected DelegatingContentAndLabelProvider(
-			ItemContentProviderFactory itemContentProviderFactory,
-			ItemLabelProviderFactory itemLabelProviderFactory) {
-		super();
-		this.itemContentProviderFactory = itemContentProviderFactory;
-		this.itemLabelProviderFactory = itemLabelProviderFactory;
-		this.itemContentProviders = new HashMap<Object, ItemContentProvider>();
-		this.itemLabelProviders = new HashMap<Object, ItemLabelProvider>();
-	}
-	
-	
-	protected ItemContentProvider itemContentProvider(Object item) {
-		ItemContentProvider itemContentProvider = this.itemContentProviders.get(item);
-		if (itemContentProvider != null) {
-			return itemContentProvider;
-		}
-		itemContentProvider = this.itemContentProviderFactory.buildItemContentProvider(item, this);
-		if (itemContentProvider == null) {
-			return null;
-		}
-		this.itemContentProviders.put(item, itemContentProvider);
-		return itemContentProvider;
-	}
-	
-	protected ItemLabelProvider itemLabelProvider(Object item) {
-		if (this.viewer == null) {
-			throw new IllegalStateException(
-					"This provider must be used as a content" + //$NON-NLS-1$
-					"provider *as well as* a label provider."); //$NON-NLS-1$
-		}
-		ItemLabelProvider itemLabelProvider = this.itemLabelProviders.get(item);
-		if (itemLabelProvider != null) {
-			return itemLabelProvider;
-		}
-		itemLabelProvider = this.itemLabelProviderFactory.buildItemLabelProvider(item, this);
-		if (itemLabelProvider == null) {
-			return null;
-		}
-		this.itemLabelProviders.put(item, itemLabelProvider);
-		return itemLabelProvider;
-	}
-	
-	
-	public Object[] getElements(Object inputElement) {
-		return itemContentProvider(inputElement).getElements();
-	}
-	
-	public Image getImage(Object element) {
-		ItemLabelProvider provider = itemLabelProvider(element);
-		return (provider == null) ? null :provider.getImage();
-	}
-	
-	public String getText(Object element) {
-		ItemLabelProvider provider = itemLabelProvider(element);
-		return (provider == null) ? null : provider.getText();
-	}
-	
-	public String getDescription(Object element) {
-		ItemLabelProvider provider = itemLabelProvider(element);
-		return (provider == null) ? null : provider.getDescription();
-	}
-	
-	/**
-	 * Disposes all items
-	 */
-	@Override
-	public void dispose() {
-		disposeProviders();
-		super.dispose();
-	}
-
-	protected void disposeProviders() {
-		// coded this way to allow some item providers to dispose of their child 
-		// elements without disrupting the entire process
-		while (! this.itemContentProviders.isEmpty()) {
-			dispose(this.itemContentProviders.keySet().iterator().next());
-		}
-		// this catches any items that weren't disposed from the content providers,
-		// though there most likely won't be any items represented here that 
-		// haven't already been disposed
-		while (! this.itemLabelProviders.isEmpty()) {
-			dispose(this.itemLabelProviders.keySet().iterator().next());
-		}
-	}
-	
-	/**
-	 * Disposes item
-	 */
-	public void dispose(Object item) {
-		if (this.itemContentProviders.containsKey(item)) {
-			this.itemContentProviders.get(item).dispose();
-			this.itemContentProviders.remove(item);
-		}
-		if (this.itemLabelProviders.containsKey(item)) {
-			this.itemLabelProviders.get(item).dispose();
-			this.itemLabelProviders.remove(item);
-		}
-	}
-	
-	public void inputChanged(Viewer structuredViewer, Object oldInput, Object newInput) {
-		if (oldInput != newInput) {
-			disposeProviders();
-		}
-		this.viewer = (StructuredViewer) structuredViewer;
-	}
-	
-	/**
-	 * Update the content for the given item
-	 */
-	public void updateContent(final Object item) {
-		Runnable runnable = new Runnable() {
-			public void run() {
-				if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
-					viewer.refresh(item);
-				}
-			}
-		};
-		if (!viewerIsDisposed()) {
-			this.viewer.getControl().getDisplay().asyncExec(runnable);
-		}
-	}
-	
-	// open up visibility a bit for inner classes
-	@Override
-	protected void fireLabelProviderChanged(LabelProviderChangedEvent event) {
-		super.fireLabelProviderChanged(event);
-	}
-	
-	/**
-	 * Update the label for the given item
-	 */
-	public void updateLabel(final Object item) {
-		Runnable runnable = new Runnable() {
-			public void run() {
-				if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
-					fireLabelProviderChanged(new LabelProviderChangedEvent(DelegatingContentAndLabelProvider.this, item));
-				}
-			}
-		};
-		if (!viewerIsDisposed()) {
-			this.viewer.getControl().getDisplay().asyncExec(runnable);
-		}
-	}
-	
-	protected boolean viewerIsDisposed() {
-		return this.viewer.getControl().isDisposed();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java
deleted file mode 100644
index 2f21206..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-/**
- * Marker interface used in conjunction with DelegatingContentProvider to return 
- * content information for a particular item.
- * @see DelegatingContentProvider
- * @see ItemContentProviderFactory
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ItemContentProvider
-{
-	/**
-	 * Return the elements of the represented item.
-	 * Note that when this is called, the represented item is an input element.
-	 */
-	Object[] getElements();
-	
-	/**
-	 * Dispose of this content provider, cleaning up all references, listeners, etc.
-	 */
-	void dispose();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java
deleted file mode 100644
index a9c951d..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-/**
- * Factory interface used to describe how to build {@link ItemContentProvider}s
- * for a {@link DelegatingContentAndLabelProvider}
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ItemContentProviderFactory
-{
-	ItemContentProvider buildItemContentProvider(Object item, 
-			DelegatingContentAndLabelProvider contentAndLabelProvider);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java
deleted file mode 100644
index 592a8a6..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface used in conjunction with DelegatingLabelProvider to return 
- * label information for a particular item.
- * @see DelegatingLabelProvider
- * @see ItemLabelProviderFactory
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ItemLabelProvider
-{
-	/**
-	 * Return the image for the item
-	 */
-	Image getImage();
-	
-	/**
-	 * Return the text for the item
-	 */
-	public String getText();
-	
-	/**
-	 * Return the description for the item
-	 */
-	public String getDescription();
-	
-	/**
-	 * Dispose of this label provider, cleaning up all references, listeners, etc.
-	 */
-	void dispose();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java
deleted file mode 100644
index db61b39..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-/**
- * Factory interface used to describe how to build IItemLabelProviders
- * for a DelegatingContentAndLabelProvider
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ItemLabelProviderFactory
-{
-	ItemLabelProvider buildItemLabelProvider(Object item, 
-			DelegatingContentAndLabelProvider contentAndLabelProvider);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java
deleted file mode 100644
index 2e978f0..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-/**
- * Interface used in conjunction with DelegatingTreeContentProvider to return 
- * tree information for a particular item.
- * @see DelegatingTreeContentProvider
- * @see TreeItemContentProviderFactory
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeItemContentProvider extends ItemContentProvider
-{
-	/**
-	 * Return the parent of the represented item
-	 */
-	Object getParent();
-	
-	/**
-	 * Return whether the represented item has children
-	 */
-	boolean hasChildren();
-	
-	/**
-	 * Return the children of the represented item
-	 */
-	Object[] getChildren();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java
deleted file mode 100644
index 393a737..0000000
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.jface;
-
-/**
- * Extension of {@link ItemContentProviderFactory} that extends functionality
- * for tree content
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeItemContentProviderFactory extends ItemContentProviderFactory
-{
-	public TreeItemContentProvider buildItemContentProvider(Object item, 
-			DelegatingContentAndLabelProvider contentAndLabelProvider);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/.classpath b/common/plugins/org.eclipse.jpt.common.utility/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/common/plugins/org.eclipse.jpt.common.utility/.cvsignore b/common/plugins/org.eclipse.jpt.common.utility/.cvsignore
deleted file mode 100644
index a128605..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.utility/.project b/common/plugins/org.eclipse.jpt.common.utility/.project
deleted file mode 100644
index dbe6e57..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.common.utility</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.core.resources.prefs b/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 8e5b2c2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:12:22 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.jdt.core.prefs b/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4438260..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:55:37 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF
deleted file mode 100644
index 2e8e2d8..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,135 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.common.utility
-Bundle-Version: 2.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.common.utility,
- org.eclipse.jpt.common.utility.internal;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.eclipselink.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.enumerations;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.iterables;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.iterators;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.model;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.model.listener.awt;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.model.value;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.model.value.prefs;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.model.value.swing;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.node;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.swing;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.internal.synchronizers;
-  x-friends:="org.eclipse.jpt.jpa.core,
-   org.eclipse.jpt.common.core,
-   org.eclipse.jpt.common.ui,
-   org.eclipse.jpt.jaxb.core,
-   org.eclipse.jpt.jaxb.ui,
-   org.eclipse.jpt.jpa.db,
-   org.eclipse.jpt.jpa.db.ui,
-   org.eclipse.jpt.jpa.gen,
-   org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.common.utility.model,
- org.eclipse.jpt.common.utility.model.event,
- org.eclipse.jpt.common.utility.model.listener,
- org.eclipse.jpt.common.utility.model.value,
- org.eclipse.jpt.common.utility.synchronizers
diff --git a/common/plugins/org.eclipse.jpt.common.utility/about.html b/common/plugins/org.eclipse.jpt.common.utility/about.html
deleted file mode 100644
index be534ba..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/common/plugins/org.eclipse.jpt.common.utility/build.properties b/common/plugins/org.eclipse.jpt.common.utility/build.properties
deleted file mode 100644
index 11ab8d4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
diff --git a/common/plugins/org.eclipse.jpt.common.utility/component.xml b/common/plugins/org.eclipse.jpt.common.utility/component.xml
deleted file mode 100644
index 80c3a50..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/component.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2007, 2010 Oracle. All rights reserved.
-  This program and the accompanying materials are made available under the
-  terms of the Eclipse Public License v1.0, which accompanies this distribution
-  and is available at http://www.eclipse.org/legal/epl-v10.html.
-
-  Contributors:
-    Oracle - initial API and implementation
- -->
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.common.utility"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.common.utility" fragment="false"/></component>
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.utility/plugin.properties b/common/plugins/org.eclipse.jpt.common.utility/plugin.properties
deleted file mode 100644
index 1693cd4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Common Utility
-providerName = Eclipse Web Tools Platform
-
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java
deleted file mode 100644
index f152ba5..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.Serializable;
-
-/**
- * Simple interface for implementing the GOF Command design pattern,
- * and it doesn't carry the baggage of {@link java.lang.Runnable}.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Command {
-
-	/**
-	 * Execute the command. The semantics of the command
-	 * is determined by the contract between the client and server.
-	 */
-	void execute();
-
-	/**
-	 * Singleton implementation of the command interface that will do nothing
-	 * when executed.
-	 */
-	final class Null implements Command, Serializable {
-		public static final Command INSTANCE = new Null();
-		public static Command instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void execute() {
-			// do nothing
-		}
-		@Override
-		public String toString() {
-			return "Command.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	/**
-	 * Singleton implementation of the command interface that will throw an
-	 * exception when executed.
-	 */
-	final class Disabled implements Command, Serializable {
-		public static final Command INSTANCE = new Disabled();
-		public static Command instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public void execute() {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Command.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java
deleted file mode 100644
index 461ab86..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.Serializable;
-
-/**
- * This interface allows clients to control how a command is executed.
- * This is useful when the server provides the command but the client provides
- * the context (e.g. the client would like to dispatch the command to the UI
- * thread).
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface CommandExecutor {
-
-	/**
-	 * Execute the specified command.
-	 */
-	void execute(Command command);
-
-
-	/**
-	 * Singleton implementation of the command executor interface
-	 * that simply executes the command without any sort of enhancement.
-	 */
-	final class Default implements CommandExecutor, Serializable {
-		public static final CommandExecutor INSTANCE = new Default();
-		public static CommandExecutor instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		public void execute(Command command) {
-			command.execute();
-		}
-		@Override
-		public String toString() {
-			return "CommandExecutor.Default"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java
deleted file mode 100644
index 2221859..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.Serializable;
-
-/**
- * Used by various "pluggable" classes to filter objects.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <T> the type of objects to be filtered
- */
-public interface Filter<T> {
-
-	/**
-	 * Return whether the specified object is "accepted" by the
-	 * filter. The semantics of "accept" is determined by the
-	 * contract between the client and the server.
-	 */
-	boolean accept(T o);
-
-
-	/**
-	 * Singleton implemetation of the filter interface that accepts all the
-	 * objects (i.e. it does no filtering).
-	 */
-	final class Null<S> implements Filter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Filter INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// nothing is filtered - everything is accepted
-		public boolean accept(S o) {
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "Filter.Null";  //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	/**
-	 * Singleton implemetation of the filter interface that accepts none of the
-	 * objects (i.e. it filters out all the objects).
-	 */
-	final class Opaque<S> implements Filter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Filter INSTANCE = new Opaque();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Opaque() {
-			super();
-		}
-		// everything is filtered - nothing is accepted
-		public boolean accept(S o) {
-			return false;
-		}
-		@Override
-		public String toString() {
-			return "Filter.Opaque";  //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	/**
-	 * Singleton implemetation of the filter interface that throws an exception
-	 * if called.
-	 */
-	final class Disabled<S> implements Filter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Filter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public boolean accept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Filter.Disabled";  //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java
deleted file mode 100644
index 11641aa..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * Extend {@link PrintWriter} to automatically indent new lines.
- */
-public class IndentingPrintWriter
-	extends PrintWriter
-{
-	private final String indent;
-	private int indentLevel;
-	private boolean needsIndent;
-
-	public static String DEFAULT_INDENT = "\t"; //$NON-NLS-1$
-
-
-	/**
-	 * Construct a writer that indents with tabs.
-	 */
-	public IndentingPrintWriter(Writer out) {
-		this(out, DEFAULT_INDENT);
-	}
-
-	/**
-	 * Construct a writer that indents with the specified string.
-	 */
-	public IndentingPrintWriter(Writer out, String indent) {
-		super(out);
-		this.indent = indent;
-		this.indentLevel = 0;
-		this.needsIndent = true;
-	}
-
-	/**
-	 * Set flag so following line is indented.
-	 */
-	@Override
-	public void println() {
-		synchronized (this.lock) {
-			super.println();
-			this.needsIndent = true;
-		}
-	}
-
-	/**
-	 * Print the appropriate indent.
-	 * Pre-condition: synchronized
-	 */
-	private void printIndent() {
-		if (this.needsIndent) {
-			this.needsIndent = false;
-			for (int i = this.indentLevel; i-- > 0; ) {
-				this.print(this.indent);
-			}
-		}
-	}
-
-	/**
-	 * Write a portion of an array of characters.
-	 */
-	@Override
-	public void write(char buf[], int off, int len) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(buf, off, len);
-		}
-	}
-
-	/**
-	 * Write a single character.
-	 */
-	@Override
-	public void write(int c) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(c);
-		}
-	}
-
-	/**
-	 * Write a portion of a string.
-	 */
-	@Override
-	public void write(String s, int off, int len) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(s, off, len);
-		}
-	}
-
-	/**
-	 * Bump the indent level.
-	 */
-	public void indent() {
-		this.incrementIndentLevel();
-	}
-
-	/**
-	 * Decrement the indent level.
-	 */
-	public void undent() {
-		this.decrementIndentLevel();
-	}
-
-	/**
-	 * Bump the indent level.
-	 */
-	public void incrementIndentLevel() {
-		synchronized (this.lock) {
-			this.indentLevel++;
-		}
-	}
-
-	/**
-	 * Decrement the indent level.
-	 */
-	public void decrementIndentLevel() {
-		synchronized (this.lock) {
-			this.indentLevel--;
-		}
-	}
-
-	/**
-	 * Return the current indent level.
-	 */
-	public int getIndentLevel() {
-		synchronized (this.lock) {
-			return this.indentLevel;
-		}
-	}
-
-	/**
-	 * Allow the indent level to be set directly.
-	 * Return the previous indent level.
-	 */
-	public int setIndentLevel(int indentLevel) {
-		synchronized (this.lock) {
-			int old = this.indentLevel;
-			this.indentLevel = indentLevel;
-			return old;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java
deleted file mode 100644
index fb019d5..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.PrintWriter;
-
-/**
- * This interface describes a Java type; i.e. its "element type"
- * and its "array depth". The element type is referenced by name,
- * allowing us to reference classes that are not (or cannot be) loaded.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * <p>
- * This interface is not intended to be implemented by clients.
- */
-public interface JavaType {
-
-	/**
-	 * Return the name of the type's "element type".
-	 * A member type will have one or more <code>'$'</code> characters in its name.
-	 */
-	String getElementTypeName();
-
-	/**
-	 * Return the type's "array depth".
-	 */
-	int getArrayDepth();
-
-	/**
-	 * Return whether the type is an array (i.e. its "array depth" is greater
-	 * than zero).
-	 */
-	boolean isArray();
-
-	/**
-	 * Return whether the type is a "primitive" (e.g. <code>int</code>, <code>float</code>).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	boolean isPrimitive();
-
-	/**
-	 * Return whether the type is a "primitive wrapper" (e.g. {@link java.lang.Integer},
-	 * {@link java.lang.Float}).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	boolean isPrimitiveWrapper();
-
-	/**
-	 * Return whether the type is a "variable primitive" (e.g. <code>int</code>, <code>float</code>,
-	 * but not <code>void</code>).
-	 * <p>
-	 * <strong>NB:</strong> variables cannot be declared <code>void</code>
-	 */
-	boolean isVariablePrimitive();
-
-	/**
-	 * Return whether the type is a "variable primitive wrapper" (e.g.
-	 * {@link java.lang.Integer}, {@link java.lang.Float},
-	 * but not {@link java.lang.Void}).
-	 * <p>
-	 * <strong>NB:</strong> variables cannot be declared <code>void</code>
-	 */
-	boolean isVariablePrimitiveWrapper();
-
-	/**
-	 * Return the class corresponding to the type's element type and array depth.
-	 */
-	Class<?> getJavaClass() throws ClassNotFoundException;
-
-	/**
-	 * Return the version of the type's name that matches that
-	 * returned by {@link java.lang.Class#getName()}
-	 * (e.g. <code>"[[J"</code>, <code>"[Ljava.lang.Object;"</code>,
-	 * <code>"java.util.Map$Entry"</code>).
-	 */
-	String getJavaClassName();
-
-	/**
-	 * Return whether the type is equal to the specified type.
-	 */
-	boolean equals(String otherElementTypeName, int otherArrayDepth);
-
-	/**
-	 * Return whether the type describes to the specified type.
-	 */
-	boolean describes(String className);
-
-	/**
-	 * Return whether the type describes to the specified type.
-	 */
-	boolean describes(Class<?> javaClass);
-
-	/**
-	 * Return whether the type is equal to the specified type.
-	 */
-	boolean equals(JavaType other);
-
-	/**
-	 * Return the version of the type's name that can be used in source code:<ul>
-	 * <li><code>"[[J"</code> => <code>"long[][]"</code>
-	 * <li><code>"java.util.Map$Entry"</code> => <code>"java.util.Map.Entry"</code>
-	 * </ul>
-	 */
-	String declaration();
-
-	/**
-	 * Append the version of the type's name that can be used in source code:<ul>
-	 * <li><code>"[[J"</code> => <code>"long[][]"</code>
-	 * <li><code>"java.util.Map$Entry"</code> => <code>"java.util.Map.Entry"</code>
-	 * </ul>
-	 */
-	void appendDeclarationTo(StringBuilder sb);
-
-	/**
-	 * Print the version of the type's name that can be used in source code:<ul>
-	 * <li><code>"[[J"</code> => <code>"long[][]"</code>
-	 * <li><code>"java.util.Map$Entry"</code> => <code>"java.util.Map.Entry"</code>
-	 * </ul>
-	 */
-	void printDeclarationOn(PrintWriter pw);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java
deleted file mode 100644
index 32e793a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Method;
-
-/**
- * This interface describes a Java method signature; i.e. its "name"
- * and its "parameter types". The parameter types are referenced by name,
- * allowing us to reference classes that are not (or cannot be) loaded.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * <p>
- * This interface is not intended to be implemented by clients.
- */
-public interface MethodSignature {
-
-	/**
-	 * Return the method's name.
-	 */
-	String getName();
-
-	/**
-	 * Return the method's parameter types.
-	 */
-	JavaType[] getParameterTypes();
-
-	/**
-	 * Return whether the method signature describes the specified method.
-	 */
-	boolean describes(Method method);
-
-	/**
-	 * Return whether the method signature equals the specified signature.
-	 */
-	boolean equals(String otherName, JavaType[] otherParameterTypes);
-
-	/**
-	 * Return whether the method signature equals the specified signature.
-	 */
-	boolean equals(MethodSignature other);
-
-	/**
-	 * Return a string representation of the method's signature:<p>
-	 * <code>"foo(int, java.lang.String)"</code>
-	 */
-	String getSignature();
-
-	/**
-	 * Append a string representation of the method's signature:<p>
-	 * <code>"foo(int, java.lang.String)"</code>
-	 */
-	void appendSignatureTo(StringBuilder sb);
-
-	/**
-	 * Print a string representation of the method's signature:<p>
-	 * <code>"foo(int, java.lang.String)"</code>
-	 */
-	void printSignatureOn(PrintWriter pw);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java
deleted file mode 100644
index 991c2c9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-/**
- * Provide a container for passing an object that can be changed by the recipient.
- */
-public interface ObjectReference<V>
-	extends ReadOnlyObjectReference<V>
-{
-	/**
-	 * Set the value.
-	 * Return the previous value.
-	 */
-	V setValue(V value);
-
-	/**
-	 * Set the value to <code>null</code>.
-	 * Return the previous value.
-	 */
-	V setNull();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java
deleted file mode 100644
index 02c4ff6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility;
-
-/**
- * Provide a container for holding an object that cannot be changed.
- * 
- * @see ObjectReference
- */
-public interface ReadOnlyObjectReference<V>
-{
-	/**
-	 * Return the current value.
-	 */
-	V getValue();
-
-	/**
-	 * Return whether the current value is equal to the specified value.
-	 */
-	boolean valueEquals(Object object);
-
-	/**
-	 * Return whether the current value is not equal to the specified value.
-	 */
-	boolean valueNotEqual(Object object);
-
-	/**
-	 * Return whether the current value is <code>null</code>.
-	 */
-	boolean isNull();
-
-	/**
-	 * Return whether the current value is not <code>null</code>.
-	 */
-	boolean isNotNull();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java
deleted file mode 100644
index 744d95c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Implement some of the methods in {@link Association} that can
- * be defined in terms of the other methods.
- */
-public abstract class AbstractAssociation<K, V>
-	implements Association<K, V>
-{
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractAssociation() {
-		super();
-	}
-
-	@Override
-	public synchronized boolean equals(Object o) {
-		if ( ! (o instanceof Association<?, ?>)) {
-			return false;
-		}
-		Association<?, ?> other = (Association<?, ?>) o;
-		return this.keyEquals(other) && this.valueEquals(other);
-	}
-
-	protected boolean keyEquals(Association<?, ?> other) {
-		Object key = this.getKey();
-		return (key == null) ?
-				(other.getKey() == null) :
-				key.equals(other.getKey());
-	}
-
-	protected boolean valueEquals(Association<?, ?> other) {
-		Object value = this.getValue();
-		return (value == null) ?
-				(other.getValue() == null) :
-				value.equals(other.getValue());
-	}
-
-	@Override
-	public synchronized int hashCode() {
-		return this.keyHashCode() ^ this.valueHashCode();
-	}
-
-	protected int keyHashCode() {
-		Object key = this.getKey();
-		return (key == null) ? 0 : key.hashCode();
-	}
-
-	protected int valueHashCode() {
-		Object value = this.getValue();
-		return (value == null) ? 0 : value.hashCode();
-	}
-
-	@Override
-	public synchronized String toString() {
-		return this.getKey() + " => " + this.getValue(); //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java
deleted file mode 100644
index 4f15202..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java
+++ /dev/null
@@ -1,3122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Random;
-
-/**
- * Array-related utility methods.
- */
-public final class ArrayTools {
-	public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-	public static final char[] EMPTY_CHAR_ARRAY = new char[0];
-	public static final int[] EMPTY_INT_ARRAY = new int[0];
-
-	// ********** instantiation **********
-
-	/**
-	 * Return a new array with the same length
-	 * and the same component type as the specified array.
-	 * <p>
-	 * <code>Arrays.newArray(Object[] array)</code>
-	 */
-	public static <E> E[] newArray(E[] array) {
-		return newArray(array, array.length);
-	}
-
-	/**
-	 * Return a new array with the specified length
-	 * and the same component type as the specified array.
-	 * <p>
-	 * <code>Arrays.newArray(Object[] array, int length)</code>
-	 */
-	public static <E> E[] newArray(E[] array, int length) {
-		return newArray(componentType(array), length);
-	}
-
-	/**
-	 * Return the specified array's component type, with appropriate support
-	 * for generics.
-	 */
-	public static <E> Class<? extends E> componentType(E[] array) {
-		Class<?> rawComponentType = array.getClass().getComponentType();
-		@SuppressWarnings("unchecked")
-		Class<? extends E> componentType = (Class<? extends E>) rawComponentType;
-		return componentType;
-	}
-
-	/**
-	 * Return a new array with the specified component type and length,
-	 * with appropriate support for generics. The component type cannot be a
-	 * primitive type.
-	 */
-	public static <E> E[] newArray(Class<? extends E> componentType, int length) {
-		if (componentType.isPrimitive()) {
-			throw new IllegalArgumentException("Array class cannot be primitive: " + componentType); //$NON-NLS-1$
-		}
-		return newArray_(componentType, length);
-	}
-
-	/**
-	 * assume the component type is not a primitive class
-	 */
-	@SuppressWarnings("unchecked")
-	private static <E> E[] newArray_(Class<? extends E> componentType, int length) {
-		return (E[]) ((componentType == OBJECT_CLASS) ?
-				new Object[length] :
-				Array.newInstance(componentType, length));
-	}
-	private static final Class<Object> OBJECT_CLASS = Object.class;
-
-
-	// ********** conversion **********
-
-	/**
-	 * Return an array corresponding to the specified iterable.
-	 * <p>
-	 * <code>Iterable.toArray()</code>
-	 * @see Collection#toArray()
-	 */
-	public static Object[] array(Iterable<?> iterable) {
-		return array(iterable.iterator());
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.toArray()</code>
-	 * @see Collection#toArray()
-	 */
-	public static Object[] array(Iterable<?> iterable, int iterableSize) {
-		return array(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the iterable fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of the iterable.
-	 * <p>
-	 * <code>Iterable.toArray(Object[])</code>
-	 * @see Collection#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterable<? extends E> iterable, E[] array) {
-		return array(iterable.iterator(), array);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the iterable fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of the iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.toArray(Object[])</code>
-	 * @see Collection#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterable<? extends E> iterable, int iterableSize, E[] array) {
-		return array(iterable.iterator(), iterableSize, array);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator.
-	 * <p>
-	 * <code>Iterator.toArray()</code>
-	 * @see Collection#toArray()
-	 */
-	public static Object[] array(Iterator<?> iterator) {
-		return iterator.hasNext() ?
-				CollectionTools.list(iterator).toArray() :
-				EMPTY_OBJECT_ARRAY;
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.toArray()</code>
-	 * @see Collection#toArray()
-	 */
-	public static Object[] array(Iterator<?> iterator, int iteratorSize) {
-		return iterator.hasNext() ?
-				CollectionTools.list(iterator, iteratorSize).toArray() :
-				EMPTY_OBJECT_ARRAY;
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the iterator fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of the iterator.
-	 * <p>
-	 * <code>Iterator.toArray(Object[])</code>
-	 * @see Collection#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterator<? extends E> iterator, E[] array) {
-		return iterator.hasNext() ?
-				CollectionTools.list(iterator).toArray(array) :
-				emptyArray(array);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the iterator fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of the iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.toArray(Object[])</code>
-	 * @see Collection#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterator<? extends E> iterator, int iteratorSize, E[] array) {
-		return iterator.hasNext() ?
-				CollectionTools.list(iterator, iteratorSize).toArray(array) :
-				emptyArray(array);
-	}
-
-	/**
-	 * If the specified array is empty, return it;
-	 * otherwise, set its first element to null.
-	 * @see Collection#toArray(Object[])
-	 */
-	private static <E> E[] emptyArray(E[] array) {
-		return (array.length == 0) ? array : clearFirst(array);
-	}
-
-	/**
-	 * Set the specified array's first element to null and and return the array.
-	 * Assume the array length > 0.
-	 */
-	private static <E> E[] clearFirst(E[] array) {
-		array[0] = null;
-		return array;
-	}
-
-
-	// ********** add **********
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array followed by the specified object to be added.
-	 * <p>
-	 * <code>Arrays.add(Object[] array, Object o)</code>
-	 */
-	public static <E> E[] add(E[] array, E value) {
-		int len = array.length;
-		E[] result = newArray(array, len + 1);
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array with the specified object added at the specified index.
-	 * <p>
-	 * <code>Arrays.add(Object[] array, int index, Object o)</code>
-	 */
-	public static <E> E[] add(E[] array, int index, E value) {
-		int len = array.length;
-		E[] result = newArray(array, len + 1);
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (index < len) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array followed by the specified value to be added.
-	 * <p>
-	 * <code>Arrays.add(char[] array, char value)</code>
-	 */
-	public static char[] add(char[] array, char value) {
-		int len = array.length;
-		char[] result = new char[len + 1];
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array with the specified value added at the specified index.
-	 * <p>
-	 * <code>Arrays.add(char[] array, int index, char value)</code>
-	 */
-	public static char[] add(char[] array, int index, char value) {
-		int len = array.length;
-		char[] result = new char[len + 1];
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (index < len) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array followed by the specified value to be added.
-	 * <p>
-	 * <code>Arrays.add(int[] array, int value)</code>
-	 */
-	public static int[] add(int[] array, int value) {
-		int len = array.length;
-		int[] result = new int[len + 1];
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array containing the elements in the
-	 * specified array with the specified value added at the specified index.
-	 * <p>
-	 * <code>Arrays.add(int[] array, int index, int value)</code>
-	 */
-	public static int[] add(int[] array, int index, int value) {
-		int len = array.length;
-		int[] result = new int[len + 1];
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (index < len) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-
-	// ********** add all **********
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array followed by the elements
-	 * in the specified collection.
-	 *<p>
-	 * <code>Arrays.addAll(Object[] array, Collection collection)</code>
-	 */
-	public static <E> E[] addAll(E[] array, Collection<? extends E> collection) {
-		return addAll(array, collection, collection.size());
-	}
-
-	/**
-	 * check collection size
-	 */
-	private static <E> E[] addAll(E[] array, Collection<? extends E> collection, int collectionSize) {
-		return (collectionSize == 0) ? array : addAll_(array, collection, collectionSize);
-	}
-
-	/**
-	 * assume the collection is non-empty
-	 */
-	private static <E> E[] addAll_(E[] array, Collection<? extends E> collection) {
-		return addAll_(array, collection, collection.size());
-	}
-
-	/**
-	 * assume collection size > zero
-	 */
-	private static <E> E[] addAll_(E[] array, Collection<? extends E> collection, int collectionSize) {
-		return addAll(array, collection, array.length, collectionSize);
-	}
-
-	/**
-	 * assume collection size > zero; check array length
-	 */
-	private static <E> E[] addAll(E[] array, Collection<? extends E> collection, int arrayLength, int collectionSize) {
-		return (arrayLength == 0) ?
-				collection.toArray(newArray(array, collectionSize)) :
-				addAll_(array, collection, arrayLength, collectionSize);
-	}
-
-	/**
-	 * assume array length and collection size > zero
-	 */
-	private static <E> E[] addAll_(E[] array, Collection<? extends E> collection, int arrayLength, int collectionSize) {
-		E[] result = newArray(array, arrayLength + collectionSize);
-		System.arraycopy(array, 0, result, 0, arrayLength);
-		int i = arrayLength;
-		for (E element : collection) {
-			result[i++] = element;
-		}
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterable.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] addAll(E[] array, Iterable<? extends E> iterable) {
-		return addAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] addAll(E[] array, Iterable<? extends E> iterable, int iterableSize) {
-		return addAll(array, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterator.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] addAll(E[] array, Iterator<? extends E> iterator) {
-		return iterator.hasNext() ? addAll_(array, CollectionTools.list(iterator)) : array;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] addAll(E[] array, Iterator<? extends E> iterator, int iteratorSize) {
-		return iterator.hasNext() ? addAll_(array, CollectionTools.list(iterator, iteratorSize)) : array;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array1, Object[] array2)</code>
-	 */
-	public static <E> E[] addAll(E[] array1, E... array2) {
-		return addAll(array1, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static <E> E[] addAll(E[] array1, E[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static <E> E[] addAll_(E[] array1, E[] array2, int array2Length) {
-		return addAll(array1, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static <E> E[] addAll(E[] array1, E[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0
-	 */
-	private static <E> E[] addAll_(E[] array1, E[] array2, int array1Length, int array2Length) {
-		E[] result = newArray(array1, array1Length + array2Length);
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array1, int index, Object[] array2)</code>
-	 */
-	public static <E> E[] addAll(E[] array1, int index, E... array2) {
-		return addAll(array1, index, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static <E> E[] addAll(E[] array1, int index, E[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static <E> E[] addAll_(E[] array1, int index, E[] array2, int array2Length) {
-		return addAll(array1, index, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static <E> E[] addAll(E[] array1, int index, E[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ?
-					array2 :
-					(index == array1Length) ?  // 'array2' added to end of 'array1'
-						addAll_(array1, array2, array1Length, array2Length) :
-						addAll_(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0 and index != array 1 length
-	 */
-	private static <E> E[] addAll_(E[] array1, int index, E[] array2, int array1Length, int array2Length) {
-		E[] result = newArray(array1, array1Length + array2Length);
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array with the elements
-	 * in the specified collection inserted at the specified index.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, int index, Collection c)</code>
-	 */
-	public static <E> E[] addAll(E[] array, int index, Collection<? extends E> collection) {
-		return addAll(array, index, collection, collection.size());
-	}
-
-	/**
-	 * check collection size
-	 */
-	private static <E> E[] addAll(E[] array, int index, Collection<? extends E> collection, int collectionSize) {
-		return (collectionSize == 0) ? array : addAll_(array, index, collection, collectionSize);
-	}
-
-	/**
-	 * assume collection size > 0
-	 */
-	private static <E> E[] addAll_(E[] array, int index, Collection<? extends E> collection, int collectionSize) {
-		return addAll(array, index, collection, array.length, collectionSize);
-	}
-
-	/**
-	 * assume collection size > 0; check array length
-	 */
-	private static <E> E[] addAll(E[] array, int index, Collection<? extends E> collection, int arrayLength, int collectionSize) {
-		if (arrayLength == 0) {
-			if (index == 0) {
-				return collection.toArray(newArray(array, collectionSize));
-			}
-			throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return (index == arrayLength) ?  // 'collection' added to end of 'array'
-				addAll_(array, collection, arrayLength, collectionSize) :
-				addAll_(array, index, collection, arrayLength, collectionSize);
-	}
-
-	/**
-	 * assume array length and collection size > 0 and index != array length
-	 */
-	private static <E> E[] addAll_(E[] array, int index, Collection<? extends E> collection, int arrayLength, int collectionSize) {
-		E[] result = newArray(array, arrayLength + collectionSize);
-		System.arraycopy(array, 0, result, 0, index);
-		int i = index;
-		for (E item : collection) {
-			result[i++] = item;
-		}
-		System.arraycopy(array, index, result, index + collectionSize, arrayLength - index);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array with the elements
-	 * in the specified iterable inserted at the specified index.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, int index, Iterable iterable)</code>
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterable<? extends E> iterable) {
-		return addAll(array, index, iterable.iterator());
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array with the elements
-	 * in the specified iterable inserted at the specified index.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, int index, Iterable iterable)</code>
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterable<? extends E> iterable, int iterableSize) {
-		return addAll(array, index, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array with the elements
-	 * in the specified iterator inserted at the specified index.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, int index, Iterator iterator)</code>
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterator<? extends E> iterator) {
-		return iterator.hasNext() ? addAll_(array, index, CollectionTools.list(iterator)) : array;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array with the elements
-	 * in the specified iterator inserted at the specified index.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Arrays.addAll(Object[] array, int index, Iterator iterator)</code>
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterator<? extends E> iterator, int iteratorSize) {
-		return iterator.hasNext() ? addAll_(array, index, CollectionTools.list(iterator, iteratorSize)) : array;
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] addAll_(E[] array, int index, Collection<? extends E> collection) {
-		return addAll_(array, index, collection, collection.size());
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * <p>
-	 * <code>Arrays.addAll(char[] array1, char[] array2)</code>
-	 */
-	public static char[] addAll(char[] array1, char... array2) {
-		return addAll(array1, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static char[] addAll(char[] array1, char[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static char[] addAll_(char[] array1, char[] array2, int array2Length) {
-		return addAll(array1, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static char[] addAll(char[] array1, char[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0
-	 */
-	private static char[] addAll_(char[] array1, char[] array2, int array1Length, int array2Length) {
-		char[] result = new char[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * <p>
-	 * <code>Arrays.add(char[] array1, int index, char[] array2)</code>
-	 */
-	public static char[] addAll(char[] array1, int index, char... array2) {
-		return addAll(array1, index, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static char[] addAll(char[] array1, int index, char[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static char[] addAll_(char[] array1, int index, char[] array2, int array2Length) {
-		return addAll(array1, index, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static char[] addAll(char[] array1, int index, char[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ?
-					array2 :
-					(index == array1Length) ?  // 'array2' added to end of 'array1'
-						addAll_(array1, array2, array1Length, array2Length) :
-						addAll_(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0 and index != array 1 length
-	 */
-	private static char[] addAll_(char[] array1, int index, char[] array2, int array1Length, int array2Length) {
-		char[] result = new char[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * <p>
-	 * <code>Arrays.addAll(int[] array1, int[] array2)</code>
-	 */
-	public static int[] addAll(int[] array1, int... array2) {
-		return addAll(array1, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static int[] addAll(int[] array1, int[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static int[] addAll_(int[] array1, int[] array2, int array2Length) {
-		return addAll(array1, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static int[] addAll(int[] array1, int[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0
-	 */
-	private static int[] addAll_(int[] array1, int[] array2, int array1Length, int array2Length) {
-		int[] result = new int[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return an array containing the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * <p>
-	 * <code>Arrays.add(int[] array1, int index, int[] array2)</code>
-	 */
-	public static int[] addAll(int[] array1, int index, int... array2) {
-		return addAll(array1, index, array2, array2.length);
-	}
-
-	/**
-	 * check array 2 length
-	 */
-	private static int[] addAll(int[] array1, int index, int[] array2, int array2Length) {
-		return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0
-	 */
-	private static int[] addAll_(int[] array1, int index, int[] array2, int array2Length) {
-		return addAll(array1, index, array2, array1.length, array2Length);
-	}
-
-	/**
-	 * assume array 2 length > 0; check array 1 length
-	 */
-	private static int[] addAll(int[] array1, int index, int[] array2, int array1Length, int array2Length) {
-		return (array1Length == 0) ?
-					array2 :
-					(index == array1Length) ?  // 'array2' added to end of 'array1'
-						addAll_(array1, array2, array1Length, array2Length) :
-						addAll_(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0 and index != array 1 length
-	 */
-	private static int[] addAll_(int[] array1, int index, int[] array2, int array1Length, int array2Length) {
-		int[] result = new int[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-
-	// ********** clear **********
-
-	/**
-	 * Return an empty array with the same component type as the specified array.
-	 * <p>
-	 * <code>Arrays.clear(Object[] array)</code>
-	 */
-	public static <E> E[] clear(E[] array) {
-		return (array.length == 0) ? array : newArray(array, 0);
-	}
-
-
-	// ********** concatenate **********
-
-	/**
-	 * Return an array containing all the elements in all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out of other constant arrays.
-	 * <p>
-	 * <code>Arrays.concatenate(Object[]... arrays)</code>
-	 */
-	public static <E> E[] concatenate(E[]... arrays) {
-		int len = 0;
-		for (E[] array : arrays) {
-			len += array.length;
-		}
-		E[] result = newArray(arrays[0], len);
-		if (len == 0) {
-			return result;
-		}
-		int current = 0;
-		for (E[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength > 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return an array containing all the elements in  all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out other constant arrays.
-	 * <p>
-	 * <code>Arrays.concatenate(char[]... arrays)</code>
-	 */
-	public static char[] concatenate(char[]... arrays) {
-		int len = 0;
-		for (char[] array : arrays) {
-			len += array.length;
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		char[] result = new char[len];
-		int current = 0;
-		for (char[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength != 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return an array containing all the elements in  all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out other constant arrays.
-	 * <p>
-	 * <code>Arrays.concatenate(int[]... arrays)</code>
-	 */
-	public static int[] concatenate(int[]... arrays) {
-		int len = 0;
-		for (int[] array : arrays) {
-			len += array.length;
-		}
-		if (len == 0) {
-			return EMPTY_INT_ARRAY;
-		}
-		int[] result = new int[len];
-		int current = 0;
-		for (int[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength != 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-
-	// ********** contains **********
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * <p>
-	 * <code>Arrays.contains(Object[] array, Object o)</code>
-	 */
-	public static boolean contains(Object[] array, Object value) {
-		return contains(array, value, array.length);
-	}
-
-	/**
-	 * check array length
-	 */
-	private static boolean contains(Object[] array, Object value, int arrayLength) {
-		return (arrayLength == 0) ? false : contains_(array, value, arrayLength);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	public static boolean contains_(Object[] array, Object value, int arrayLength) {
-		if (value == null) {
-			for (int i = arrayLength; i-- > 0; ) {
-				if (array[i] == null) {
-					return true;
-				}
-			}
-		} else {
-			for (int i = arrayLength; i-- > 0; ) {
-				if (value.equals(array[i])) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * <p>
-	 * <code>Arrays.contains(char[] array, char value)</code>
-	 */
-	public static boolean contains(char[] array, char value) {
-		return contains(array, value, array.length);
-	}
-
-	/**
-	 * check array length
-	 */
-	private static boolean contains(char[] array, char value, int arrayLength) {
-		return (arrayLength == 0) ? false : contains_(array, value, arrayLength);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	private static boolean contains_(char[] array, char value, int arrayLength) {
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] == value) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * <p>
-	 * <code>Arrays.contains(int[] array, int value)</code>
-	 */
-	public static boolean contains(int[] array, int value) {
-		return contains(array, value, array.length);
-	}
-
-	/**
-	 * check array length
-	 */
-	private static boolean contains(int[] array, int value, int arrayLength) {
-		return (arrayLength == 0) ? false : contains_(array, value, arrayLength);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	private static boolean contains_(int[] array, int value, int arrayLength) {
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] == value) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-
-	// ********** contains all **********
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified collection.
-	 * <p>
-	 * <code>Arrays.containsAll(Object[] array, Collection collection)</code>
-	 */
-	public static boolean containsAll(Object[] array, Collection<?> collection) {
-		return containsAll(array, collection.iterator());
-	}
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified iterable.
-	 * <p>
-	 * <code>Arrays.containsAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Object[] array, Iterable<?> iterable) {
-		return containsAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified iterator.
-	 * <p>
-	 * <code>Arrays.containsAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Object[] array, Iterator<?> iterator) {
-		// use hashed lookup
-		HashSet<Object> set = CollectionTools.set(array);
-		while (iterator.hasNext()) {
-			if ( ! set.contains(iterator.next())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * <p>
-	 * <code>Arrays.containsAll(Object[] array1, Object[] array2)</code>
-	 */
-	public static boolean containsAll(Object[] array1, Object... array2) {
-		// use hashed lookup
-		HashSet<Object> set = CollectionTools.set(array1);
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! set.contains(array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * <p>
-	 * <code>Arrays.containsAll(char[] array1, char[] array2)</code>
-	 */
-	public static boolean containsAll(char[] array1, char... array2) {
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! contains(array1, array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * <p>
-	 * <code>Arrays.containsAll(int[] array1, int[] array2)</code>
-	 */
-	public static boolean containsAll(int[] array1, int... array2) {
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! contains(array1, array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-
-	// ********** diff **********
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different, beginning at the end.
-	 * If the arrays are identical, return -1.
-	 * If the arrays are different sizes, return the index of the
-	 * last element in the longer array.
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 */
-	public static int diffEnd(Object[] array1, Object[] array2) {
-		int len1 = array1.length;
-		int len2 = array2.length;
-		if (len1 != len2) {
-			return Math.max(len1, len2) - 1;
-		}
-		for (int i = len1 - 1; i > -1; i--) {
-			Object o = array1[i];
-			if (o == null) {
-				if (array2[i] != null) {
-					return i;
-				}
-			} else {
-				if ( ! o.equals(array2[i])) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 * @see #diffStart(Object[], Object[])
-	 * @see #diffEnd(Object[], Object[])
-	 */
-	public static Range diffRange(Object[] array1, Object[] array2) {
-		int end = diffEnd(array1, array2);
-		if (end == -1) {
-			// the lists are identical, the start is the size of the two lists
-			return new Range(array1.length, end);
-		}
-		// the lists are different, calculate the start of the range
-		return new Range(diffStart(array1, array2), end);
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different. If the arrays are identical, return
-	 * the size of the two arrays (i.e. one past the last index).
-	 * If the arrays are different sizes and all the elements in
-	 * the shorter array match their corresponding elements in
-	 * the longer array, return the size of the shorter array
-	 * (i.e. one past the last index of the shorter array).
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 */
-	public static int diffStart(Object[] array1, Object[] array2) {
-		int end = Math.min(array1.length, array2.length);
-		for (int i = 0; i < end; i++) {
-			Object o = array1[i];
-			if (o == null) {
-				if (array2[i] != null) {
-					return i;
-				}
-			} else {
-				if ( ! o.equals(array2[i])) {
-					return i;
-				}
-			}
-		}
-		return end;
-	}
-
-
-	// ********** identity diff **********
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different, beginning at the end.
-	 * If the arrays are identical, return -1.
-	 * If the arrays are different sizes, return the index of the
-	 * last element in the longer array.
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffEnd(Object[] array1, Object[] array2) {
-		int len1 = array1.length;
-		int len2 = array2.length;
-		if (len1 != len2) {
-			return Math.max(len1, len2) - 1;
-		}
-		for (int i = len1 - 1; i > -1; i--) {
-			if (array1[i] != array2[i]) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use object identity to compare the elements.
-	 * @see #identityDiffStart(Object[], Object[])
-	 * @see #identityDiffEnd(Object[], Object[])
-	 */
-	public static Range identityDiffRange(Object[] array1, Object[] array2) {
-		int end = identityDiffEnd(array1, array2);
-		if (end == -1) {
-			// the lists are identical, the start is the size of the two lists
-			return new Range(array1.length, end);
-		}
-		// the lists are different, calculate the start of the range
-		return new Range(identityDiffStart(array1, array2), end);
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different. If the arrays are identical, return
-	 * the size of the two arrays (i.e. one past the last index).
-	 * If the arrays are different sizes and all the elements in
-	 * the shorter array match their corresponding elements in
-	 * the longer array, return the size of the shorter array
-	 * (i.e. one past the last index of the shorter array).
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffStart(Object[] array1, Object[] array2) {
-		int end = Math.min(array1.length, array2.length);
-		for (int i = 0; i < end; i++) {
-			if (array1[i] != array2[i]) {
-				return i;
-			}
-		}
-		return end;
-	}
-
-
-	// ********** elements are identical **********
-
-	/**
-	 * Return whether the specified arrays contain the same elements.
-	 * <p>
-	 * <code>Arrays.identical(Object[] array1, Object[] array2)</code>
-	 */
-	public static boolean elementsAreIdentical(Object[] array1, Object[] array2) {
-		if (array1 == array2) {
-			return true;
-		}
-		if (array1 == null || array2 == null) {
-			return false;
-		}
-		int length = array1.length;
-		if (array2.length != length) {
-			return false;
-		}
-		for (int i = length; i-- > 0; ) {
-			if (array1[i] != array2[i]) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-
-	// ********** index of **********
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.indexOf(Object[] array, Object o)</code>
-	 */
-	public static int indexOf(Object[] array, Object value) {
-		int len = array.length;
-		if (value == null) {
-			for (int i = 0; i < len; i++) {
-				if (array[i] == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = 0; i < len; i++) {
-				if (value.equals(array[i])) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.identityIndexOf(Object[] array, Object o)</code>
-	 */
-	public static int identityIndexOf(Object[] array, Object value) {
-		int len = array.length;
-		for (int i = 0; i < len; i++) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.indexOf(char[] array, char value)</code>
-	 */
-	public static int indexOf(char[] array, char value) {
-		int len = array.length;
-		for (int i = 0; i < len; i++) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.indexOf(int[] array, int value)</code>
-	 */
-	public static int indexOf(int[] array, int value) {
-		int len = array.length;
-		for (int i = 0; i < len; i++) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-
-	// ********** insertion index of **********
-
-	/**
-	 * Return the maximum index of where the specified comparable object
-	 * should be inserted into the specified sorted array and still keep
-	 * the array sorted.
-	 */
-	public static <E extends Comparable<? super E>> int insertionIndexOf(E[] sortedArray, Comparable<E> value) {
-		int len = sortedArray.length;
-		for (int i = 0; i < len; i++) {
-			if (value.compareTo(sortedArray[i]) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-	/**
-	 * Return the maximum index of where the specified comparable object
-	 * should be inserted into the specified sorted array and still keep
-	 * the array sorted.
-	 */
-	public static <E> int insertionIndexOf(E[] sortedArray, E value, Comparator<? super E> comparator) {
-		int len = sortedArray.length;
-		for (int i = 0; i < len; i++) {
-			if (comparator.compare(value, sortedArray[i]) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-
-	// ********** last index of **********
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array;
-	 * return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.lastIndexOf(Object[] array, Object o)</code>
-	 */
-	public static int lastIndexOf(Object[] array, Object value) {
-		int len = array.length;
-		if (value == null) {
-			for (int i = len; i-- > 0; ) {
-				if (array[i] == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = len; i-- > 0; ) {
-				if (value.equals(array[i])) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.lastIndexOf(char[] array, char value)</code>
-	 */
-	public static int lastIndexOf(char[] array, char value) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * <p>
-	 * <code>Arrays.lastIndexOf(int[] array, int value)</code>
-	 */
-	public static int lastIndexOf(int[] array, int value) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-
-	// ********** min/max **********
-
-	/**
-	 * Return the character from the specified array with the minimum value.
-	 * <p>
-	 * <code>Arrays.min(char[] array)</code>
-	 */
-	public static char min(char... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int last = len - 1;
-		char min = array[last];
-		for (int i = last; i-- > 0; ) {
-			char c = array[i];
-			if (c < min) {
-				min = c;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Return the integer from the specified array with the minimum value.
-	 * <p>
-	 * <code>Arrays.min(int[] array)</code>
-	 */
-	public static int min(int... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int last = len - 1;
-		int min = array[last];
-		for (int i = last; i-- > 0; ) {
-			int x = array[i];
-			if (x < min) {
-				min = x;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Return the character from the specified array with the maximum value.
-	 * <p>
-	 * <code>Arrays.max(char[] array)</code>
-	 */
-	public static char max(char... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int last = len - 1;
-		char max = array[last];
-		for (int i = last; i-- > 0; ) {
-			char c = array[i];
-			if (c > max) {
-				max = c;
-			}
-		}
-		return max;
-	}
-
-	/**
-	 * Return the integer from the specified array with the maximum value.
-	 * <p>
-	 * <code>Arrays.max(int[] array)</code>
-	 */
-	public static int max(int... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int last = len - 1;
-		int max = array[last];
-		for (int i = last; i-- > 0; ) {
-			int x = array[i];
-			if (x > max) {
-				max = x;
-			}
-		}
-		return max;
-	}
-
-
-	// ********** move **********
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(Object[] array, int targetIndex, int sourceIndex)</code>
-	 */
-	public static <E> E[] move(E[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume target index != source index
-	 */
-	private static <E> E[] move_(E[] array, int targetIndex, int sourceIndex) {
-		E temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(Object[] array, int targetIndex, int sourceIndex, int length)</code>
-	 */
-	public static <E> E[] move(E[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		E[] temp = newArray(array, length);
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(int[] array, int targetIndex, int sourceIndex)</code>
-	 */
-	public static int[] move(int[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static int[] move_(int[] array, int targetIndex, int sourceIndex) {
-		int temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(int[] array, int targetIndex, int sourceIndex, int length)</code>
-	 */
-	public static int[] move(int[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		int[] temp = new int[length];
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(char[] array, int targetIndex, int sourceIndex)</code>
-	 */
-	public static char[] move(char[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static char[] move_(char[] array, int targetIndex, int sourceIndex) {
-		char temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * <p>
-	 * <code>Arrays.move(char[] array, int targetIndex, int sourceIndex, int length)</code>
-	 */
-	public static char[] move(char[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		char[] temp = new char[length];
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-
-	// ********** remove **********
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.remove(Object[] array, Object value)</code>
-	 */
-	public static <E> E[] remove(E[] array, Object value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.remove(char[] array, char value)</code>
-	 */
-	public static char[] remove(char[] array, char value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.remove(int[] array, int value)</code>
-	 */
-	public static int[] remove(int[] array, int value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the first element removed.
-	 * <p>
-	 * <code>Arrays.removeFirst(Object[] array)</code>
-	 */
-	public static <E> E[] removeFirst(E[] array) {
-		return removeElementAtIndex(array, 0);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the first element removed.
-	 * <p>
-	 * <code>Arrays.removeFirst(char[] array)</code>
-	 */
-	public static char[] removeFirst(char[] array) {
-		return removeElementAtIndex(array, 0);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the first element removed.
-	 * <p>
-	 * <code>Arrays.removeFirst(int[] array)</code>
-	 */
-	public static int[] removeFirst(int[] array) {
-		return removeElementAtIndex(array, 0);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the last element removed.
-	 * <p>
-	 * <code>Arrays.removeLast(Object[] array)</code>
-	 */
-	public static <E> E[] removeLast(E[] array) {
-		return removeElementAtIndex(array, array.length - 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the last element removed.
-	 * <p>
-	 * <code>Arrays.removeLast(char[] array)</code>
-	 */
-	public static char[] removeLast(char[] array) {
-		return removeElementAtIndex(array, array.length - 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the last element removed.
-	 * <p>
-	 * <code>Arrays.removeLast(int[] array)</code>
-	 */
-	public static int[] removeLast(int[] array) {
-		return removeElementAtIndex(array, array.length - 1);
-	}
-
-
-	// ********** remove all **********
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] removeAll(E[] array, Iterable<?> iterable) {
-		return removeAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] removeAll(E[] array, Iterable<?> iterable, int iterableSize) {
-		return removeAll(array, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] removeAll(E[] array, Iterator<?> iterator) {
-		// convert to a set to take advantage of hashed look-up
-		return iterator.hasNext() ? removeAll_(array, CollectionTools.set(iterator)) : array;
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] removeAll(E[] array, Iterator<?> iterator, int iteratorSize) {
-		// convert to a set to take advantage of hashed look-up
-		return iterator.hasNext() ? removeAll_(array, CollectionTools.set(iterator, iteratorSize)) : array;
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified collection and return the result.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array, Collection collection)</code>
-	 */
-	public static <E> E[] removeAll(E[] array, Collection<?> collection) {
-		return collection.isEmpty() ? array : removeAll_(array, collection);
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] removeAll_(E[] array, Collection<?> collection) {
-		return removeAll(array, collection, array.length);
-	}
-
-	/**
-	 * assume collection is non-empty; check array length
-	 */
-	private static <E> E[] removeAll(E[] array, Collection<?> collection, int arrayLength) {
-		return (arrayLength == 0) ? array : removeAll_(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume collection is non-empty and array length > 0
-	 */
-	private static <E> E[] removeAll_(E[] array, Collection<?> collection, int arrayLength) {
-		// build the indices of the elements that are to remain
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = 0; i < arrayLength; i++) {
-			if ( ! collection.contains(array[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays.removeAll(Object[] array1, Object[] array2)</code>
-	 */
-	public static <E> E[] removeAll(E[] array1, Object... array2) {
-		// convert to a set to take advantage of hashed look-up
-		return (array2.length == 0) ? array1 : removeAll_(array1, CollectionTools.set(array2));
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays#removeAll(char[] array1, char[] array2)</code>
-	 */
-	public static char[] removeAll(char[] array1, char... array2) {
-		if (array2.length == 0) {
-			return array1;
-		}
-		int array1Length = array1.length;
-		if (array1Length == 0) {
-			return array1;
-		}
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if ( ! contains(array2, array1[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // nothing was removed
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays#removeAll(int[] array1, int[] array2)</code>
-	 */
-	public static int[] removeAll(int[] array1, int... array2) {
-		if (array2.length == 0) {
-			return array1;
-		}
-		int array1Length = array1.length;
-		if (array1Length == 0) {
-			return array1;
-		}
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if ( ! contains(array2, array1[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // nothing was removed
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-
-	// ********** remove all occurrences **********
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * <p>
-	 * <code>Arrays.removeAllOccurrences(Object[] array, Object value)</code>
-	 */
-	public static <E> E[] removeAllOccurrences(E[] array, Object value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		if (value == null) {
-			for (int i = arrayLength; i-- > 0; ) {
-				if (array[i] != null) {
-					indices[j++] = i;
-				}
-			}
-		} else {
-			for (int i = array.length; i-- > 0; ) {
-				if ( ! value.equals(array[i])) {
-					indices[j++] = i;
-				}
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * <p>
-	 * <code>Arrays.removeAllOccurrences(char[] array, char value)</code>
-	 */
-	public static char[] removeAllOccurrences(char[] array, char value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] != value) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * <p>
-	 * <code>Arrays.removeAllOccurrences(int[] array, int value)</code>
-	 */
-	public static int[] removeAllOccurrences(int[] array, int value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] != value) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-
-	// ********** remove duplicate elements **********
-
-	/**
-	 * Remove any duplicate elements from the specified array,
-	 * while maintaining the order.
-	 */
-	public static <E> E[] removeDuplicateElements(E... array) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		ArrayList<E> temp = CollectionTools.list(array);
-		return CollectionTools.removeDuplicateElements(temp, len) ?
-					temp.toArray(newArray(array, temp.size())) :
-					array;
-	}
-
-
-	// ********** remove element at index **********
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.removeElementAtIndex(Object[] array, int index)</code>
-	 */
-	public static <E> E[] removeElementAtIndex(E[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.removeElementAtIndex(char[] array, int index)</code>
-	 */
-	public static char[] removeElementAtIndex(char[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * <p>
-	 * <code>Arrays.removeElementAtIndex(int[] array, int index)</code>
-	 */
-	public static int[] removeElementAtIndex(int[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-
-	// ********** remove elements at index **********
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * <p>
-	 * <code>Arrays.removeElementsAtIndex(Object[] array, int index, int length)</code>
-	 */
-	public static <E> E[] removeElementsAtIndex(E[] array, int index, int length) {
-		if (length == 0) {
-			return array;
-		}
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		E[] result = newArray(array, newLength);
-		if ((newLength == 0) && (index == 0)) {
-			return result;  // performance tweak
-		}
-		if (index != 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		int length2 = newLength - index;
-		if (length2 != 0) {
-			System.arraycopy(array, index + length, result, index, length2);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * <p>
-	 * <code>Arrays.removeElementsAtIndex(char[] array, int index, int length)
-	 */
-	public static char[] removeElementsAtIndex(char[] array, int index, int length) {
-		if (length == 0) {
-			return array;
-		}
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		if ((newLength == 0) && (index == 0)) {
-			return EMPTY_CHAR_ARRAY;  // performance tweak
-		}
-		char[] result = new char[newLength];
-		if (index != 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		int length2 = newLength - index;
-		if (length2 != 0) {
-			System.arraycopy(array, index + length, result, index, length2);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * <p>
-	 * <code>Arrays.removeElementsAtIndex(int[] array, int index, int length)
-	 */
-	public static int[] removeElementsAtIndex(int[] array, int index, int length) {
-		if (length == 0) {
-			return array;
-		}
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		if ((newLength == 0) && (index == 0)) {
-			return EMPTY_INT_ARRAY;  // performance tweak
-		}
-		int[] result = new int[newLength];
-		if (index != 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		int length2 = newLength - index;
-		if (length2 != 0) {
-			System.arraycopy(array, index + length, result, index, length2);
-		}
-		return result;
-	}
-
-
-	// ********** replace all **********
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value. Return the altered array.
-	 * <p>
-	 * <code>Arrays.replaceAll(Object[] array, Object oldValue, Object newValue)</code>
-	 */
-	public static <E> E[] replaceAll(E[] array, Object oldValue, E newValue) {
-		if (oldValue == null) {
-			for (int i = array.length; i-- > 0; ) {
-				if (array[i] == null) {
-					array[i] = newValue;
-				}
-			}
-		} else {
-			for (int i = array.length; i-- > 0; ) {
-				if (oldValue.equals(array[i])) {
-					array[i] = newValue;
-				}
-			}
-		}
-		return array;
-	}
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value. Return the altered array.
-	 *<p>
-	 * <code> Arrays.replaceAll(int[] array, int oldValue, int newValue)</code>
-	 */
-	public static int[] replaceAll(int[] array, int oldValue, int newValue) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == oldValue) {
-				array[i] = newValue;
-			}
-		}
-		return array;
-	}
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value. Return the altered array.
-	 * <p>
-	 * <code>Arrays.replaceAll(char[] array, char oldValue, char newValue)</code>
-	 */
-	public static char[] replaceAll(char[] array, char oldValue, char newValue) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == oldValue) {
-				array[i] = newValue;
-			}
-		}
-		return array;
-	}
-
-
-	// ********** retain all **********
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] retainAll(E[] array, Iterable<?> iterable) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator());
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array, Iterable iterable)</code>
-	 */
-	public static <E> E[] retainAll(E[] array, Iterable<?> iterable, int iterableSize) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] retainAll(E[] array, Iterator<?> iterator) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array, Iterator iterator)</code>
-	 */
-	public static <E> E[] retainAll(E[] array, Iterator<?> iterator, int iteratorSize) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator, iteratorSize);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	private static <E> E[] retainAll(E[] array, int arrayLength, Iterator<?> iterator) {
-		return iterator.hasNext() ?
-				retainAll_(array, CollectionTools.set(iterator), arrayLength) :
-				newArray(array, 0);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	private static <E> E[] retainAll(E[] array, int arrayLength, Iterator<?> iterator, int iteratorSize) {
-		return iterator.hasNext() ?
-				retainAll_(array, CollectionTools.set(iterator, iteratorSize), arrayLength) :
-				newArray(array, 0);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified collection and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array, Collection collection)</code>
-	 */
-	public static <E> E[] retainAll(E[] array, Collection<?> collection) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume array length > 0
-	 */
-	private static <E> E[] retainAll(E[] array, Collection<?> collection, int arrayLength) {
-		return collection.isEmpty() ?
-				newArray(array, 0) :
-				retainAll_(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume collection is non-empty and array length > 0
-	 */
-	private static <E> E[] retainAll_(E[] array, Collection<?> collection, int arrayLength) {
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = 0; i < arrayLength; i++) {
-			if (collection.contains(array[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // everything was retained
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(Object[] array1, Object[] array2)</code>
-	 */
-	public static <E> E[] retainAll(E[] array1, Object[] array2) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ?
-				array1 :
-				(array2.length == 0) ?
-					newArray(array1, 0) :
-					retainAll(array1, CollectionTools.set(array2), array1Length);
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(char[] array1, char[] array2)</code>
-	 */
-	public static char[] retainAll(char[] array1, char... array2) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length);
-	}
-
-	/**
-	 * assume array 1 length > 0
-	 */
-	private static char[] retainAll(char[] array1, char[] array2, int array1Length) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? EMPTY_CHAR_ARRAY : retainAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0
-	 */
-	private static char[] retainAll(char[] array1, char[] array2, int array1Length, int array2Length) {
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if (contains_(array2, array1[i], array2Length)) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // everything was retained
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * <p>
-	 * <code>Arrays.retainAll(int[] array1, int[] array2)</code>
-	 */
-	public static int[] retainAll(int[] array1, int... array2) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length);
-	}
-
-	/**
-	 * assume array 1 length > 0
-	 */
-	private static int[] retainAll(int[] array1, int[] array2, int array1Length) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? EMPTY_INT_ARRAY : retainAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume both array lengths > 0
-	 */
-	private static int[] retainAll(int[] array1, int[] array2, int array1Length, int array2Length) {
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if (contains_(array2, array1[i], array2Length)) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // everything was retained
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-
-	// ********** reverse **********
-
-	/**
-	 * Return the array, reversed.
-	 * <p>
-	 * <code>Arrays.reverse(Object... array)</code>
-	 */
-	public static <E> E[] reverse(E... array) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array, reversed.
-	 * <p>
-	 * <code>Arrays.reverse(char... array)</code>
-	 */
-	public static char[] reverse(char... array) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array, reversed.
-	 * <p>
-	 * <code>Arrays.reverse(int... array)</code>
-	 */
-	public static int[] reverse(int... array) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-
-	// ********** rotate **********
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * <p>
-	 * <code>Arrays.rotate(Object[] array)</code>
-	 */
-	public static <E> E[] rotate(E... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * <p>
-	 * <code>Arrays.rotate(Object[] array, int distance)</code>
-	 */
-	public static <E> E[] rotate(E[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			E displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				E temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * <p>
-	 * <code>Arrays.rotate(char[] array)</code>
-	 */
-	public static char[] rotate(char... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * <p>
-	 * <code>Arrays.rotate(char[] array, int distance)</code>
-	 */
-	public static char[] rotate(char[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			char displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				char temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * <p>
-	 * <code>Arrays.rotate(int[] array)</code>
-	 */
-	public static int[] rotate(int... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * <p>
-	 * <code>Arrays.rotate(int[] array, int distance)</code>
-	 */
-	public static int[] rotate(int[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			int displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				int temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-
-	// ********** shuffle **********
-
-	private static final Random RANDOM = new Random();
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(Object... array)</code>
-	 */
-	public static <E> E[] shuffle(E... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(Object[] array, Random r)</code>
-	 */
-	public static <E> E[] shuffle(E[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(char... array)</code>
-	 */
-	public static char[] shuffle(char... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(char[] array, Random r)</code>
-	 */
-	public static char[] shuffle(char[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(int... array)</code>
-	 */
-	public static int[] shuffle(int... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * <p>
-	 * <code>Arrays.shuffle(int[] array, Random r)</code>
-	 */
-	public static int[] shuffle(int[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-
-	// ********** sub-array **********
-
-	/**
-	 * Return a sub-array of the specified array with elements copied from
-	 * the specified range. The "from" index is inclusive; the "to" index is exclusive.
-	 * <p>
-	 * <code>Arrays.subArray(E[] array, int fromIndex, int toIndex)</code>
-	 */
-	public static <E> E[] subArray(E[] array, int fromIndex, int toIndex) {
-		int len = toIndex - fromIndex;
-		E[] result = newArray(array, len);
-		if (len > 0) {
-			System.arraycopy(array, fromIndex, result, 0, len);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a sub-array of the specified array with elements copied from
-	 * the specified range. The "from" index is inclusive; the "to" index is exclusive.
-	 * <p>
-	 * <code>Arrays.subArray(int[] array, int fromIndex, int toIndex)</code>
-	 */
-	public static int[] subArray(int[] array, int fromIndex, int toIndex) {
-		int len = toIndex - fromIndex;
-		if (len == 0) {
-			return EMPTY_INT_ARRAY;
-		}
-		int[] result = new int[len];
-		System.arraycopy(array, fromIndex, result, 0, len);
-		return result;
-	}
-
-	/**
-	 * Return a sub-array of the specified array with elements copied from
-	 * the specified range. The "from" index is inclusive; the "to" index is exclusive.
-	 * <p>
-	 * <code>
-	 * Arrays.subArray(char[] array, int fromIndex, int toIndex)</code>
-	 * </code>
-	 */
-	public static char[] subArray(char[] array, int fromIndex, int toIndex) {
-		int len = toIndex - fromIndex;
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		char[] result = new char[len];
-		System.arraycopy(array, fromIndex, result, 0, len);
-		return result;
-	}
-
-
-	// ********** swap **********
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * <p>
-	 * <code>Arrays.swap(Object[] array, int i, int j)</code>
-	 */
-	public static <E> E[] swap(E[] array, int i, int j) {
-		return (i == j) ? array : swap_(array, i, j);
-	}
-
-	/**
-	 * assume the indices are different
-	 */
-	private static <E> E[] swap_(E[] array, int i, int j) {
-		E temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * <p>
-	 * <code>Arrays.swap(char[] array, int i, int j)</code>
-	 */
-	public static char[] swap(char[] array, int i, int j) {
-		return (i == j) ? array : swap_(array, i, j);
-	}
-
-	/**
-	 * assume the indices are different
-	 */
-	private static char[] swap_(char[] array, int i, int j) {
-		char temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * <p>
-	 * <code>Arrays.swap(int[] array, int i, int j)</code>
-	 */
-	public static int[] swap(int[] array, int i, int j) {
-		return (i == j) ? array : swap_(array, i, j);
-	}
-
-	/**
-	 * assume the indices are different
-	 */
-	private static int[] swap_(int[] array, int i, int j) {
-		int temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-
-	// ********** Arrays enhancements **********
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(boolean[], boolean)
-	 */
-	public static boolean[] fill(boolean[] array, boolean value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(boolean[], int, int, boolean)
-	 */
-	public static boolean[] fill(boolean[] array, int fromIndex, int toIndex, boolean value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(byte[], byte)
-	 */
-	public static byte[] fill(byte[] array, byte value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(byte[], int, int, byte)
-	 */
-	public static byte[] fill(byte[] array, int fromIndex, int toIndex, byte value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(char[], char)
-	 */
-	public static char[] fill(char[] array, char value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(char[], int, int, char)
-	 */
-	public static char[] fill(char[] array, int fromIndex, int toIndex, char value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(double[], double)
-	 */
-	public static double[] fill(double[] array, double value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(double[], int, int, double)
-	 */
-	public static double[] fill(double[] array, int fromIndex, int toIndex, double value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(float[], float)
-	 */
-	public static float[] fill(float[] array, float value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(float[], int, int, float)
-	 */
-	public static float[] fill(float[] array, int fromIndex, int toIndex, float value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(int[], int)
-	 */
-	public static int[] fill(int[] array, int value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(int[], int, int, int)
-	 */
-	public static int[] fill(int[] array, int fromIndex, int toIndex, int value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(Object[], Object)
-	 */
-	public static <E> E[] fill(E[] array, E value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(Object[], int, int, Object)
-	 */
-	public static <E> E[] fill(E[] array, int fromIndex, int toIndex, E value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(long[], long)
-	 */
-	public static long[] fill(long[] array, long value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(long[], int, int, long)
-	 */
-	public static long[] fill(long[] array, int fromIndex, int toIndex, long value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(short[], short)
-	 */
-	public static short[] fill(short[] array, short value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see Arrays#fill(short[], int, int, short)
-	 */
-	public static short[] fill(short[] array, int fromIndex, int toIndex, short value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(byte[])
-	 */
-	public static byte[] sort(byte... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(byte[], int, int)
-	 */
-	public static byte[] sort(byte[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(char[])
-	 */
-	public static char[] sort(char... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(char[], int, int)
-	 */
-	public static char[] sort(char[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(double[])
-	 */
-	public static double[] sort(double... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(double[], int, int)
-	 */
-	public static double[] sort(double[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(float[])
-	 */
-	public static float[] sort(float... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(float[], int, int)
-	 */
-	public static float[] sort(float[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(int[])
-	 */
-	public static int[] sort(int... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(int[], int, int)
-	 */
-	public static int[] sort(int[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(Object[])
-	 */
-	public static <E> E[] sort(E... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(Object[], Comparator)
-	 */
-	public static <E> E[] sort(E[] array, Comparator<? super E> comparator) {
-		Arrays.sort(array, comparator);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(Object[], int, int)
-	 */
-	public static <E> E[] sort(E[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(Object[], int, int, Comparator)
-	 */
-	public static <E> E[] sort(E[] array, int fromIndex, int toIndex, Comparator<? super E> comparator) {
-		Arrays.sort(array, fromIndex, toIndex, comparator);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(long[])
-	 */
-	public static long[] sort(long... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(long[], int, int)
-	 */
-	public static long[] sort(long[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(short[])
-	 */
-	public static short[] sort(short... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see Arrays#sort(short[], int, int)
-	 */
-	public static short[] sort(short[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private ArrayTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java
deleted file mode 100644
index 02226b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Straightforward definition of an object pairing.
- * The key is immutable.
- */
-public interface Association<K, V> {
-
-	/**
-	 * Return the association's key.
-	 */
-	K getKey();
-
-	/**
-	 * Return the association's value.
-	 */
-	V getValue();
-
-	/**
-	 * Set the association's value.
-	 * Return the previous value.
-	 */
-	V setValue(V value);
-
-	/**
-	 * Return true if the associations' keys and values
-	 * are equal.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Return a hash code based on the association's
-	 * key and value.
-	 */
-	int hashCode();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java
deleted file mode 100644
index 62b2e70..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.util.concurrent.ThreadFactory;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * This command executor will dispatch commands to be executed in a separate
- * thread, allowing calls to {@link CommandExecutor#execute(Command)} to return
- * immediately.
- * <p>
- * <strong>NB:</strong> The client-supplied commands should handle any
- * exception appropriately (e.g. log the exception and return gracefully) so
- * the command execution thread can continue executing.
- */
-public class AsynchronousCommandExecutor
-	implements StatefulCommandExecutor
-{
-	/**
-	 * This command queue is shared with the command execution/consumer thread.
-	 * Adding a command to it will trigger the command to be executed by the
-	 * command execution thread or, if another command is currently executing,
-	 * to execute the new command once the currently executing command has
-	 * finished executing.
-	 */
-	final SynchronizedQueue<Command> commands = new SynchronizedQueue<Command>();
-
-	/**
-	 * Most of the thread-related behavior is delegated to this coordinator.
-	 */
-	private final ConsumerThreadCoordinator consumerThreadCoordinator;
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct an asynchronous command executor.
-	 * Use simple JDK thread(s) for the command execution thread(s).
-	 * Allow the command execution thread(s) to be assigned JDK-generated names.
-	 */
-	public AsynchronousCommandExecutor() {
-		this(SimpleThreadFactory.instance(), null);
-	}
-
-	/**
-	 * Construct an asynchronous command executor.
-	 * Use the specified thread factory to construct the command execution thread(s).
-	 * Allow the command execution thread(s) to be assigned JDK-generated names.
-	 */
-	public AsynchronousCommandExecutor(ThreadFactory threadFactory) {
-		this(threadFactory, null);
-	}
-
-	/**
-	 * Construct an asynchronous command executor.
-	 * Use simple JDK thread(s) for the command execution thread(s).
-	 * Assign the command execution thread(s) the specified name.
-	 */
-	public AsynchronousCommandExecutor(String threadName) {
-		this(SimpleThreadFactory.instance(), threadName);
-	}
-
-	/**
-	 * Construct an asynchronous command executor.
-	 * Assign the command execution thread(s) the specified name.
-	 */
-	public AsynchronousCommandExecutor(ThreadFactory threadFactory, String threadName) {
-		super();
-		this.consumerThreadCoordinator = this.buildConsumerThreadCoordinator(threadFactory, threadName);
-	}
-
-	private ConsumerThreadCoordinator buildConsumerThreadCoordinator(ThreadFactory threadFactory, String threadName) {
-		return new ConsumerThreadCoordinator(this.buildConsumer(), threadFactory, threadName);
-	}
-
-	private ConsumerThreadCoordinator.Consumer buildConsumer() {
-		return new Consumer();
-	}
-
-
-	// ********** CallbackStatefulCommandExecutor implementation **********
-
-	/**
-	 * Build and start the command execution/consumer thread.
-	 * <p>
-	 * Note: We don't clear the command queue here; so if a command has been
-	 * added to the queue <em>before</em> getting here, the first command will
-	 * be executed promptly (albeit, asynchronously).
-	 * The command queue will be non-empty if:<ul>
-	 * <li>{@link #execute(Command)} was called after the command executor was
-	 *     constructed but before {@link #start()} was called; or
-	 * <li>{@link #execute(Command)} was called after {@link #stop()} was called
-	 *     but before {@link #start()} was called (to restart the command executor); or
-	 * <li>{@link #stop()} was called when there were still outstanding commands
-	 *     remaining in the command queue
-	 * </ul>
-	 */
-	public void start() {
-		this.consumerThreadCoordinator.start();
-	}
-
-	/**
-	 * Put the specified command on the command queue, to be consumed by the
-	 * command execution thread.
-	 */
-	public void execute(Command command) {
-		this.commands.enqueue(command);
-	}
-
-	/**
-	 * Interrupt the command execution thread so that it stops executing at the
-	 * end of the current command. Suspend the current thread until
-	 * the command execution thread is finished executing. If any uncaught
-	 * exceptions were thrown while the execution thread was executing,
-	 * wrap them in a composite exception and throw the composite exception.
-	 */
-	public void stop() {
-		this.consumerThreadCoordinator.stop();
-	}
-
-
-	// ********** consumer **********
-
-	/**
-	 * This implementation of {@link ConsumerThreadCoordinator.Consumer}
-	 * will execute the commands enqueued by the asynchronous command executor.
-	 * It will wait until the shared command queue is non-empty to begin executing the
-	 * commands in the queue. Once a comand is executed, the thread will quiesce until
-	 * another command is placed in the command queue. If a new command is
-	 * enqueued during the execution of another command (either recursively by
-	 * the command itself or by another thread),
-	 * the new command will be executed immediately after the currently
-	 * executing command is finished.
-	 * Stop the thread by calling {@link Thread#interrupt()}.
-	 */
-	class Consumer
-		implements ConsumerThreadCoordinator.Consumer
-	{
-		Consumer() {
-			super();
-		}
-
-		/**
-		 * Wait until a command has been placed in the queue.
-		 */
-		public void waitForProducer() throws InterruptedException {
-			AsynchronousCommandExecutor.this.commands.waitUntilNotEmpty();
-		}
-
-		/**
-		 * Execute the first command in the queue and notify our listeners.
-		 */
-		public void execute() {
-			AsynchronousCommandExecutor.this.commands.dequeue().execute();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java
deleted file mode 100644
index 0cecf97..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-
-/**
- * A collection that allows duplicate elements.
- * <p>
- * The <code>Bag</code> interface places additional stipulations,
- * beyond those inherited from the {@link java.util.Collection} interface,
- * on the contracts of the {@link #equals(Object)} and {@link #hashCode()} methods.
- * 
- * @see HashBag
- */
-
-public interface Bag<E> extends java.util.Collection<E> {
-
-	/**
-	 * Compares the specified object with this bag for equality. Returns
-	 * <code>true</code> if the specified object is also a bag, the two bags
-	 * have the same size, and every member of the specified bag is
-	 * contained in this bag with the same number of occurrences (or equivalently,
-	 * every member of this bag is contained in the specified bag with the same
-	 * number of occurrences). This definition ensures that the
-	 * equals method works properly across different implementations of the
-	 * bag interface.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Returns the hash code value for this bag. The hash code of a bag is
-	 * defined to be the sum of the hash codes of the elements in the bag,
-	 * where the hashcode of a <code>null</code> element is defined to be zero.
-	 * This ensures that <code>b1.equals(b2)</code> implies that
-	 * <code>b1.hashCode() == b2.hashCode()</code> for any two bags
-	 * <code>b1</code> and <code>b2</code>, as required by the general
-	 * contract of the {@link Object#hashCode()} method.
-	 */
-	int hashCode();
-
-	/**
-	 * Return the number of times the specified object occurs in the bag.
-	 */
-	int count(Object o);
-
-	/**
-	 * Add the specified object the specified number of times to the bag.
-	 * Return whether the bag changed.
-	 */
-	boolean add(E o, int count);
-
-	/**
-	 * Remove the specified number of occurrences of the specified object
-	 * from the bag. Return whether the bag changed.
-	 */
-	boolean remove(Object o, int count);
-
-	/**
-	 * Return an iterator that returns each item in the bag
-	 * once and only once, irrespective of how many times
-	 * the item was added to the bag.
-	 */
-	java.util.Iterator<E> uniqueIterator();
-
-	/**
-	 * Return the number of unique items in the bag.
-	 */
-	int uniqueCount();
-
-	/**
-	 * Return an iterator that returns an entry for each item in the bag
-	 * once and only once, irrespective of how many times
-	 * the item was added to the bag. The entry will indicate the item's
-	 * count.
-	 */
-	java.util.Iterator<Entry<E>> entries();
-
-
-	/**
-	 * A bag entry (element-count pair).
-	 * The {@link Bag#entries()} method returns an iterator whose
-	 * elements are of this class. The <em>only</em> way to obtain a reference
-	 * to a bag entry is from the iterator returned by this method. These
-	 * <code>Bag.Entry</code> objects are valid <em>only</em> for the duration
-	 * of the iteration; more formally, the behavior of a bag entry is
-	 * undefined if the backing bag has been modified after the entry was
-	 * returned by the iterator, except through the {@link #setCount(int)}
-	 * operation on the bag entry.
-	 */
-	interface Entry<E> {
-
-		/**
-		 * Return the entry's element.
-		 */
-		E getElement();
-
-		/**
-		 * Return entry's count; i.e. the number of times the entry's element
-		 * occurs in the bag.
-		 * @see Bag#count(Object)
-		 */
-		int getCount();
-
-		/**
-		 * Set the entry's count; i.e. the number of times the entry's element
-		 * occurs in the bag. The new count must be a positive number.
-		 * Return the previous count of the entry's element.
-		 * NB: Use {@link Iterator#remove()} to set the
-		 * count to zero.
-		 */
-		int setCount(int count);
-
-		/**
-		 * Return whether the entry is equal to the specified object;
-		 * i.e. the specified object is a <code>Bag.Entry</code> and its
-		 * element and count are the same as the entry's.
-		 */
-		boolean equals(Object obj);
-
-		/**
-		 * Return the entry's hash code.
-		 */
-		int hashCode();
-
-	}
-
-
-	final class Empty<E> extends AbstractCollection<E> implements Bag<E>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Bag INSTANCE = new Empty();
-		@SuppressWarnings("unchecked")
-		public static <T> Bag<T> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Empty() {
-			super();
-		}
-		@Override
-		public Iterator<E> iterator() {
-			return EmptyIterator.instance();
-		}
-		@Override
-		public int size() {
-			return 0;
-		}
-		public Iterator<E> uniqueIterator() {
-			return EmptyIterator.instance();
-		}
-		public int uniqueCount() {
-			return 0;
-		}
-		public int count(Object o) {
-			return 0;
-		}
-		public Iterator<Bag.Entry<E>> entries() {
-			return EmptyIterator.instance();
-		}
-		public boolean remove(Object o, int count) {
-			return false;
-		}
-		public boolean add(E o, int count) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public boolean equals(Object o) {
-			if (o == this) {
-				return true;
-			}
-			if ( ! (o instanceof Bag<?>)) {
-				return false;
-			}
-			return ((Bag<?>) o).size() == 0;
-		}
-		@Override
-		public int hashCode() {
-			return 0;
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java
deleted file mode 100644
index 2894793..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-import org.eclipse.jpt.common.utility.Filter;
-
-/**
- * Used by various "pluggable" classes to filter objects
- * in both directions.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiFilter<T> extends Filter<T> {
-
-	/**
-	 * Return whether the specified object is "accepted" by the
-	 * "reverse" filter. What that means is determined by the client.
-	 */
-	boolean reverseAccept(T o);
-
-
-	final class Null<S> implements BidiFilter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiFilter INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// nothing is filtered - everything is accepted
-		public boolean accept(S o) {
-			return true;
-		}
-		// nothing is "reverse-filtered" - everything is accepted
-		public boolean reverseAccept(S o) {
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class Opaque<S> implements BidiFilter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiFilter INSTANCE = new Opaque();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Opaque() {
-			super();
-		}
-		// everything is filtered - nothing is accepted
-		public boolean accept(S o) {
-			return false;
-		}
-		// everything is "reverse-filtered" - nothing is accepted
-		public boolean reverseAccept(S o) {
-			return false;
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Opaque"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class Disabled<S> implements BidiFilter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiFilter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public boolean accept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public boolean reverseAccept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java
deleted file mode 100644
index 056b29a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * into strings and vice versa.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiStringConverter<T> extends StringConverter<T> {
-
-	/**
-	 * Convert the specified string into an object.
-	 * The semantics of "convert to object" is determined by the
-	 * contract between the client and the server.
-	 * Typically, if the string is null, null is returned.
-	 */
-	T convertToObject(String s);
-
-
-	final class Default<S> implements BidiStringConverter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiStringConverter INSTANCE = new Default();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiStringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		// simply return the object's #toString() result
-		public String convertToString(S o) {
-			return (o == null) ? null : o.toString();
-		}
-		// simply return the string
-		@SuppressWarnings("unchecked")
-		public S convertToObject(String s) {
-			return (S) s;
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.Default"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class Disabled<S> implements BidiStringConverter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiStringConverter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiStringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public String convertToString(S o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public S convertToObject(String s) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class BooleanConverter implements BidiStringConverter<Boolean>, Serializable {
-		public static final BidiStringConverter<Boolean> INSTANCE = new BooleanConverter();
-		public static BidiStringConverter<Boolean> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private BooleanConverter() {
-			super();
-		}
-		/** Return "true" if the Boolean is true, otherwise return "false". */
-		public String convertToString(Boolean b) {
-			return (b == null) ? null : b.toString();
-		}
-		/** Return Boolean.TRUE if the string is "true" (case-insensitive), otherwise return Boolean.FALSE. */
-		public Boolean convertToObject(String s) {
-			return (s == null) ? null : Boolean.valueOf(s);
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.BooleanConverter"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class IntegerConverter implements BidiStringConverter<Integer>, Serializable {
-		public static final BidiStringConverter<Integer> INSTANCE = new IntegerConverter();
-		public static BidiStringConverter<Integer> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private IntegerConverter() {
-			super();
-		}
-		/** Integer's #toString() works well. */
-		public String convertToString(Integer integer) {
-			return (integer == null) ? null : integer.toString();
-		}
-		/** Convert the string to an Integer, if possible. */
-		public Integer convertToObject(String s) {
-			return (s == null) ? null : Integer.valueOf(s);
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.IntegerConverter"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java
deleted file mode 100644
index c105d9d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * in both directions.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiTransformer<T1, T2> extends Transformer<T1, T2> {
-
-	/**
-	 * Return the "reverse-transformed" object.
-	 * The semantics of "reverse-transform" is determined by the
-	 * contract between the client and the server.
-	 */
-	T1 reverseTransform(T2 o);
-
-
-	final class Null<S1, S2> implements BidiTransformer<S1, S2>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiTransformer INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> BidiTransformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S2 transform(S1 o) {
-			return (S2) o;
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S1 reverseTransform(S2 o) {
-			return (S1) o;
-		}
-		@Override
-		public String toString() {
-			return "BidiTransformer.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class Disabled<S1, S2> implements BidiTransformer<S1, S2>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final BidiTransformer INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> BidiTransformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public S2 transform(S1 o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public S1 reverseTransform(S2 o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiTransformer.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java
deleted file mode 100644
index 20cbf7c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Assorted bit tools
- */
-public final class BitTools {
-
-	/**
-	 * Return whether the specified 'flags' has the specified
-	 * 'flagToCheck' set.
-	 */
-	public static boolean flagIsSet(int flags, int flagToCheck) {
-		return allFlagsAreSet(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has the specified
-	 * 'flagToCheck' turned off.
-	 */
-	public static boolean flagIsOff(int flags, int flagToCheck) {
-		return allFlagsAreOff(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagToCheck' set.
-	 */
-	public static boolean onlyFlagIsSet(int flags, int flagToCheck) {
-		return onlyFlagsAreSet(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagToCheck' turned off.
-	 */
-	public static boolean onlyFlagIsOff(int flags, int flagToCheck) {
-		return onlyFlagsAreOff(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean allFlagsAreSet(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) == flagsToCheck;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean allFlagsAreOff(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) == 0;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean onlyFlagsAreSet(int flags, int flagsToCheck) {
-		return allFlagsAreSet(flags, flagsToCheck) && allFlagsAreOff(flags, ~flagsToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean onlyFlagsAreOff(int flags, int flagsToCheck) {
-		return allFlagsAreOff(flags, flagsToCheck) && allFlagsAreSet(flags, ~flagsToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean anyFlagsAreSet(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) != 0;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean anyFlagsAreOff(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) != flagsToCheck;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean allFlagsAreSet(int flags, int... flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if ( ! allFlagsAreSet(flags, flagsToCheck[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean allFlagsAreOff(int flags, int... flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if ( ! allFlagsAreOff(flags, flagsToCheck[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean onlyFlagsAreSet(int flags, int... flagsToCheck) {
-		int combinedFlags = orFlags(flagsToCheck);
-		return allFlagsAreSet(flags, combinedFlags) && allFlagsAreOff(flags, ~combinedFlags);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean onlyFlagsAreOff(int flags, int... flagsToCheck) {
-		int combinedFlags = orFlags(flagsToCheck);
-		return allFlagsAreOff(flags, combinedFlags) && allFlagsAreSet(flags, ~combinedFlags);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean anyFlagsAreSet(int flags, int... flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if (anyFlagsAreSet(flags, flagsToCheck[i])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean anyFlagsAreOff(int flags, int... flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if (anyFlagsAreOff(flags, flagsToCheck[i])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * OR all the specified 'flags' together and return the result.
-	 */
-	public static int orFlags(int... flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result |= flags[i];
-		}
-		return result;
-	}
-
-	/**
-	 * AND all the specified 'flags' together and return the result.
-	 */
-	public static int andFlags(int... flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result &= flags[i];
-		}
-		return result;
-	}
-
-	/**
-	 * XOR all the specified 'flags' together and return the result.
-	 */
-	public static int xorFlags(int... flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result ^= flags[i];
-		}
-		return result;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private BitTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java
deleted file mode 100644
index 9d11425..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Interface for a container for passing a flag that can be changed by
- * the recipient.
- */
-public interface BooleanReference
-	extends ReadOnlyBooleanReference
-{
-	/**
-	 * Set the <code>boolean</code> value.
-	 * Return the previous value.
-	 */
-	boolean setValue(boolean value);
-
-	/**
-	 * Set the <code>boolean</code> value to the NOT of its current value.
-	 * Return the new value.
-	 */
-	boolean flip();
-
-	/**
-	 * Set the <code>boolean</code> value to the NOT of the specified value.
-	 * Return the previous value.
-	 */
-	boolean setNot(boolean v);
-
-	/**
-	 * Set the <code>boolean</code> value to <code>true</code>.
-	 * Return the previous value.
-	 */
-	boolean setTrue();
-
-	/**
-	 * Set the <code>boolean</code> value to <code>false</code>.
-	 * Return the previous value.
-	 */
-	boolean setFalse();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java
deleted file mode 100644
index 783c0f1..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Assorted "Capital-B Boolean" operations.
- */
- // commented code is just playing around with building *everything* from NAND
-public final class BooleanTools {
-
-	/**
-	 * Return the NOT of the specified Boolean.
-	 * Boolean#not()
-	 */
-	public static Boolean not(Boolean b) {
-		return Boolean.valueOf( ! b.booleanValue());
-//		return nand(b, b);
-	}
-
-	/**
-	 * Return the AND of the specified Booleans.
-	 * Boolean#and(Boolean)
-	 */
-	public static Boolean and(Boolean b1, Boolean b2) {
-		return Boolean.valueOf(b1.booleanValue() && b2.booleanValue());
-//		Boolean nand = nand(b1, b2);
-//		return nand(nand, nand);
-	}
-
-	/**
-	 * Return the OR of the specified Booleans.
-	 * Boolean#or(Boolean)
-	 */
-	public static Boolean or(Boolean b1, Boolean b2) {
-		return Boolean.valueOf(b1.booleanValue() || b2.booleanValue());
-//		Boolean nand = nand(b1, b2);
-//		Boolean xor = nand(nand(b1, nand), nand(b2, nand));
-//		Boolean and = nand(nand, nand);
-//		Boolean nand2 = nand(xor, and);
-//		return nand(nand(xor, nand2), nand(and, nand2));
-	}
-
-	/**
-	 * Return the XOR of the specified Booleans.
-	 * Boolean#xor(Boolean)
-	 */
-	public static Boolean xor(Boolean b1, Boolean b2) {
-		return and(or(b1, b2), nand(b1, b2));
-//		Boolean nand = nand(b1, b2);
-//		return nand(nand(b1, nand), nand(b2, nand));
-	}
-
-	/**
-	 * Return the NAND of the specified Booleans.
-	 * Boolean#nand(Boolean)
-	 */
-	public static Boolean nand(Boolean b1, Boolean b2) {
-		return not(and(b1, b2));
-//		return Boolean.valueOf( ! (b1.booleanValue() && b2.booleanValue()));
-	}
-
-	/**
-	 * Return the NOR of the specified Booleans.
-	 * Boolean#nor(Boolean)
-	 */
-	public static Boolean nor(Boolean b1, Boolean b2) {
-		return not(or(b1, b2));
-//		Boolean nand = nand(b1, b2);
-//		Boolean xor = nand(nand(b1, nand), nand(b2, nand));
-//		Boolean and = nand(nand, nand);
-//		Boolean nand2 = nand(xor, and);
-//		Boolean nand3 = nand(nand(xor, nand2), nand(and, nand2));
-//		return nand(nand3, nand3);
-	}
-
-	/**
-	 * Return the XNOR of the specified Booleans.
-	 * Boolean#xnor(Boolean)
-	 */
-	public static Boolean xnor(Boolean b1, Boolean b2) {
-		return not(xor(b1, b2));
-//		Boolean nand = nand(b1, b2);
-//		Boolean xor = nand(nand(b1, nand), nand(b2, nand));
-//		return nand(xor, xor);
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private BooleanTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java
deleted file mode 100644
index aaf4be3..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Convenience methods related to Java class names as returned by
- * {@link java.lang.Class#getName()}.
- */
-public final class ClassName {
-
-	public static final String VOID_CLASS_NAME = ReflectionTools.VOID_CLASS.getName();
-	public static final String VOID_WRAPPER_CLASS_NAME = ReflectionTools.VOID_WRAPPER_CLASS.getName();
-
-	public static final char REFERENCE_CLASS_CODE = 'L';
-	public static final char REFERENCE_CLASS_NAME_DELIMITER = ';';
-
-	/**
-	 * Return whether the specified class is an array type.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean isArray(String className) {
-		return className.charAt(0) == '[';
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * Non-array types simply return themselves.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String getElementTypeName(String className) {
-		int depth = getArrayDepth(className);
-		if (depth == 0) {
-			// the name is in the form: "java.lang.Object" or "int"
-			return className;
-		}
-		return getElementTypeName_(className, depth);
-	}
-
-	/**
-	 * pre-condition: array depth is not zero
-	 */
-	private static String getElementTypeName_(String className, int arrayDepth) {
-		int last = className.length() - 1;
-		if (className.charAt(arrayDepth) == REFERENCE_CLASS_CODE) {
-			// the name is in the form: "[[[Ljava.lang.Object;"
-			return className.substring(arrayDepth + 1, last);	// drop the trailing ';'
-		}
-		// the name is in the form: "[[[I"
-		return forCode(className.charAt(last));
-	}
-
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * @see java.lang.Class#getName()
-	 */
-	public static int getArrayDepth(String className) {
-		int depth = 0;
-		while (className.charAt(depth) == '[') {
-			depth++;
-		}
-		return depth;
-	}
-
-	/**
-	 * Return the specified class's component type.
-	 * Return <code>null</code> if the specified class is not an array type.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String getComponentTypeName(String className) {
-		switch (getArrayDepth(className)) {
-			case 0:
-				return null;
-			case 1:
-				return getElementTypeName_(className, 1);
-			default:
-				return className.substring(1);
-		}
-	}
-
-	/**
-	 * Return the specified class's simple name.
-	 * Return an empty string if the specified class is anonymous.
-	 * <p>
-	 * The simple name of an array type is the simple name of the
-	 * component type with <code>"[]"</code> appended. In particular,
-	 * the simple name of an array type whose component type is
-	 * anonymous is simply <code>"[]"</code>.
-	 * @see java.lang.Class#getSimpleName()
-	 */
-	public static String getSimpleName(String className) {
-		return isArray(className) ?
-				getSimpleName(getComponentTypeName(className)) + "[]" : //$NON-NLS-1$
-				getSimpleName_(className);
-	}
-
-	/**
-	 * pre-condition: specified class is not an array type
-	 */
-	private static String getSimpleName_(String className) {
-		int index = className.lastIndexOf('$');
-		if (index == -1) {  // "top-level" class - strip package name
-			return className.substring(className.lastIndexOf('.') + 1);
-		}
-
-		int len = className.length();
-		for (int i = ++index; i < len; i++) {
-			if ( ! charIsAsciiDigit(className.charAt(i))) {
-				return className.substring(i);  // "member" or "local" class
-			}
-		}
-		// all the characters past the '$' are ASCII digits ("anonymous" class)
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the specified class's package name (e.g.
-	 * <code>"java.lang.Object"</code> returns
-	 * <code>"java.lang"</code>).
-	 * Return an empty string if the specified class is:<ul>
-	 * <li>in the "default" package
-	 * <li>an array class
-	 * <li>a primtive class
-	 * </ul>
-	 * @see java.lang.Class#getPackage()
-	 * @see java.lang.Package#getName()
-	 */
-	public static String getPackageName(String className) {
-		if (isArray(className)) {
-			return ""; //$NON-NLS-1$
-		}
-		int lastPeriod = className.lastIndexOf('.');
-		return (lastPeriod == -1) ? "" : className.substring(0, lastPeriod); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return whether the specified class is a "top-level" class,
-	 * as opposed to a "member", "local", or "anonymous" class,
-	 * using the standard JDK naming conventions (i.e. the class
-	 * name does NOT contain a <code>'$'</code>).
-	 * A "top-level" class can be either the "primary" (public) class defined
-	 * in a file/compilation unit (i.e. the class with the same name as its
-	 * file's simple base name) or a "non-primary" (package visible) class
-	 * (i.e. the other top-level classes defined in a file).
-	 * A "top-level" class can contain any of the other types of classes. 
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean isTopLevel(String className) {
-		if (isArray(className)) {
-			return false;
-		}
-		return className.lastIndexOf('$') == -1;
-	}
-
-	/**
-	 * Return whether the specified class is a "member" class,
-	 * as opposed to a "top-level", "local", or "anonymous" class,
-	 * using the standard JDK naming convention (i.e. the class
-	 * name ends with a <code>'$'</code> followed by a legal class name; e.g.
-	 * <code>"TopLevelClass$1LocalClass$MemberClass"</code>).
-	 * A "member" class can be either "nested" (static) or "inner";
-	 * but there is no way to determine which from the class's name.
-	 * A "member" class can contain "local", "anonymous", or other
-	 * "member" classes; and vice-versa.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean isMember(String className) {
-		if (isArray(className)) {
-			return false;
-		}
-		int index = className.lastIndexOf('$');
-		if (index == -1) {
-			return false;	// "top-level" class
-		}
-		// the character immediately after the dollar sign cannot be an ASCII digit
-		return ! charIsAsciiDigit(className.charAt(++index));
-	}
-
-	/**
-	 * Return whether the specified class is a "local" class,
-	 * as opposed to a "top-level", "member", or "anonymous" class,
-	 * using the standard JDK naming convention (i.e. the class name
-	 * ends with <code>"$nnnXXX"</code>,
-	 * where the <code>'$'</code> is
-	 * followed by a series of numeric digits which are followed by the
-	 * local class name; e.g. <code>"TopLevelClass$1LocalClass"</code>).
-	 * A "local" class can contain "member", "anonymous", or other
-	 * "local" classes; and vice-versa.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean isLocal(String className) {
-		if (isArray(className)) {
-			return false;
-		}
-		int index = className.lastIndexOf('$');
-		if (index == -1) {
-			return false;	// "top-level" class
-		}
-		if ( ! charIsAsciiDigit(className.charAt(++index))) {
-			return false;  // "member" class
-		}
-		int len = className.length();
-		for (int i = ++index; i < len; i++) {
-			if ( ! charIsAsciiDigit(className.charAt(i))) {
-				return true;
-			}
-		}
-		// all the characters past the '$' are ASCII digits ("anonymous" class)
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is an "anonymous" class,
-	 * as opposed to a "top-level", "member", or "local" class,
-	 * using the standard JDK naming convention (i.e. the class
-	 * name ends with <code>"$nnn"</code> where all the characters past the
-	 * last <code>'$'</code> are ASCII numeric digits;
-	 * e.g. <code>"TopLevelClass$1"</code>).
-	 * An "anonymous" class can contain "member", "local", or other
-	 * "anonymous" classes; and vice-versa.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean isAnonymous(String className) {
-		if (isArray(className)) {
-			return false;
-		}
-		int index = className.lastIndexOf('$');
-		if (index == -1) {
-			return false;	// "top-level" class
-		}
-		if ( ! charIsAsciiDigit(className.charAt(++index))) {
-			return false;  // "member" class
-		}
-		int len = className.length();
-		for (int i = ++index; i < len; i++) {
-			if ( ! charIsAsciiDigit(className.charAt(i))) {
-				return false;  // "local" class
-			}
-		}
-		// all the characters past the '$' are ASCII digits ("anonymous" class)
-		return true;
-	}
-
-	/**
-	 * {@link Character#isDigit(char)} returns <code>true</code> for some non-ASCII
-	 * digits. This method does not.
-	 */
-	private static boolean charIsAsciiDigit(char c) {
-		return ('0' <= c) && (c <= '9');
-	}
-
-	/**
-	 * Return whether the specified class is a "reference"
-	 * class (i.e. neither <code>void</code> nor one of the primitive variable classes,
-	 * <code>boolean</code>, <code>int</code>, <code>float</code>, etc.).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	public static boolean isReference(String className) {
-		return ! isPrimitive(className);
-	}
-
-	/**
-	 * Return whether the specified class is a primitive
-	 * class (i.e. <code>void</code> or one of the primitive variable classes,
-	 * <code>boolean</code>, <code>int</code>, <code>float</code>, etc.).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	public static boolean isPrimitive(String className) {
-		if (isArray(className) || (className.length() > ReflectionTools.MAX_PRIMITIVE_CLASS_NAME_LENGTH)) {
-			return false;  // performance tweak
-		}
-		for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) {
-			if (className.equals(primitive.javaClass.getName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. <code>java.lang.Void</code> or one of the primitive
-	 * variable wrapper classes, <code>java.lang.Boolean</code>,
-	 * <code>java.lang.Integer</code>, <code>java.lang.Float</code>, etc.).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	public static boolean isPrimitiveWrapper(String className) {
-		if (isArray(className) || (className.length() > ReflectionTools.MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH)) {
-			return false;  // performance tweak
-		}
-		for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) {
-			if (className.equals(primitive.wrapperClass.getName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. <code>boolean</code>, <code>int</code>, <code>float</code>, etc.,
-	 * but not <code>void</code>).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	public static boolean isVariablePrimitive(String className) {
-		return isPrimitive(className)
-			&& ( ! className.equals(VOID_CLASS_NAME));
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive wrapper
-	 * class (i.e. <code>java.lang.Boolean</code>,
-	 * <code>java.lang.Integer</code>, <code>java.lang.Float</code>, etc.,
-	 * but not <code>java.lang.Void</code>).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	public static boolean isVariablePrimitiveWrapper(String className) {
-		return isPrimitiveWrapper(className)
-			&& ( ! className.equals(VOID_WRAPPER_CLASS_NAME));
-	}
-
-	/**
-	 * Return the name of the primitive wrapper class corresponding to the specified
-	 * primitive class. Return <code>null</code> if the specified class is not a primitive.
-	 */
-	public static String getWrapperClassName(String primitiveClassName) {
-		for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) {
-			if (primitive.javaClass.getName().equals(primitiveClassName)) {
-				return primitive.wrapperClass.getName();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the name of the primitive class corresponding to the specified
-	 * primitive wrapper class. Return <code>null</code> if the specified class
-	 * is not a primitive wrapper.
-	 */
-	public static String getPrimitiveClassName(String primitiveWrapperClassName) {
-		for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) {
-			if (primitive.wrapperClass.getName().equals(primitiveWrapperClassName)) {
-				return primitive.javaClass.getName();
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Return whether the two class names are equivalent, given autoboxing.
-	 * (e.g. "java.lang.Integer" and "int" should be equivalent)
-	 */
-	public static boolean areAutoboxEquivalents(String className1, String className2) {
-		return Tools.valuesAreEqual(className1, className2)
-			|| Tools.valuesAreEqual(getPrimitiveClassName(className1), className2)
-			|| Tools.valuesAreEqual(getWrapperClassName(className1), className2);
-	}
-
-
-	// ********** primitive codes **********
-
-	/**
-	 * Return the primitive class name for the specified primitive class code.
-	 * Return <code>null</code> if the specified code
-	 * is not a primitive class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String forCode(int classCode) {
-		return forCode((char) classCode);
-	}
-
-	/**
-	 * Return the primitive class name for the specified primitive class code.
-	 * Return <code>null</code> if the specified code
-	 * is not a primitive class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String forCode(char classCode) {
-		Class<?> primitiveClass = ReflectionTools.getClassForCode(classCode);
-		return (primitiveClass == null) ? null : primitiveClass.getName();
-	}
-
-	/**
-	 * Return the class code for the specified primitive class.
-	 * Return <code>0</code> if the specified class
-	 * is not a primitive class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char getCodeForClassName(String primitiveClassName) {
-		if (( ! isArray(primitiveClassName)) && (primitiveClassName.length() <= ReflectionTools.MAX_PRIMITIVE_CLASS_NAME_LENGTH)) {
-			for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) {
-				if (primitive.javaClass.getName().equals(primitiveClassName)) {
-					return primitive.code;
-				}
-			}
-		}
-		return 0;
-	}
-
-	static void append(String className, StringBuilder sb) {
-		sb.append(REFERENCE_CLASS_CODE);
-		sb.append(className);
-		sb.append(REFERENCE_CLASS_NAME_DELIMITER);
-	}
-
-
-	// ********** suppressed constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private ClassName() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java
deleted file mode 100644
index dcf03bd..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java
+++ /dev/null
@@ -1,939 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.io.Serializable;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-
-/**
- * <code>Classpath</code> models a Java classpath, which consists of a list of
- * {@link Entry}s, each of which contain Java classes. The classpath can return
- * the names of classes found in it etc. There are a number of static
- * convenience methods that can be use to construct <code>Classpath</code>s
- * corresponding to the Java classpath etc.
- */
-public class Classpath
-	implements Serializable
-{
-	/** The entries in the classpath */
-	private final Entry[] entries;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** static methods **********
-
-	// ***** factory methods for "standard" classpaths *****
-
-	/**
-	 * Return the Java "boot" classpath. This includes <code>rt.jar</code>.
-	 */
-	public static Classpath bootClasspath() {
-		return new Classpath(System.getProperty("sun.boot.class.path")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Return a "virtual classpath" that contains all the jars
-	 * that would be used by the Java Extension Mechanism.
-	 */
-	public static Classpath javaExtensionClasspath() {
-		File[] dirs = javaExtensionDirectories();
-		List<String> jarFileNames = new ArrayList<String>();
-		for (File dir : dirs) {
-			if (dir.isDirectory()) {
-				addJarFileNamesTo(dir, jarFileNames);
-			}
-		}
-		return new Classpath(jarFileNames);
-	}
-
-	/**
-	 * Return the Java "system" classpath.
-	 */
-	public static Classpath javaClasspath() {
-		return new Classpath(System.getProperty("java.class.path")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the unretouched "complete" classpath.
-	 * This includes the boot classpath, the Java Extension
-	 * Mechanism classpath, and the normal "system" classpath.
-	 */
-	public static Classpath completeClasspath() {
-		return new Classpath(new Classpath[] {
-				bootClasspath(),
-				javaExtensionClasspath(),
-				javaClasspath()
-		});
-	}
-
-	/**
-	 * Return a classpath that contains the location of the specified class.
-	 */
-	public static Classpath classpathFor(Class<?> javaClass) {
-		return new Classpath(locationFor(javaClass));
-	}
-
-
-	// ***** file => class *****
-
-	/**
-	 * Convert a relative file name to a class name; this will work for
-	 * any file that has a single extension beyond the base
-	 * class name:<ul>
-	 * <li><code>"java/lang/String.class"</code> is converted to <code>"java.lang.String"</code>
-	 * <li><code>"java/lang/String.java"</code> is converted to <code>"java.lang.String"</code>
-	 * </ul>
-	 */
-	public static String convertToClassName(String classFileName) {
-		String className = FileTools.stripExtension(classFileName);
-		// do this for archive entry names
-		className = className.replace('/', '.');
-		// do this for O/S-specific file names
-		if (File.separatorChar != '/') {
-			className = className.replace(File.separatorChar, '.');
-		}
-		return className;
-	}
-
-	/**
-	 * Convert a file to a class name;
-	 * e.g. <code>File(java/lang/String.class)</code> is converted to
-	 * <code>"java.lang.String"</code>.
-	 */
-	public static String convertToClassName(File classFile) {
-		return convertToClassName(classFile.getPath());
-	}
-
-	/**
-	 * Convert a relative file name to a class;
-	 * e.g. <code>"java/lang/String.class"</code> is converted to
-	 * <code>java.lang.String.class</code>.
-	 */
-	public static Class<?> convertToClass(String classFileName) throws ClassNotFoundException {
-		return Class.forName(convertToClassName(classFileName));
-	}
-
-	/**
-	 * Convert a relative file to a class;
-	 * e.g. <code>File(java/lang/String.class)</code> is converted to
-	 * <code>java.lang.String.class</code>.
-	 */
-	public static Class<?> convertToClass(File classFile) throws ClassNotFoundException {
-		return convertToClass(classFile.getPath());
-	}
-
-
-	// ***** class => JAR entry *****
-
-	/**
-	 * Convert a class name to an archive entry name base;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>"java/lang/String"</code>.
-	 */
-	public static String convertToArchiveEntryNameBase(String className) {
-		return className.replace('.', '/');
-	}
-	
-	/**
-	 * Convert a class to an archive entry name base;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"java/lang/String"</code>.
-	 */
-	public static String convertToArchiveEntryNameBase(Class<?> javaClass) {
-		return convertToArchiveEntryNameBase(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to an archive class file entry name;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>"java/lang/String.class"</code>.
-	 */
-	public static String convertToArchiveClassFileEntryName(String className) {
-		return convertToArchiveEntryNameBase(className) + ".class"; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Convert a class to an archive class file entry name;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"java/lang/String.class"</code>.
-	 */
-	public static String convertToArchiveClassFileEntryName(Class<?> javaClass) {
-		return convertToArchiveClassFileEntryName(javaClass.getName());
-	}
-	
-
-	// ***** class => file (.class or .java) *****
-
-	/**
-	 * Convert a class name to a file name base for the current O/S;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>"java/lang/String"</code> on Unix and
-	 * <code>"java\\lang\\String"</code> on Windows.
-	 */
-	public static String convertToFileNameBase(String className) {
-		return className.replace('.', File.separatorChar);
-	}
-	
-	/**
-	 * Convert a class to a file name base for the current O/S;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"java/lang/String"</code> on Unix and
-	 * <code>"java\\lang\\String"</code> on Windows.
-	 */
-	public static String convertToFileNameBase(Class<?> javaClass) {
-		return convertToFileNameBase(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a class file name for the current O/S;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>"java/lang/String.class"</code> on Unix and
-	 * <code>"java\\lang\\String.class"</code> on Windows.
-	 */
-	public static String convertToClassFileName(String className) {
-		return convertToFileNameBase(className) + ".class"; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Convert a class to a class file name for the current O/S;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"java/lang/String.class"</code> on Unix and
-	 * <code>"java\\lang\\String.class"</code> on Windows.
-	 */
-	public static String convertToClassFileName(Class<?> javaClass) {
-		return convertToClassFileName(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a class file for the current O/S;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>File(java/lang/String.class)</code>.
-	 */
-	public static File convertToClassFile(String className) {
-		return new File(convertToClassFileName(className));
-	}
-	
-	/**
-	 * Convert a class to a class file for the current O/S;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>File(java/lang/String.class)</code>.
-	 */
-	public static File convertToClassFile(Class<?> javaClass) {
-		return convertToClassFile(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a java file name for the current O/S;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>"java/lang/String.java"</code> on Unixl and
-	 * <code>"java\\lang\\String.java"</code> on Windows.
-	 */
-	public static String convertToJavaFileName(String className) {
-		return convertToFileNameBase(className) + ".java"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Convert a class to a java file name for the current O/S;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"java/lang/String.java"</code> on Unix and
-	 * <code>"java\\lang\\String.java"</code> on Windows.
-	 */
-	public static String convertToJavaFileName(Class<?> javaClass) {
-		return convertToJavaFileName(javaClass.getName());
-	}
-
-	/**
-	 * Convert a class name to a java file for the current O/S;
-	 * e.g. <code>"java.lang.String"</code> is converted to
-	 * <code>File(java/lang/String.java)</code>.
-	 */
-	public static File convertToJavaFile(String className) {
-		return new File(convertToJavaFileName(className));
-	}
-
-	/**
-	 * Convert a class to a java file for the current O/S;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>File(java/lang/String.java)</code>.
-	 */
-	public static File convertToJavaFile(Class<?> javaClass) {
-		return convertToJavaFile(javaClass.getName());
-	}
-
-
-	// ***** class => resource *****
-
-	/**
-	 * Convert a class to a resource name;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>"/java/lang/String.class"</code>.
-	 */
-	public static String convertToResourceName(Class<?> javaClass) {
-		return '/' + convertToArchiveClassFileEntryName(javaClass);
-	}
-
-	/**
-	 * Convert a class to a resource;
-	 * e.g. <code>java.lang.String.class</code> is converted to
-	 * <code>URL(jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class)</code>.
-	 */
-	public static URL convertToResource(Class<?> javaClass) {
-		return javaClass.getResource(convertToResourceName(javaClass));
-	}
-
-
-	// ***** utilities *****
-
-	/**
-	 * Return whether the specified file is an archive file;
-	 * i.e. its name ends with <code>".zip"</code> or <code>".jar"</code>.
-	 */
-	public static boolean fileNameIsArchive(String fileName) {
-		String ext = FileTools.extension(fileName).toLowerCase();
-		return ext.equals(".jar") || ext.equals(".zip"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Return whether the specified file is an archive file;
-	 * i.e. its name ends with <code>".zip"</code> or <code>".jar"</code>.
-	 */
-	public static boolean fileIsArchive(File file) {
-		return fileNameIsArchive(file.getName());
-	}
-	
-	/**
-	 * Return what should be the fully-qualified file name
-	 * for the JRE runtime JAR;
-	 * e.g. <code>"C:\jdk1.4.2_04\jre\lib\rt.jar"</code>.
-	 */
-	public static String rtJarName() {
-		return locationFor(java.lang.Object.class);
-	}
-	
-	/**
-	 * Return the location from where the specified class was loaded.
-	 */
-	public static String locationFor(Class<?> javaClass) {
-		URL url = convertToResource(javaClass);
-		String path;
-		try {
-			path = FileTools.buildFile(url).getPath();
-		} catch (URISyntaxException ex) {
-			throw new RuntimeException(ex);
-		}
-		String protocol = url.getProtocol().toLowerCase();
-		if (protocol.equals("jar")) { //$NON-NLS-1$
-			// if the class is in a JAR, the URL will look something like this:
-			//     jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class
-			return path.substring(0, path.indexOf('!'));
-		} else if (protocol.equals("file")) { //$NON-NLS-1$
-			// if the class is in a directory, the URL will look something like this:
-			//     file:/C:/dev/main/mwdev/class/org/eclipse/dali/utility/Classpath.class
-			return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1);
-		} else if (protocol.equals("bundleresource")) { //$NON-NLS-1$
-			// if the class is in a bundle resource (Eclipse?), the URL will look something like this:
-			//     bundleresource://43/org/eclipse/dali/utility/Classpath.class
-			return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1);
-		}
-
-		throw new IllegalStateException(url.toString());
-	}
-	
-	/**
-	 * Return the directories used by the Java Extension Mechanism.
-	 */
-	public static File[] javaExtensionDirectories() {
-		return convertToFiles(javaExtensionDirectoryNames());
-	}
-
-	/**
-	 * Return the directory names used by the Java Extension Mechanism.
-	 */
-	public static String[] javaExtensionDirectoryNames() {
-		return System.getProperty("java.ext.dirs").split(File.pathSeparator); //$NON-NLS-1$
-	}
-
-
-	// ***** internal *****
-
-	private static File[] convertToFiles(String[] fileNames) {
-		File[] files = new File[fileNames.length];
-		for (int i = fileNames.length; i-- > 0; ) {
-			files[i] = new File(fileNames[i]);
-		}
-		return files;
-	}
-
-	private static void addJarFileNamesTo(File dir, List<String> jarFileNames) {
-		File[] jarFiles = jarFilesIn(dir);
-		for (File jarFile : jarFiles) {
-			jarFileNames.add(FileTools.canonicalFile(jarFile).getPath());
-		}
-	}
-
-	private static File[] jarFilesIn(File directory) {
-		return directory.listFiles(jarFileFilter());
-	}
-
-	private static FileFilter jarFileFilter() {
-		return new FileFilter() {
-			public boolean accept(File file) {
-				return FileTools.extension(file.getName()).toLowerCase().equals(".jar"); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	private Classpath(Entry[] entries) {
-		super();
-		this.entries = entries;
-	}
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	public Classpath(String... fileNames) {
-		this(buildEntries(fileNames));
-	}
-
-	/**
-	 * Skip empty file names because they will end up expanding to the current
-	 * working directory, which is not what we want. Empty file names actually
-	 * occur with some frequency; such as when the classpath has been built up
-	 * dynamically with too many separators. For example:<pre>
-	 *     "C:\dev\foo.jar;;C:\dev\bar.jar"
-	 * </pre>will be parsed into three file names:<pre>
-	 *     { "C:\dev\foo.jar", "", "C:\dev\bar.jar" }
-	 * </pre>
-	 */
-	private static Entry[] buildEntries(String[] fileNames) {
-		List<Entry> entries = new ArrayList<Entry>();
-		for (String fileName : fileNames) {
-			if ((fileName != null) && (fileName.length() != 0)) {
-				entries.add(new Entry(fileName));
-			}
-		}
-		return entries.toArray(new Entry[entries.size()]);
-	}
-
-	/**
-	 * Construct a classpath with the specified path.
-	 */
-	public Classpath(String path) {
-		this(path.split(File.pathSeparator));
-	}
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	public Classpath(Iterable<String> fileNames) {
-		this(ArrayTools.array(fileNames, StringTools.EMPTY_STRING_ARRAY));
-	}
-
-	/**
-	 * Consolidate the specified classpaths into a single classpath.
-	 */
-	public Classpath(Classpath... classpaths) {
-		this(consolidateEntries(classpaths));
-	}
-
-	private static Entry[] consolidateEntries(Classpath[] classpaths) {
-		List<Entry> entries = new ArrayList<Entry>();
-		for (Classpath classpath : classpaths) {
-			CollectionTools.addAll(entries, classpath.getEntries());
-		}
-		return entries.toArray(new Entry[entries.size()]);
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the classpath's entries.
-	 */
-	public Iterable<Entry> getEntries() {
-		return new ArrayIterable<Entry>(this.entries);
-	}
-
-	/**
-	 * Return the classpath's path.
-	 */
-	public String getPath() {
-		int max = this.entries.length - 1;
-		if (max == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		StringBuilder sb = new StringBuilder(2000);
-		// stop one short of the end of the array
-		for (int i = 0; i < max; i++) {
-			sb.append(this.entries[i].getFileName());
-			sb.append(File.pathSeparatorChar);
-		}
-		sb.append(this.entries[max].getFileName());
-		return sb.toString();
-	}
-
-	/**
-	 * Search the classpath for the specified (unqualified) file
-	 * and return its entry. Return null if an entry is not found.
-	 * For example, you could use this method to find the entry
-	 * for <code>"rt.jar"</code> or <code>"toplink.jar"</code>.
-	 */
-	public Entry getEntryForFileNamed(String shortFileName) {
-		for (Entry entry : this.entries) {
-			if (entry.getFile().getName().equals(shortFileName)) {
-				return entry;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the first entry file in the classpath
-	 * that contains the specified class.
-	 * Return null if an entry is not found.
-	 */
-	public Entry getEntryForClassNamed(String className) {
-		String relativeClassFileName = convertToClassFileName(className);
-		String archiveEntryName = convertToArchiveClassFileEntryName(className);
-		for (Entry entry : this.entries) {
-			if (entry.contains(relativeClassFileName, archiveEntryName)) {
-				return entry;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath,
-	 * with duplicates removed.
-	 * @see #classNames()
-	 */
-	public Iterable<String> getClassNames() {
-		return this.getClassNames(Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath
-	 * and accepted by the specified filter, with duplicates removed.
-	 * @see #classNames(Filter)
-	 */
-	public Iterable<String> getClassNames(Filter<String> filter) {
-		Collection<String> classNames = new HashSet<String>(10000);
-		this.addClassNamesTo(classNames, filter);
-		return classNames;
-	}
-
-	/**
-	 * Add the names of all the classes discovered on the classpath
-	 * to the specified collection.
-	 */
-	public void addClassNamesTo(Collection<String> classNames) {
-		this.addClassNamesTo(classNames, Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Add the names of all the classes discovered on the classpath
-	 * and accepted by the specified filter to the specified collection.
-	 */
-	public void addClassNamesTo(Collection<String> classNames, Filter<String> filter) {
-		for (Entry entry : this.entries) {
-			entry.addClassNamesTo(classNames, filter);
-		}
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath.
-	 * Just a bit more performant than {@link #getClassNames()}.
-	 */
-	public Iterator<String> classNames() {
-		return this.classNames(Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath
-	 * that are accepted by the specified filter.
-	 * Just a bit more performant than {@link #getClassNames(Filter)}.
-	 */
-	public Iterator<String> classNames(Filter<String> filter) {
-		return new CompositeIterator<String>(this.entryClassNamesIterators(filter));
-	}
-
-	private Iterator<Iterator<String>> entryClassNamesIterators(final Filter<String> filter) {
-		return new TransformationIterator<Entry, Iterator<String>>(new ArrayIterator<Entry>(this.entries)) {
-			@Override
-			protected Iterator<String> transform(Entry entry) {
-				return entry.classNames(filter);
-			}
-		};
-	}
-
-	/**
-	 * Return a "compressed" version of the classpath with its
-	 * duplicate entries eliminated.
-	 */
-	public Classpath compressed() {
-		return new Classpath(ArrayTools.removeDuplicateElements(this.entries));
-	}
-
-	/**
-	 * Convert the classpath to an array of URLs
-	 * (that can be used to instantiate a {@link java.net.URLClassLoader}).
-	 */
-	public Iterable<URL> getURLs() {
-		int len = this.entries.length;
-		URL[] urls = new URL[len];
-		for (int i = 0; i < len; i++) {
-			urls[i] = this.entries[i].getURL();
-		}
-		return new ArrayIterable<URL>(urls);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getPath());
-	}
-
-
-	// ********** inner class **********
-
-	/**
-	 * <code>Entry</code> models a Java classpath entry, which can be either a
-	 * directory containing <code>.class</code> files or a JAR file (or,
-	 * similarly, a <code>.zip</code> file). The entry can return the names of
-	 * classes found in it etc.
-	 */
-	public static class Entry implements Serializable {
-		private final String fileName;
-		private final File file;
-		private final File canonicalFile;
-
-		private static final long serialVersionUID = 1L;
-
-		Entry(String fileName) {
-			super();
-			if ((fileName == null) || (fileName.length() == 0)) {
-				throw new IllegalArgumentException("'fileName' must be non-empty"); //$NON-NLS-1$
-			}
-			this.fileName = fileName;
-			this.file = new File(fileName);
-			this.canonicalFile = FileTools.canonicalFile(this.file);
-		}
-
-		public String getFileName() {
-			return this.fileName;
-		}
-
-		public File getFile() {
-			return this.file;
-		}
-
-		public File getCanonicalFile() {
-			return this.canonicalFile;
-		}
-
-		public String getCanonicalFileName() {
-			return this.canonicalFile.getAbsolutePath();
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Entry)) {
-				return false;
-			}
-			return ((Entry) o).canonicalFile.equals(this.canonicalFile);
-		}
-
-		@Override
-		public int hashCode() {
-			return this.canonicalFile.hashCode();
-		}
-
-		/**
-		 * Return the entry's "canonical" URL.
-		 */
-		public URL getURL() {
-			try {
-				return this.canonicalFile.toURI().toURL();
-			} catch (IOException ex) {
-				throw new RuntimeException(ex);
-			}
-		}
-
-		/**
-		 * Return whether the entry contains the specified class.
-		 */
-		public boolean contains(Class<?> javaClass) {
-			return this.contains(javaClass.getName());
-		}
-
-		/**
-		 * Return whether the entry contains the specified class.
-		 */
-		public boolean contains(String className) {
-			return this.contains(convertToClassFileName(className), convertToArchiveClassFileEntryName(className));
-		}
-
-		/**
-		 * Return whether the entry contains either the specified relative
-		 * class file or the specified archive entry.
-		 * Not the prettiest signature, but it's internal....
-		 */
-		boolean contains(String relativeClassFileName, String archiveEntryName) {
-			if ( ! this.canonicalFile.exists()) {
-				return false;
-			}
-			if (this.canonicalFile.isDirectory() && (new File(this.canonicalFile, relativeClassFileName)).exists()) {
-				return true;
-			}
-			return (fileIsArchive(this.canonicalFile) && this.archiveContainsEntry(archiveEntryName));
-		}
-
-		/**
-		 * Return whether the entry's archive contains the specified entry.
-		 */
-		private boolean archiveContainsEntry(String zipEntryName) {
-			ZipFile zipFile = null;
-			ZipEntry zipEntry = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-				zipEntry = zipFile.getEntry(zipEntryName);
-			} catch (IOException ex) {
-				// something is wrong, leave the entry null
-			} finally {
-				try {
-					if (zipFile != null) {
-						zipFile.close();
-					}
-				} catch (IOException ex) {
-					zipEntry = null;	// something is wrong, clear out the entry
-				}
-			}
-			return zipEntry != null;
-		}
-
-		/**
-		 * Return the names of all the classes discovered in the entry.
-		 * @see #classNames()
-		 */
-		public Iterable<String> getClassNames() {
-			return this.getClassNames(Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Return the names of all the classes discovered in the entry
-		 * and accepted by the specified filter.
-		 * @see #classNames(Filter)
-		 */
-		public Iterable<String> getClassNames(Filter<String> filter) {
-			Collection<String> classNames = new ArrayList<String>(2000);
-			this.addClassNamesTo(classNames, filter);
-			return classNames;
-		}
-
-		/**
-		 * Add the names of all the classes discovered in the entry
-		 * to the specified collection.
-		 */
-		public void addClassNamesTo(Collection<String> classNames) {
-			this.addClassNamesTo(classNames, Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Add the names of all the classes discovered in the entry
-		 * and accepted by the specified filter to the specified collection.
-		 */
-		public void addClassNamesTo(Collection<String> classNames, Filter<String> filter) {
-			if (this.canonicalFile.exists()) {
-				if (this.canonicalFile.isDirectory()) {
-					this.addClassNamesForDirectoryTo(classNames, filter);
-				} else if (fileIsArchive(this.canonicalFile)) {
-					this.addClassNamesForArchiveTo(classNames, filter);
-				}
-			}
-		}
-
-		/**
-		 * Add the names of all the classes discovered
-		 * under the entry's directory and accepted by
-		 * the specified filter to the specified collection.
-		 */
-		private void addClassNamesForDirectoryTo(Collection<String> classNames, Filter<String> filter) {
-			int start = this.canonicalFile.getAbsolutePath().length() + 1;
-			for (Iterator<File> stream = this.classFilesForDirectory(); stream.hasNext(); ) {
-				String className = convertToClassName(stream.next().getAbsolutePath().substring(start));
-				if (filter.accept(className)) {
-					classNames.add(className);
-				}
-			}
-		}
-
-		/**
-		 * Return an iterator on all the class files discovered
-		 * under the entry's directory.
-		 */
-		private Iterator<File> classFilesForDirectory() {
-			return new FilteringIterator<File>(FileTools.filesInTree(this.canonicalFile)) {
-				@Override
-				protected boolean accept(File next) {
-					return Entry.this.fileNameMightBeForClassFile(next.getName());
-				}
-			};
-		}
-
-		/**
-		 * Add the names of all the classes discovered
-		 * in the entry's archive file and accepted by the
-		 * specified filter to the specified collection.
-		 */
-		private void addClassNamesForArchiveTo(Collection<String> classNames, Filter<String> filter) {
-			ZipFile zipFile = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-			} catch (IOException ex) {
-				throw new RuntimeException(ex);
-			}
-			for (Enumeration<? extends ZipEntry> stream = zipFile.entries(); stream.hasMoreElements(); ) {
-				ZipEntry zipEntry = stream.nextElement();
-				String zipEntryName = zipEntry.getName();
-				if (this.fileNameMightBeForClassFile(zipEntryName)) {
-					String className = convertToClassName(zipEntryName);
-					if (filter.accept(className)) {
-						classNames.add(className);
-					}
-				}
-			}
-			try {
-				zipFile.close();
-			} catch (IOException ex) {
-				return;
-			}
-		}
-
-		/**
-		 * Return whether the specified file might be a Java class file.
-		 * The file name must at least end with <code>".class"</code> and contain no spaces.
-		 * (Neither class names nor package names may contain spaces.)
-		 * Whether it actually is a class file will need to be determined by
-		 * a class loader.
-		 */
-		boolean fileNameMightBeForClassFile(String name) {
-			return FileTools.extension(name).toLowerCase().equals(".class") //$NON-NLS-1$
-					&& (name.indexOf(' ') == -1);
-		}
-
-		/**
-		 * Return the names of all the classes discovered on the classpath.
-		 * Just a bit more performant than {@link #getClassNames()}.
-		 */
-		public Iterator<String> classNames() {
-			return this.classNames(Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Return the names of all the classes discovered on the classpath
-		 * that are accepted by the specified filter.
-		 * Just a bit more performant than {@link #getClassNames(Filter)}.
-		 */
-		public Iterator<String> classNames(Filter<String> filter) {
-			if (this.canonicalFile.exists()) {
-				if (this.canonicalFile.isDirectory()) {
-					return this.classNamesForDirectory(filter);
-				}
-				if (fileIsArchive(this.canonicalFile)) {
-					return this.classNamesForArchive(filter);
-				}
-			}
-			return EmptyIterator.instance();
-		}
-
-		/**
-		 * Return the names of all the classes discovered
-		 * under the entry's directory and accepted by
-		 * the specified filter.
-		 */
-		private Iterator<String> classNamesForDirectory(Filter<String> filter) {
-			return new FilteringIterator<String>(this.classNamesForDirectory(), filter);
-		}
-
-		/**
-		 * Transform the class files to class names.
-		 */
-		private Iterator<String> classNamesForDirectory() {
-			final int start = this.canonicalFile.getAbsolutePath().length() + 1;
-			return new TransformationIterator<File, String>(this.classFilesForDirectory()) {
-				@Override
-				protected String transform(File f) {
-					return convertToClassName(f.getAbsolutePath().substring(start));
-				}
-			};
-		}
-
-		/**
-		 * Return the names of all the classes discovered
-		 * in the entry's archive file and accepted by the
-		 * specified filter.
-		 */
-		private Iterator<String> classNamesForArchive(Filter<String> filter) {
-			// we can't simply wrap iterators here because we need to close the archive file...
-			ZipFile zipFile = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-			} catch (IOException ex) {
-				return EmptyIterator.instance();
-			}
-			Collection<String> classNames = new HashSet<String>(zipFile.size());
-			for (Enumeration<? extends ZipEntry> stream = zipFile.entries(); stream.hasMoreElements(); ) {
-				ZipEntry zipEntry = stream.nextElement();
-				String zipEntryName = zipEntry.getName();
-				if (this.fileNameMightBeForClassFile(zipEntryName)) {
-					String className = convertToClassName(zipEntryName);
-					if (filter.accept(className)) {
-						classNames.add(className);
-					}
-				}
-			}
-			try {
-				zipFile.close();
-			} catch (IOException ex) {
-				return EmptyIterator.instance();
-			}
-			return classNames.iterator();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java
deleted file mode 100644
index aca8d2c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java
+++ /dev/null
@@ -1,1957 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Random;
-import java.util.RandomAccess;
-import java.util.TreeSet;
-import java.util.Vector;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.SuperIteratorWrapper;
-
-/**
- * {@link Collection}-related utility methods.
- */
-public final class CollectionTools {
-
-	// ********** add all **********
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.addAll(Iterable iterable)</code>
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterable<? extends E> iterable) {
-		return addAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.addAll(Iterable iterable)</code>
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterable<? extends E> iterable, int size) {
-		return addAll(collection, iterable.iterator(), size);
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.addAll(Iterator iterator)</code>
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterator<? extends E> iterator) {
-		return iterator.hasNext() ? addAll_(collection, iterator) : false;
-	}
-
-	/**
-	 * assume the iterator is not empty
-	 */
-	private static <E> boolean addAll_(Collection<? super E> collection, Iterator<? extends E> iterator) {
-		boolean modified = false;
-		while (iterator.hasNext()) {
-			modified |= collection.add(iterator.next());
-		}
-		return modified;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.addAll(Iterator iterator)</code>
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterator<? extends E> iterator, int size) {
-		return iterator.hasNext() ? collection.addAll(list(iterator, size)) : false;
-	}
-
-	/**
-	 * Add all the elements in the specified array
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.addAll(Object[] array)</code>
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, E... array) {
-		return (array.length == 0) ? false : addAll_(collection, array);
-	}
-
-	/**
-	 * assume the array is not empty
-	 */
-	private static <E> boolean addAll_(Collection<? super E> collection, E... array) {
-		boolean modified = false;
-		for (E element : array) {
-			modified |= collection.add(element);
-		}
-		return modified;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * <p>
-	 * <code>List.addAll(Iterable iterable)</code>
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterable<E> iterable) {
-		return addAll(list, index, iterable.iterator());
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * <p>
-	 * <code>List.addAll(Iterable iterable)</code>
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterable<E> iterable, int size) {
-		return addAll(list, index, iterable.iterator(), size);
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * <p>
-	 * <code>List.addAll(Iterator iterator)</code>
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterator<? extends E> iterator) {
-		return iterator.hasNext() ? list.addAll(index, list(iterator)) : false;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * <p>
-	 * <code>List.addAll(Iterator iterator)</code>
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterator<? extends E> iterator, int size) {
-		return iterator.hasNext() ? list.addAll(index, list(iterator, size)) : false;
-	}
-
-	/**
-	 * Add all the elements in the specified array
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * <p>
-	 * <code>List.addAll(Object[] array)</code>
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, E... array) {
-		return (array.length == 0) ? false : list.addAll(index, Arrays.asList(array));
-	}
-
-
-	// ********** bag **********
-
-	/**
-	 * Return a bag corresponding to the specified enumeration.
-	 * <p>
-	 * <code>HashBag(Enumeration enumeration)</code>
-	 */
-	public static <E> HashBag<E> bag(Enumeration<? extends E> enumeration) {
-		return bag(enumeration, new HashBag<E>());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified enumeration.
-	 * The specified enumeration size is a performance hint.
-	 * <p>
-	 * <code>HashBag(Enumeration enumeration)</code>
-	 */
-	public static <E> HashBag<E> bag(Enumeration<? extends E> enumeration, int enumerationSize) {
-		return bag(enumeration, new HashBag<E>(enumerationSize));
-	}
-
-	private static <E> HashBag<E> bag(Enumeration<? extends E> enumeration, HashBag<E> bag) {
-		while (enumeration.hasMoreElements()) {
-			bag.add(enumeration.nextElement());
-		}
-		return bag;
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterable.
-	 * <p>
-	 * <code>HashBag(Iterable iterable)</code>
-	 */
-	public static <E> HashBag<E> bag(Iterable<? extends E> iterable) {
-		return bag(iterable.iterator());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>HashBag(Iterable iterable)</code>
-	 */
-	public static <E> HashBag<E> bag(Iterable<? extends E> iterable, int iterableSize) {
-		return bag(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterator.
-	 * <p>
-	 * <code>HashBag(Iterator iterator)</code>
-	 */
-	public static <E> HashBag<E> bag(Iterator<? extends E> iterator) {
-		return bag(iterator, new HashBag<E>());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>HashBag(Iterator iterator)</code>
-	 */
-	public static <E> HashBag<E> bag(Iterator<? extends E> iterator, int iteratorSize) {
-		return bag(iterator, new HashBag<E>(iteratorSize));
-	}
-
-	private static <E> HashBag<E> bag(Iterator<? extends E> iterator, HashBag<E> bag) {
-		while (iterator.hasNext()) {
-			bag.add(iterator.next());
-		}
-		return bag;
-	}
-
-	/**
-	 * Return a bag corresponding to the specified array.
-	 * <p>
-	 * <code>HashBag(Object[] array)</code>
-	 */
-	public static <E> HashBag<E> bag(E... array) {
-		int len = array.length;
-		HashBag<E> bag = new HashBag<E>(len);
-		for (E item : array) {
-			bag.add(item);
-		}
-		return bag;
-	}
-
-
-	// ********** collection **********
-
-	/**
-	 * Return a collection corresponding to the specified enumeration.
-	 */
-	public static <E> HashBag<E> collection(Enumeration<? extends E> enumeration) {
-		return bag(enumeration);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified enumeration.
-	 * The specified enumeration size is a performance hint.
-	 */
-	public static <E> HashBag<E> collection(Enumeration<? extends E> enumeration, int enumerationSize) {
-		return bag(enumeration, enumerationSize);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterable.
-	 */
-	public static <E> HashBag<E> collection(Iterable<? extends E> iterable) {
-		return collection(iterable.iterator());
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 */
-	public static <E> HashBag<E> collection(Iterable<? extends E> iterable, int iterableSize) {
-		return collection(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterator.
-	 */
-	public static <E> HashBag<E> collection(Iterator<? extends E> iterator) {
-		return bag(iterator);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 */
-	public static <E> HashBag<E> collection(Iterator<? extends E> iterator, int iteratorSize) {
-		return bag(iterator, iteratorSize);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified array.
-	 */
-	public static <E> HashBag<E> collection(E... array) {
-		return bag(array);
-	}
-
-
-	// ********** contains **********
-
-	/**
-	 * Return whether the specified enumeration contains the
-	 * specified element.
-	 * <p>
-	 * <code>Enumeration.contains(Object o)</code>
-	 */
-	public static boolean contains(Enumeration<?> enumeration, Object value) {
-		if (value == null) {
-			while (enumeration.hasMoreElements()) {
-				if (enumeration.nextElement() == null) {
-					return true;
-				}
-			}
-		} else {
-			while (enumeration.hasMoreElements()) {
-				if (value.equals(enumeration.nextElement())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified iterable contains the
-	 * specified element.
-	 * <p>
-	 * <code>Iterable.contains(Object o)</code>
-	 */
-	public static boolean contains(Iterable<?> iterable, Object value) {
-		return contains(iterable.iterator(), value);
-	}
-
-	/**
-	 * Return whether the specified iterator contains the
-	 * specified element.
-	 * <p>
-	 * <code>Iterator.contains(Object o)</code>
-	 */
-	public static boolean contains(Iterator<?> iterator, Object value) {
-		if (value == null) {
-			while (iterator.hasNext()) {
-				if (iterator.next() == null) {
-					return true;
-				}
-			}
-		} else {
-			while (iterator.hasNext()) {
-				if (value.equals(iterator.next())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-
-	// ********** contains all **********
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified iterable.
-	 * <p>
-	 * <code>Collection.containsAll(Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Collection<?> collection, Iterable<?> iterable) {
-		return containsAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified iterator.
-	 * <p>
-	 * <code>Collection.containsAll(Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Collection<?> collection, Iterator<?> iterator) {
-		while (iterator.hasNext()) {
-			if ( ! collection.contains(iterator.next())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified array.
-	 * <p>
-	 * <code>Collection.containsAll(Object[] array)</code>
-	 */
-	public static boolean containsAll(Collection<?> collection, Object... array) {
-		for (int i = array.length; i-- > 0; ) {
-			if ( ! collection.contains(array[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified collection.
-	 * <p>
-	 * <code>Iterable.containsAll(Collection collection)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Collection<?> collection) {
-		return containsAll(iterable.iterator(), collection);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified collection.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.containsAll(Collection collection)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int iterableSize, Collection<?> collection) {
-		return containsAll(iterable.iterator(), iterableSize, collection);
-	}
-
-	/**
-	 * Return whether the specified iterable 1 contains all of the
-	 * elements in the specified iterable 2.
-	 * <p>
-	 * <code>Iterable.containsAll(Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return containsAll(iterable1.iterator(), iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterable 1 contains all of the
-	 * elements in the specified iterable 2.
-	 * The specified iterable 1 size is a performance hint.
-	 * <p>
-	 * <code>Iterable.containsAll(Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable1, int iterable1Size, Iterable<?> iterable2) {
-		return containsAll(iterable1.iterator(), iterable1Size, iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified iterator.
-	 * <p>
-	 * <code>Iterable.containsAll(Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Iterator<?> iterator) {
-		return containsAll(iterable.iterator(), iterator);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified iterator.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.containsAll(Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int iterableSize, Iterator<?> iterator) {
-		return containsAll(iterable.iterator(), iterableSize, iterator);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified array.
-	 * <p>
-	 * <code>Iterable.containsAll(Object[] array)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Object... array) {
-		return containsAll(iterable.iterator(), array);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified array.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.containsAll(Object[] array)</code>
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int iterableSize, Object... array) {
-		return containsAll(iterable.iterator(), iterableSize, array);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified collection.
-	 * <p>
-	 * <code>Iterator.containsAll(Collection collection)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Collection<?> collection) {
-		return set(iterator).containsAll(collection);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified collection.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.containsAll(Collection collection)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int iteratorSize, Collection<?> collection) {
-		return set(iterator, iteratorSize).containsAll(collection);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified iterable.
-	 * <p>
-	 * <code>Iterator.containsAll(Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Iterable<?> iterable) {
-		return containsAll(set(iterator), iterable);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified iterable.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.containsAll(Iterable iterable)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int iteratorSize, Iterable<?> iterable) {
-		return containsAll(set(iterator, iteratorSize), iterable);
-	}
-
-	/**
-	 * Return whether the specified iterator 1 contains all of the
-	 * elements in the specified iterator 2.
-	 * <p>
-	 * <code>Iterator.containsAll(Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator1, Iterator<?> iterator2) {
-		return containsAll(set(iterator1), iterator2);
-	}
-
-	/**
-	 * Return whether the specified iterator 1 contains all of the
-	 * elements in the specified iterator 2.
-	 * The specified iterator 1 size is a performance hint.
-	 * <p>
-	 * <code>Iterator.containsAll(Iterator iterator)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator1, int iterator1Size, Iterator<?> iterator2) {
-		return containsAll(set(iterator1, iterator1Size), iterator2);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified array.
-	 * <p>
-	 * <code>Iterator.containsAll(Object[] array)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Object... array) {
-		return containsAll(set(iterator), array);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified array.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.containsAll(Object[] array)</code>
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int iteratorSize, Object... array) {
-		return containsAll(set(iterator, iteratorSize), array);
-	}
-
-
-	// ********** diff **********
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different, beginning at the end.
-	 * If the lists are identical, return -1.
-	 * If the lists are different sizes, return the index of the
-	 * last element in the longer list.
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 * <p>
-	 * <code>Collections.diffEnd(List list1, List list2)</code>
-	 */
-	public static int diffEnd(List<?> list1, List<?> list2) {
-		return ArrayTools.diffEnd(list1.toArray(), list2.toArray());
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 * <p>
-	 * <code>Collections.diffRange(List list1, List list2)</code>
-	 * @see #diffStart(List, List)
-	 * @see #diffEnd(List, List)
-	 */
-	public static Range diffRange(List<?> list1, List<?> list2) {
-		return ArrayTools.diffRange(list1.toArray(), list2.toArray());
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different. If the lists are identical, return
-	 * the size of the two lists (i.e. one past the last index).
-	 * If the lists are different sizes and all the elements in
-	 * the shorter list match their corresponding elements in
-	 * the longer list, return the size of the shorter list
-	 * (i.e. one past the last index of the shorter list).
-	 * Use the elements' {@link Object#equals(Object)} method to compare the
-	 * elements.
-	 * <p>
-	 * <code>Collections.diffStart(List list1, List list2)</code>
-	 */
-	public static int diffStart(List<?> list1, List<?> list2) {
-		return ArrayTools.diffStart(list1.toArray(), list2.toArray());
-	}
-
-
-	// ********** identity diff **********
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different, beginning at the end.
-	 * If the lists are identical, return -1.
-	 * If the lists are different sizes, return the index of the
-	 * last element in the longer list.
-	 * Use object identity to compare the elements.
-	 * <p>
-	 * <code>Collections.identityDiffEnd(List list1, List list2)</code>
-	 */
-	public static int identityDiffEnd(List<?> list1, List<?> list2) {
-		return ArrayTools.identityDiffEnd(list1.toArray(), list2.toArray());
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use object identity to compare the elements.
-	 * <p>
-	 * <code>Collections.identityDiffStart(List list1, List list2)</code>
-	 * @see #identityDiffStart(List, List)
-	 * @see #identityDiffEnd(List, List)
-	 */
-	public static Range identityDiffRange(List<?> list1, List<?> list2) {
-		return ArrayTools.identityDiffRange(list1.toArray(), list2.toArray());
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different. If the lists are identical, return
-	 * the size of the two lists (i.e. one past the last index).
-	 * If the lists are different sizes and all the elements in
-	 * the shorter list match their corresponding elements in
-	 * the longer list, return the size of the shorter list
-	 * (i.e. one past the last index of the shorter list).
-	 * Use object identity to compare the elements.
-	 * <p>
-	 * <code>Collections.identityDiffStart(List list1, List list2)</code>
-	 */
-	public static int identityDiffStart(List<?> list1, List<?> list2) {
-		return ArrayTools.identityDiffStart(list1.toArray(), list2.toArray());
-	}
-
-
-	// ********** elements are equal **********
-
-	/**
-	 * Return whether the specified iterables do not return the same elements
-	 * in the same order.
-	 */
-	public static boolean elementsAreDifferent(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return elementsAreDifferent(iterable1.iterator(), iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterators do not return the same elements
-	 * in the same order.
-	 */
-	public static boolean elementsAreDifferent(Iterator<?> iterator1, Iterator<?> iterator2) {
-		return ! elementsAreEqual(iterator1, iterator2);
-	}
-
-	/**
-	 * Return whether the specified iterables return equal elements
-	 * in the same order.
-	 * <p>
-	 * <code>Iterable.elementsAreEqual(Iterable iterable)</code>
-	 */
-	public static boolean elementsAreEqual(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return elementsAreEqual(iterable1.iterator(), iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterators return equal elements
-	 * in the same order.
-	 * <p>
-	 * <code>Iterator.elementsAreEqual(Iterator iterator)</code>
-	 */
-	public static boolean elementsAreEqual(Iterator<?> iterator1, Iterator<?> iterator2) {
-		while (iterator1.hasNext() && iterator2.hasNext()) {
-			if (Tools.valuesAreDifferent(iterator1.next(), iterator2.next())) {
-				return false;
-			}
-		}
-		return ! (iterator1.hasNext() || iterator2.hasNext());
-	}
-
-
-	// ********** elements are identical **********
-
-	/**
-	 * Return whether the specified iterables return the same elements.
-	 * <p>
-	 * <code>Iterable.identical(Iterable iterable)</code>
-	 */
-	public static boolean elementsAreIdentical(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return elementsAreIdentical(iterable1.iterator(), iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterators return the same elements.
-	 * <p>
-	 * <code>Iterator.identical(Iterator iterator)</code>
-	 */
-	public static boolean elementsAreIdentical(Iterator<?> iterator1, Iterator<?> iterator2) {
-		while (iterator1.hasNext() && iterator2.hasNext()) {
-			if (iterator1.next() != iterator2.next()) {
-				return false;
-			}
-		}
-		return ! (iterator1.hasNext() || iterator2.hasNext());
-	}
-
-
-	// ********** get **********
-
-	/**
-	 * Return the element corresponding to the specified index
-	 * in the specified iterable.
-	 * <p>
-	 * <code>Iterable.get(int index)</code>
-	 */
-	public static <E> E get(Iterable<? extends E> iterable, int index) {
-		return get(iterable.iterator(), index);
-	}
-
-	/**
-	 * Return the element corresponding to the specified index
-	 * in the specified iterator.
-	 * <p>
-	 * <code>Iterator.get(int index)</code>
-	 */
-	public static <E> E get(Iterator<? extends E> iterator, int index) {
-		int i = 0;
-		while (iterator.hasNext()) {
-			E next = iterator.next();
-			if (i++ == index) {
-				return next;
-			}
-		}
-		throw new IndexOutOfBoundsException(String.valueOf(index) + ':' + String.valueOf(i));
-	}
-
-
-	// ********** hash code **********
-
-	public static int hashCode(Iterable<?> iterable) {
-		if (iterable == null) {
-			return 0;
-		}
-		int hash = 1;
-		for (Object element : iterable) {
-			hash = 31 * hash + (element == null ? 0 : element.hashCode());
-		}
-		return hash;
-	}
-
-
-	// ********** index of **********
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified iterable;
-	 * return -1 if there is no such index.
-	 * <p>
-	 * <code>Iterable.indexOf(Object o)</code>
-	 */
-	public static int indexOf(Iterable<?> iterable, Object value) {
-		return indexOf(iterable.iterator(), value);
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified iterator;
-	 * return -1 if there is no such index.
-	 * <p>
-	 * <code>Iterator.indexOf(Object o)</code>
-	 */
-	public static int indexOf(Iterator<?> iterator, Object value) {
-		if (value == null) {
-			for (int i = 0; iterator.hasNext(); i++) {
-				if (iterator.next() == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = 0; iterator.hasNext(); i++) {
-				if (value.equals(iterator.next())) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-
-	// ********** insertion index of **********
-
-	/**
-	 * Return an index of where the specified comparable object
-	 * can be inserted into the specified sorted list and still keep
-	 * the list sorted. If the specified sorted list is an instance of
-	 * {@link RandomAccess} return the <em>maximum</em> insertion index;
-	 * otherwise return the <em>minimum</em> insertion index.
-	 */
-	public static <E extends Comparable<? super E>> int insertionIndexOf(List<E> sortedList, Comparable<E> value) {
-		if (sortedList instanceof RandomAccess) {
-			for (int i = sortedList.size(); i-- > 0; ) {
-				if (value.compareTo(sortedList.get(i)) >= 0) {
-					return i + 1;
-				}
-			}
-			return 0;
-		}
-		int i = 0;
-		for (E element : sortedList) {
-			if (value.compareTo(element) <= 0) {
-				return i;
-			}
-			i++;
-		}
-		return i;
-	}
-
-	/**
-	 * Return an index of where the specified comparable object
-	 * can be inserted into the specified sorted list and still keep
-	 * the list sorted. If the specified sorted list is an instance of
-	 * {@link RandomAccess} return the <em>maximum</em> insertion index;
-	 * otherwise return the <em>minimum</em> insertion index.
-	 */
-	public static <E> int insertionIndexOf(List<E> sortedList, E value, Comparator<? super E> comparator) {
-		if (sortedList instanceof RandomAccess) {
-			for (int i = sortedList.size(); i-- > 0; ) {
-				if (comparator.compare(value, sortedList.get(i)) >= 0) {
-					return i + 1;
-				}
-			}
-			return 0;
-		}
-		int i = 0;
-		for (E element : sortedList) {
-			if (comparator.compare(value, element) <= 0) {
-				return i;
-			}
-			i++;
-		}
-		return i;
-	}
-
-
-	// ********** iterable/iterator **********
-
-	/**
-	 * Return an iterable on the elements in the specified array.
-	 * <p>
-	 * <code>Arrays.iterable(Object[] array)</code>
-	 */
-	public static <E> Iterable<E> iterable(E... array) {
-		return new ArrayIterable<E>(array);
-	}
-
-	/**
-	 * Return an iterator on the elements in the specified array.
-	 * <p>
-	 * <code>Arrays.iterator(Object[] array)</code>
-	 */
-	public static <E> Iterator<E> iterator(E... array) {
-		return new ArrayIterator<E>(array);
-	}
-
-
-	// ********** last **********
-
-	/**
-	 * Return the specified iterable's last element.
-	 * <p>
-	 * <code>Iterable.last()</code>
-	 * 
-     * @exception java.util.NoSuchElementException iterable is empty.
-	 */
-	public static <E> E last(Iterable<E> iterable) {
-		return last(iterable.iterator());
-	}
-
-	/**
-	 * Return the specified iterator's last element.
-	 * <p>
-	 * <code>Iterator.last()</code>
-	 * 
-     * @exception java.util.NoSuchElementException iterator is empty.
-	 */
-	public static <E> E last(Iterator<E> iterator) {
-		E last;
-		do {
-			last = iterator.next();
-		} while (iterator.hasNext());
-		return last;
-	}
-
-
-	// ********** last index of **********
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterable;
-	 * return -1 if there is no such index.
-	 * <p>
-	 * <code>Iterable.lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterable<?> iterable, Object value) {
-		return lastIndexOf(iterable.iterator(), value);
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterable;
-	 * return -1 if there is no such index.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterable<?> iterable, int iterableSize, Object value) {
-		return lastIndexOf(iterable.iterator(), iterableSize, value);
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterator;
-	 * return -1 if there is no such index.
-	 * <p>
-	 * <code>Iterator.lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterator<?> iterator, Object value) {
-		return iterator.hasNext() ? list(iterator).lastIndexOf(value) : -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterator;
-	 * return -1 if there is no such index.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterator<?> iterator, int iteratorSize, Object value) {
-		return iterator.hasNext() ? list(iterator, iteratorSize).lastIndexOf(value) : -1;
-	}
-
-
-	// ********** list **********
-
-	/**
-	 * Return a list corresponding to the specified iterable.
-	 * <p>
-	 * <code>Iterable.toList()</code>
-	 */
-	public static <E> ArrayList<E> list(Iterable<? extends E> iterable) {
-		return list(iterable.iterator());
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.toList()</code>
-	 */
-	public static <E> ArrayList<E> list(Iterable<? extends E> iterable, int iterableSize) {
-		return list(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterator.
-	 * <p>
-	 * <code>Iterator.toList()</code>
-	 */
-	public static <E> ArrayList<E> list(Iterator<? extends E> iterator) {
-		return list(iterator, new ArrayList<E>());
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.toList()</code>
-	 */
-	public static <E> ArrayList<E> list(Iterator<? extends E> iterator, int iteratorSize) {
-		return list(iterator, new ArrayList<E>(iteratorSize));
-	}
-
-	private static <E> ArrayList<E> list(Iterator<? extends E> iterator, ArrayList<E> list) {
-		while (iterator.hasNext()) {
-			list.add(iterator.next());
-		}
-		return list;
-	}
-
-	/**
-	 * Return a list corresponding to the specified array.
-	 * Unlike {@link Arrays#asList(Object[])}, the list
-	 * is modifiable and is not backed by the array.
-	 */
-	public static <E> ArrayList<E> list(E... array) {
-		return new ArrayList<E>(Arrays.asList(array));
-	}
-
-	/**
-	 * Return a list iterator for the specified array.
-	 * <p>
-	 * <code>Arrays.listIterator(Object[] array)</code>
-	 */
-	public static <E> ListIterator<E> listIterator(E... array) {
-		return listIterator(array, 0);
-	}
-
-	/**
-	 * Return a list iterator for the specified array
-	 * starting at the specified position in the array.
-	 * <p>
-	 * <code>Arrays.listIterator(Object[] array, int index)</code>
-	 */
-	public static <E> ListIterator<E> listIterator(E[] array, int start) {
-		return listIterator(array, start, array.length - start);
-	}
-
-	/**
-	 * Return a list iterator for the specified array
-	 * starting at the specified position in the array.
-	 * <p>
-	 * <code>Arrays.listIterator(Object[] array, int index, int length)</code>
-	 */
-	public static <E> ListIterator<E> listIterator(E[] array, int start, int length) {
-		return new ArrayListIterator<E>(array, start, length);
-	}
-
-
-	// ********** move **********
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered list.
-	 * <p>
-	 * <code>List.move(int targetIndex, int sourceIndex)</code>
-	 */
-	public static <E> List<E> move(List<E> list, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? list : move_(list, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static <E> List<E> move_(List<E> list, int targetIndex, int sourceIndex) {
-		if (list instanceof RandomAccess) {
-			// move elements, leaving the list in place
-			E temp = list.get(sourceIndex);
-			if (targetIndex < sourceIndex) {
-				for (int i = sourceIndex; i-- > targetIndex; ) {
-					list.set(i + 1, list.get(i));
-				}
-			} else {
-				for (int i = sourceIndex; i < targetIndex; i++) {
-					list.set(i, list.get(i + 1));
-				}
-			}
-			list.set(targetIndex, temp);
-		} else {
-			// remove the element and re-add it at the target index
-			list.add(targetIndex, list.remove(sourceIndex));
-		}
-		return list;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered list.
-	 * <p>
-	 * <code>List.move(int targetIndex, int sourceIndex, int length)</code>
-	 */
-	public static <E> List<E> move(List<E> list, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return list;
-		}
-		if (length == 1) {
-			return move_(list, targetIndex, sourceIndex);
-		}
-		if (list instanceof RandomAccess) {
-			// move elements, leaving the list in place
-			ArrayList<E> temp = new ArrayList<E>(list.subList(sourceIndex, sourceIndex + length));
-			if (targetIndex < sourceIndex) {
-				for (int i = sourceIndex; i-- > targetIndex; ) {
-					list.set(i + length, list.get(i));
-				}
-			} else {
-				for (int i = sourceIndex; i < targetIndex; i++) {
-					list.set(i, list.get(i + length));
-				}
-			}
-			for (int i = 0; i < length; i++) {
-				list.set(targetIndex + i, temp.get(i));
-			}
-		} else {
-			// remove the elements and re-add them at the target index
-			list.addAll(targetIndex, removeElementsAtIndex(list, sourceIndex, length));
-		}
-		return list;
-	}
-
-
-	// ********** remove all **********
-
-	/**
-	 * Remove all the elements returned by the specified iterable
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.removeAll(Iterable iterable)</code>
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterable<?> iterable) {
-		return removeAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterable
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Collection.removeAll(Iterable iterable)</code>
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterable<?> iterable, int iterableSize) {
-		return removeAll(collection, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterator
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.removeAll(Iterator iterator)</code>
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterator<?> iterator) {
-		return iterator.hasNext() ? collection.removeAll(set(iterator)) : false;
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterator
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Collection.removeAll(Iterator iterator)</code>
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterator<?> iterator, int iteratorSize) {
-		return iterator.hasNext() ? collection.removeAll(set(iterator, iteratorSize)) : false;
-	}
-
-	/**
-	 * Remove all the elements in the specified array
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.removeAll(Object[] array)</code>
-	 */
-	public static boolean removeAll(Collection<?> collection, Object... array) {
-		return (array.length == 0) ? false : collection.removeAll(set(array));
-	}
-
-
-	// ********** remove all occurrences **********
-
-	/**
-	 * Remove all occurrences of the specified element
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.removeAllOccurrences(Object value)</code>
-	 */
-	public static boolean removeAllOccurrences(Collection<?> collection, Object value) {
-		boolean modified = false;
-		Iterator<?> stream = collection.iterator();
-		if (value == null) {
-			while (stream.hasNext()) {
-				if (stream.next() == null) {
-					stream.remove();
-					modified = true;
-				}
-			}
-		} else {
-			while (stream.hasNext()) {
-				if (value.equals(stream.next())) {
-					stream.remove();
-					modified = true;
-				}
-			}
-		}
-		return modified;
-	}
-
-
-	// ********** remove elements at index **********
-
-	/**
-	 * Remove the elements at the specified index.
-	 * Return the removed elements.
-	 * <p>
-	 * <code>List.remove(int index, int length)</code>
-	 */
-	public static <E> ArrayList<E> removeElementsAtIndex(List<E> list, int index, int length) {
-		List<E> subList = list.subList(index, index + length);
-		ArrayList<E> result = new ArrayList<E>(subList);
-		subList.clear();
-		return result;
-	}
-
-
-	// ********** remove duplicate elements **********
-
-	/**
-	 * Remove any duplicate elements from the specified list,
-	 * while maintaining the order.
-	 * Return whether the list changed as a result.
-	 */
-	public static <E> boolean removeDuplicateElements(List<E> list) {
-		int size = list.size();
-		if ((size == 0) || (size == 1)) {
-			return false;
-		}
-		return removeDuplicateElements(list, size);
-	}
-
-	/**
-	 * assume list is non-empty
-	 */
-	static <E> boolean removeDuplicateElements(List<E> list, int size) {
-		LinkedHashSet<E> temp = new LinkedHashSet<E>(size);		// take advantage of hashed look-up
-		boolean modified = false;
-		for (E item : list) {
-			if ( ! temp.add(item)) {
-				modified = true;  // duplicate item
-			}
-		}
-		if (modified) {
-			int i = 0;
-			for (E e : temp) {
-				list.set(i, e);
-				i++;
-			}
-			int tempSize = temp.size();
-			for (i = list.size(); i-- > tempSize; ) {
-				list.remove(i);  // pull off the end
-			}
-		}
-		return modified;
-	}
-
-
-	// ********** retain all **********
-
-	/**
-	 * Retain only the elements in the specified iterable
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.retainAll(Iterable iterable)</code>
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterable<?> iterable) {
-		return retainAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Retain only the elements in the specified iterable
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Collection.retainAll(Iterable iterable)</code>
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterable<?> iterable, int iterableSize) {
-		return retainAll(collection, iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Retain only the elements in the specified iterator
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.retainAll(Iterator iterator)</code>
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterator<?> iterator) {
-		if (iterator.hasNext()) {
-			return collection.retainAll(set(iterator));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-	/**
-	 * Retain only the elements in the specified iterator
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Collection.retainAll(Iterator iterator)</code>
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterator<?> iterator, int iteratorSize) {
-		if (iterator.hasNext()) {
-			return collection.retainAll(set(iterator, iteratorSize));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-	/**
-	 * Retain only the elements in the specified array
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * <p>
-	 * <code>Collection.retainAll(Object[] array)</code>
-	 */
-	public static boolean retainAll(Collection<?> collection, Object... array) {
-		if (array.length > 0) {
-			return collection.retainAll(set(array));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-
-	// ********** reverse list **********
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterable.
-	 * <p>
-	 * <code>Iterable.reverseList()</code>
-	 */
-	public static <E> ArrayList<E> reverseList(Iterable<? extends E> iterable) {
-		return reverseList(iterable.iterator());
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.reverseList()</code>
-	 */
-	public static <E> ArrayList<E> reverseList(Iterable<? extends E> iterable, int iterableSize) {
-		return reverseList(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterator.
-	 * <p>
-	 * <code>Iterator.reverseList()</code>
-	 */
-	public static <E> ArrayList<E> reverseList(Iterator<? extends E> iterator) {
-		return (ArrayList<E>) reverse(list(iterator));
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.reverseList()</code>
-	 */
-	public static <E> ArrayList<E> reverseList(Iterator<? extends E> iterator, int size) {
-		return (ArrayList<E>) reverse(list(iterator, size));
-	}
-
-
-	// ********** rotate **********
-
-	/**
-	 * Return the list after it has been "rotated" by one position.
-	 * <p>
-	 * <code>List.rotate()</code>
-	 */
-	public static <E> List<E> rotate(List<E> list) {
-		return rotate(list, 1);
-	}
-
-
-	// ********** set **********
-
-	/**
-	 * Return a set corresponding to the specified iterable.
-	 * <p>
-	 * <code>HashSet(Iterable iterable)</code>
-	 */
-	public static <E> HashSet<E> set(Iterable<? extends E> iterable) {
-		return set(iterable.iterator());
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>HashSet(Iterable iterable)</code>
-	 */
-	public static <E> HashSet<E> set(Iterable<? extends E> iterable, int iterableSize) {
-		return set(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterator.
-	 * <p>
-	 * <code>HashSet(Iterator iterator)</code>
-	 */
-	public static <E> HashSet<E> set(Iterator<? extends E> iterator) {
-		return set(iterator, new HashSet<E>());
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>HashSet(Iterator iterator)</code>
-	 */
-	public static <E> HashSet<E> set(Iterator<? extends E> iterator, int iteratorSize) {
-		return set(iterator, new HashSet<E>(iteratorSize));
-	}
-
-	private static <E> HashSet<E> set(Iterator<? extends E> iterator, HashSet<E> set) {
-		while (iterator.hasNext()) {
-			set.add(iterator.next());
-		}
-		return set;
-	}
-
-	/**
-	 * Return a set corresponding to the specified array.
-	 * <p>
-	 * <code>HashSet(Object[] array)</code>
-	 */
-	public static <E> HashSet<E> set(E... array) {
-		HashSet<E> set = new HashSet<E>(array.length);
-		for (int i = array.length; i-- > 0;) {
-			set.add(array[i]);
-		}
-		return set;
-	}
-
-
-	// ********** singleton iterator **********
-
-	/**
-	 * Return an iterator that returns only the single,
-	 * specified object.
-	 * <p>
-	 * <code>Object.toIterator()</code>
-	 */
-	public static <E> Iterator<E> singletonIterator(E value) {
-		return new SingleElementIterator<E>(value);
-	}
-
-	/**
-	 * Return a list iterator that returns only the single,
-	 * specified object.
-	 * <p>
-	 * <code>Object.toListIterator()</code>
-	 */
-	public static <E> ListIterator<E> singletonListIterator(E value) {
-		return new SingleElementListIterator<E>(value);
-	}
-
-
-	// ********** size **********
-
-	/**
-	 * Return the number of elements returned by the specified iterable.
-	 * <p>
-	 * <code>Iterable.size()</code>
-	 */
-	public static int size(Iterable<?> iterable) {
-		return size(iterable.iterator());
-	}
-
-	/**
-	 * Return the number of elements returned by the specified iterator.
-	 * <p>
-	 * <code>Iterator.size()</code>
-	 */
-	public static int size(Iterator<?> iterator) {
-		int size = 0;
-		while (iterator.hasNext()) {
-			iterator.next();
-			size++;
-		}
-		return size;
-	}
-	
-	/**
-	 * Return whether the specified iterable is empty
-	 * (Shortcuts the iterator rather than calculating the entire size)
-	 */
-	public static boolean isEmpty(Iterable<?> iterable) {
-		return isEmpty(iterable.iterator());
-	}
-	
-	/**
-	 * Return whether the specified iterator is empty
-	 * (Shortcuts the iterator rather than calculating the entire size)
-	 */
-	public static boolean isEmpty(Iterator<?> iterator) {
-		return ! iterator.hasNext();
-	}
-	
-	
-	// ********** sort **********
-
-	/**
-	 * Return an iterable containing the sorted elements of the specified iterable.
-	 * <p>
-	 * <code>Iterable.sort()</code>
-	 */
-	public static <E extends Comparable<? super E>> Iterable<E> sort(Iterable<E> iterable) {
-		return sort(iterable, null);
-	}
-
-	/**
-	 * Return an iterable containing the sorted elements of the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.sort()</code>
-	 */
-	public static <E extends Comparable<? super E>> Iterable<E> sort(Iterable<E> iterable, int iterableSize) {
-		return sort(iterable, null, iterableSize);
-	}
-
-	/**
-	 * Return an iterable containing the sorted elements of the specified iterable.
-	 * <p>
-	 * <code>Iterable.sort(Comparator comparator)</code>
-	 */
-	public static <E> Iterable<E> sort(Iterable<E> iterable, Comparator<? super E> comparator) {
-		return sort(list(iterable), comparator);
-	}
-
-	/**
-	 * Return an iterable containing the sorted elements of the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>Iterable.sort(Comparator comparator)</code>
-	 */
-	public static <E> Iterable<E> sort(Iterable<E> iterable, Comparator<? super E> comparator, int iterableSize) {
-		return sort(list(iterable, iterableSize), comparator);
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 * <p>
-	 * <code>Iterator.sort()</code>
-	 */
-	public static <E extends Comparable<? super E>> ListIterator<E> sort(Iterator<? extends E> iterator) {
-		return sort(iterator, null);
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.sort()</code>
-	 */
-	public static <E extends Comparable<? super E>> ListIterator<E> sort(Iterator<? extends E> iterator, int iteratorSize) {
-		return sort(iterator, null, iteratorSize);
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 * <p>
-	 * <code>Iterator.sort(Comparator comparator)</code>
-	 */
-	public static <E> ListIterator<E> sort(Iterator<? extends E> iterator, Comparator<? super E> comparator) {
-		return sort(list(iterator), comparator).listIterator();
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>Iterator.sort(Comparator comparator)</code>
-	 */
-	public static <E> ListIterator<E> sort(Iterator<? extends E> iterator, Comparator<? super E> comparator, int iteratorSize) {
-		return sort(list(iterator, iteratorSize), comparator).listIterator();
-	}
-
-
-	// ********** sorted set **********
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable.
-	 * <p>
-	 * <code>TreeSet(Iterable iterable)</code>
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterable<? extends E> iterable) {
-		return sortedSet(iterable.iterator());
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>TreeSet(Iterable iterable)</code>
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterable<? extends E> iterable, int iterableSize) {
-		return sortedSet(iterable.iterator(), iterableSize);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable
-	 * and comparator.
-	 * <p>
-	 * <code>TreeSet(Iterable iterable, Comparator c)</code>
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterable<? extends E> iterable, Comparator<? super E> comparator) {
-		return sortedSet(iterable.iterator(), comparator);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable
-	 * and comparator.
-	 * The specified iterable size is a performance hint.
-	 * <p>
-	 * <code>TreeSet(Iterable iterable, Comparator c)</code>
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterable<? extends E> iterable, Comparator<? super E> comparator, int iterableSize) {
-		return sortedSet(iterable.iterator(), comparator, iterableSize);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator.
-	 * <p>
-	 * <code>TreeSet(Iterator iterator)</code>
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterator<? extends E> iterator) {
-		return sortedSet(iterator, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>TreeSet(Iterator iterator)</code>
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterator<? extends E> iterator, int iteratorSize) {
-		return sortedSet(iterator, null, iteratorSize);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator
-	 * and comparator.
-	 * <p>
-	 * <code>TreeSet(Iterator iterator, Comparator c)</code>
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterator<? extends E> iterator, Comparator<? super E> comparator) {
-		return sortedSet(list(iterator), comparator);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator
-	 * and comparator.
-	 * The specified iterator size is a performance hint.
-	 * <p>
-	 * <code>TreeSet(Iterator iterator, Comparator c)</code>
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterator<? extends E> iterator, Comparator<? super E> comparator, int iteratorSize) {
-		return sortedSet(list(iterator, iteratorSize), comparator);
-	}
-
-	private static <E> TreeSet<E> sortedSet(List<E> list, Comparator<? super E> comparator) {
-		TreeSet<E> sortedSet = new TreeSet<E>(comparator);
-		sortedSet.addAll(list);
-		return sortedSet;
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified array.
-	 * <p>
-	 * <code>TreeSet(Object[] array)</code>
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(E... array) {
-		return sortedSet(array, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified array
-	 * and comparator.
-	 * <p>
-	 * <code>TreeSet(Object[] array, Comparator c)</code>
-	 */
-	public static <E> TreeSet<E> sortedSet(E[] array, Comparator<? super E> comparator) {
-		TreeSet<E> sortedSet = new TreeSet<E>(comparator);
-		sortedSet.addAll(Arrays.asList(array));
-		return sortedSet;
-	}
-
-
-	// ********** Old School Vector **********
-
-	/**
-	 * Return a vector corresponding to the specified iterable.
-	 * This is useful for legacy code that requires a {@link Vector}.
-	 * <p>
-	 * <code>Vector(Iterable iterable)</code>
-	 */
-	public static <E> Vector<E> vector(Iterable<? extends E> iterable) {
-		return vector(iterable.iterator());
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterable.
-	 * This is useful for legacy code that requires a {@link Vector}.
-	 * <p>
-	 * <code>Vector(Iterable iterable, int size)</code>
-	 */
-	public static <E> Vector<E> vector(Iterable<? extends E> iterable, int size) {
-		return vector(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterator.
-	 * This is useful for legacy code that requires a {@link Vector}.
-	 * <p>
-	 * <code>Vector(Iterator iterator)</code>
-	 */
-	public static <E> Vector<E> vector(Iterator<? extends E> iterator) {
-		return vector(iterator, new Vector<E>());
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterator.
-	 * This is useful for legacy code that requires a {@link Vector}.
-	 * <p>
-	 * <code>Vector(Iterator iterator, int size)</code>
-	 */
-	public static <E> Vector<E> vector(Iterator<? extends E> iterator, int size) {
-		return vector(iterator, new Vector<E>(size));
-	}
-
-	private static <E> Vector<E> vector(Iterator<? extends E> iterator, Vector<E> v) {
-		while (iterator.hasNext()) {
-			v.addElement(iterator.next());
-		}
-		return v;
-	}
-
-	/**
-	 * Return a vector corresponding to the specified array.
-	 * This is useful for legacy code that requires a {@link Vector}.
-	 * <p>
-	 * <code>Vector(Object... array)</code>
-	 */
-	public static <E> Vector<E> vector(E... array) {
-		Vector<E> v = new Vector<E>(array.length);
-		for (E item : array) {
-			v.addElement(item);
-		}
-		return v;
-	}
-
-
-	// ********** single-use Iterable **********
-
-	/**
-	 * Return a one-use {@link Iterable} for the specified {@link Iterator}.
-	 * Throw an {@link IllegalStateException} if {@link Iterable#iterator()}
-	 * is called more than once.
-	 * As such, this utility should only be used in one-use situations, such as
-	 * a foreach loop.
-	 */
-	public static <E> Iterable<E> iterable(Iterator<? extends E> iterator) {
-		return new SingleUseIterable<E>(iterator);
-	}
-
-	/**
-	 * This is a one-time use iterable that can return a single iterator.
-	 * Once the iterator is returned the iterable is no longer valid.
-	 * As such, this utility should only be used in one-time use situations,
-	 * such as a 'for-each' loop.
-	 */
-	public static class SingleUseIterable<E> implements Iterable<E> {
-		private Iterator<E> iterator;
-
-		public SingleUseIterable(Iterator<? extends E> iterator) {
-			super();
-			if (iterator == null) {
-				throw new NullPointerException();
-			}
-			this.iterator = new SuperIteratorWrapper<E>(iterator);
-		}
-
-		public Iterator<E> iterator() {
-			if (this.iterator == null) {
-				throw new IllegalStateException("This method has already been called."); //$NON-NLS-1$
-			}
-			Iterator<E> result = this.iterator;
-			this.iterator = null;
-			return result;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.iterator);
-		}
-
-	}
-
-
-	// ********** java.util.Collections enhancements **********
-
-	/**
-	 * Return the destination list after the source list has been copied into it.
-	 * @see Collections#copy(List, List)
-	 */
-	public static <E> List<E> copy(List<E> dest, List<? extends E> src) {
-		Collections.copy(dest, src);
-		return dest;
-	}
-
-	/**
-	 * Return the list after it has been "filled".
-	 * @see Collections#fill(List, Object)
-	 */
-	public static <E> List<E> fill(List<E> list, E value) {
-		Collections.fill(list, value);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "reversed".
-	 * @see Collections#reverse(List)
-	 */
-	public static <E> List<E> reverse(List<E> list) {
-		Collections.reverse(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "rotated".
-	 * @see Collections#rotate(List, int)
-	 */
-	public static <E> List<E> rotate(List<E> list, int distance) {
-		Collections.rotate(list, distance);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "shuffled".
-	 * @see Collections#shuffle(List)
-	 */
-	public static <E> List<E> shuffle(List<E> list) {
-		Collections.shuffle(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "shuffled".
-	 * @see Collections#shuffle(List, Random)
-	 */
-	public static <E> List<E> shuffle(List<E> list, Random random) {
-		Collections.shuffle(list, random);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "sorted".
-	 * NB: The list is sorted in place as a side-effect.
-	 * @see Collections#sort(List)
-	 */
-	public static <E extends Comparable<? super E>> List<E> sort(List<E> list) {
-		Collections.sort(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "sorted".
-	 * NB: The list is sorted in place as a side-effect.
-	 * @see Collections#sort(List, Comparator)
-	 */
-	public static <E> List<E> sort(List<E> list, Comparator<? super E> comparator) {
-		Collections.sort(list, comparator);
-		return list;
-	}
-
-	/**
-	 * Return the list after the specified elements have been "swapped".
-	 * @see Collections#swap(List, int, int)
-	 */
-	public static <E> List<E> swap(List<E> list, int i, int j) {
-		Collections.swap(list, i, j);
-		return list;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private CollectionTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java
deleted file mode 100644
index 8f66ef2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Wrap a Command so it can be used as a Runnable.
- */
-public class CommandRunnable implements Runnable {
-	protected final Command command;
-
-	public CommandRunnable(Command command) {
-		super();
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.command = command;
-	}
-
-	public void run() {
-		this.command.execute();
-	}
-
-	@Override
-	public String toString() {
-		return "Runnable[" + this.command.toString() +']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java
deleted file mode 100644
index fce6610..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-
-/**
- * <code>CompositeCommand</code> provides support for treating a collection of
- * {@link Command}s as a single command.
- */
-public class CompositeCommand
-	implements Command
-{
-	private final Iterable<Command> commands;
-
-	public CompositeCommand(Command... commands) {
-		this(new ArrayIterable<Command>(commands));
-	}
-
-	public CompositeCommand(Iterable<Command> commands) {
-		super();
-		this.commands = commands;
-	}
-
-	public void execute() {
-		for (Command command : this.commands) {
-			command.execute();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.commands);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java
deleted file mode 100644
index dcb5128..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.Collection;
-
-/**
- * Provide a way for multiple exceptions to be packaged and reported.
- */
-public class CompositeException
-	extends RuntimeException
-{
-	private final Throwable[] exceptions;
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * The specified exceptions list must not be empty.
-	 */
-	public CompositeException(Collection<Throwable> exceptions) {
-		this(exceptions.toArray(new Throwable[exceptions.size()]));
-	}
-
-	/**
-	 * The specified exceptions list must not be empty.
-	 */
-	public CompositeException(Throwable[] exceptions) {
-		// provide a list of the nested exceptions and
-		// grab the first exception and make it the "cause"
-		super(buildMessage(exceptions));
-		this.exceptions = exceptions;
-	}
-
-	public Throwable[] getExceptions() {
-		return this.exceptions;
-	}
-
-	private static String buildMessage(Throwable[] exceptions) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(exceptions.length);
-		sb.append(" exceptions: "); //$NON-NLS-1$
-		sb.append('[');
-		for (Throwable ex : exceptions) {
-			sb.append(ex.getClass().getSimpleName());
-			sb.append(", "); //$NON-NLS-1$
-		}
-		sb.setLength(sb.length() - 2);  // chop off trailing comma
-		sb.append(']');
-		return sb.toString();
-	}
-
-	@Override
-	public void printStackTrace(PrintStream s) {
-		synchronized (s) {
-			s.println(this);
-			for (StackTraceElement element : this.getStackTrace()) {
-				s.print("\tat "); //$NON-NLS-1$
-				s.println(element);
-			}
-			int i = 1;
-			for (Throwable ex : this.exceptions) {
-				s.print("Nested exception "); //$NON-NLS-1$
-				s.print(i++);
-				s.print(": "); //$NON-NLS-1$
-				ex.printStackTrace(s);
-			}
-		}
-	}
-
-	@Override
-	public void printStackTrace(PrintWriter s) {
-		synchronized (s) {
-			s.println(this);
-			for (StackTraceElement element : this.getStackTrace()) {
-				s.print("\tat "); //$NON-NLS-1$
-				s.println(element);
-			}
-			int i = 1;
-			for (Throwable ex : this.exceptions) {
-				s.print("Nested exception "); //$NON-NLS-1$
-				s.print(i++);
-				s.print(": "); //$NON-NLS-1$
-				ex.printStackTrace(s);
-			}
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java
deleted file mode 100644
index 8dc34e9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.util.Vector;
-import java.util.concurrent.ThreadFactory;
-
-/**
- * A <code>ConsumerThreadCoordinator</code> controls the creation,
- * starting, and stopping of a general purpose "consumer" thread. Construct
- * the coordinator with a {@link Consumer} that both waits for the producer
- * to "produce" something to "consume" and, once the wait is over,
- * "consumes" whatever is available.
- * <p>
- * <strong>NB:</strong> The client-supplied consumer should handle any
- * exception appropriately (e.g. log the exception and return gracefully) so
- * the thread can continue executing.
- */
-public class ConsumerThreadCoordinator {
-	/**
-	 * The runnable passed to the consumer thread each time it is built.
-	 */
-	private final Runnable runnable;
-
-	/**
-	 * Client-supplied thread factory. Defaults to a straightforward
-	 * implementation.
-	 */
-	private final ThreadFactory threadFactory;
-
-	/**
-	 * Optional, client-supplied name for the consumer thread.
-	 * If null, the JDK assigns a name.
-	 */
-	private final String threadName;
-
-	/**
-	 * The consumer is executed on this thread. A new thread is built
-	 * for every start/stop cycle (since a thread cannot be started more than
-	 * once).
-	 */
-	private volatile Thread thread;
-
-	/**
-	 * A list of the uncaught exceptions thrown by the consumer
-	 * during the current start/stop cycle.
-	 */
-	final Vector<Throwable> exceptions = new Vector<Throwable>();
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct a consumer thread coordinator for the specified consumer.
-	 * Use simple JDK thread(s) for the consumer thread(s).
-	 * Allow the consumer thread(s) to be assigned JDK-generated names.
-	 */
-	public ConsumerThreadCoordinator(Consumer consumer) {
-		this(consumer, SimpleThreadFactory.instance());
-	}
-
-	/**
-	 * Construct a consumer thread coordinator for the specified consumer.
-	 * Use the specified thread factory to construct the consumer thread(s).
-	 * Allow the consumer thread(s) to be assigned JDK-generated names.
-	 */
-	public ConsumerThreadCoordinator(Consumer consumer, ThreadFactory threadFactory) {
-		this(consumer, threadFactory, null);
-	}
-
-	/**
-	 * Construct a consumer thread coordinator for the specified consumer.
-	 * Assign the consumer thread(s) the specified name.
-	 * Use simple JDK thread(s) for the consumer thread(s).
-	 */
-	public ConsumerThreadCoordinator(Consumer consumer, String threadName) {
-		this(consumer, SimpleThreadFactory.instance(), threadName);
-	}
-
-	/**
-	 * Construct a consumer thread coordinator for the specified consumer.
-	 * Use the specified thread factory to construct the consumer thread(s).
-	 * Assign the consumer thread(s) the specified name.
-	 */
-	public ConsumerThreadCoordinator(Consumer consumer, ThreadFactory threadFactory, String threadName) {
-		super();
-		this.runnable = this.buildRunnable(consumer);
-		this.threadFactory = threadFactory;
-		this.threadName = threadName;
-	}
-
-	private Runnable buildRunnable(Consumer consumer) {
-		return new RunnableConsumer(consumer);
-	}
-
-
-	// ********** Lifecycle support **********
-
-	/**
-	 * Build and start the consumer thread.
-	 */
-	public synchronized void start() {
-		if (this.thread != null) {
-			throw new IllegalStateException("Not stopped."); //$NON-NLS-1$
-		}
-		this.thread = this.buildThread();
-		this.thread.start();
-	}
-
-	private Thread buildThread() {
-		Thread t = this.threadFactory.newThread(this.runnable);
-		if (this.threadName != null) {
-			t.setName(this.threadName);
-		}
-		return t;
-	}
-
-	/**
-	 * Interrupt the consumer thread so that it stops executing at the
-	 * end of its current iteration. Suspend the current thread until
-	 * the consumer thread is finished executing. If any uncaught
-	 * exceptions were thrown while the consumer thread was executing,
-	 * wrap them in a composite exception and throw the composite exception.
-	 */
-	public synchronized void stop() {
-		if (this.thread == null) {
-			throw new IllegalStateException("Not started."); //$NON-NLS-1$
-		}
-		this.thread.interrupt();
-		try {
-			this.thread.join();
-		} catch (InterruptedException ex) {
-			// the thread that called #stop() was interrupted while waiting to
-			// join the consumer thread - ignore;
-			// 'thread' is still "interrupted", so its #run() loop will still stop
-			// after its current execution - we just won't wait around for it...
-		}
-		this.thread = null;
-
-		if (this.exceptions.size() > 0) {
-			Throwable[] temp = this.exceptions.toArray(new Throwable[this.exceptions.size()]);
-			this.exceptions.clear();
-			throw new CompositeException(temp);
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.thread);
-	}
-
-
-	// ********** consumer thread runnable **********
-
-	/**
-	 * This implementation of {@link Runnable} is a long-running consumer that
-	 * will repeatedly execute the consumer {@link Consumer#execute()} method.
-	 * With each iteration, the consumer thread will wait
-	 * until the other consumer method, {@link Consumer#waitForProducer()}, allows the
-	 * consumer thread to proceed (i.e. there is something for the consumer to
-	 * consume). Once {@link Consumer#execute()} is finished, the thread will quiesce
-	 * until {@link Consumer#waitForProducer()} returns again.
-	 * Stop the thread by calling {@link Thread#interrupt()}.
-	 */
-	private class RunnableConsumer
-		implements Runnable
-	{
-		/**
-		 * Client-supplied consumer that controls waiting for something to consume
-		 * and the consuming itself.
-		 */
-		private final Consumer consumer;
-
-		RunnableConsumer(Consumer consumer) {
-			super();
-			this.consumer = consumer;
-		}
-
-		/**
-		 * Loop while this thread has not been interrupted by another thread.
-		 * In each loop: Pause execution until {@link Consumer#waitForProducer()}
-		 * allows us to proceed.
-		 * <p>
-		 * If this thread is interrupted <em>during</em> {@link Consumer#execute()},
-		 * the call to {@link Thread#interrupted()} will stop the loop. If this thread is
-		 * interrupted during the call to {@link Consumer#waitForProducer()},
-		 * we will catch the {@link InterruptedException} and stop the loop also.
-		 */
-		public void run() {
-			while ( ! Thread.interrupted()) {
-				try {
-					this.consumer.waitForProducer();
-				} catch (InterruptedException ex) {
-					// we were interrupted while waiting, must be Quittin' Time
-					return;
-				}
-				this.execute();
-			}
-		}
-
-		/**
-		 * Execute the consumer {@link Consumer#execute()} method.
-		 * Do not allow any unhandled exceptions to kill the thread.
-		 * Store them up for later pain.
-		 * @see ConsumerThreadCoordinator#stop()
-		 */
-		private void execute() {
-			try {
-				this.execute_();
-			} catch (Throwable ex) {
-				ConsumerThreadCoordinator.this.exceptions.add(ex);
-			}
-		}
-
-		/**
-		 * Subclass-implemented behavior: consume stuff.
-		 */
-		private void execute_() {
-			this.consumer.execute();
-		}
-
-	}
-
-
-	// ********** consumer interface **********
-
-	/**
-	 * Interface implemented by clients that controls:<ul>
-	 * <li>when the consumer thread suspends, waiting for something to consume
-	 * <li>the consuming of whatever is being produced
-	 * </ul>
-	 */
-	public interface Consumer {
-		/**
-		 * Wait for something to consume.
-		 * Throw an {@link InterruptedException} if the thread is interrupted.
-		 */
-		void waitForProducer() throws InterruptedException;
-
-		/**
-		 * Consume whatever is currently available.
-		 */
-		void execute();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java
deleted file mode 100644
index 9c32f55..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Simple interface for allowing clients to pass an exception handler to a
- * service (e.g. to log the exception). This is particularly helpful if the
- * service executes on another, possibly inaccessible, thread.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ExceptionHandler {
-
-	/**
-	 * The specified exception was thrown. Handle it appropriately.
-	 */
-	void handleException(Throwable t);
-
-	/**
-	 * Singleton implementation of the exception handler interface that does
-	 * nothing with the exception.
-	 */
-	final class Null implements ExceptionHandler, Serializable {
-		public static final ExceptionHandler INSTANCE = new Null();
-		public static ExceptionHandler instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void handleException(Throwable t) {
-			// do nothing
-		}
-		@Override
-		public String toString() {
-			return "ExceptionHandler.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	/**
-	 * Singleton implementation of the exception handler interface that
-	 * wraps the exception in a runtime exception and throws it.
-	 */
-	final class Runtime implements ExceptionHandler, Serializable {
-		public static final ExceptionHandler INSTANCE = new Runtime();
-		public static ExceptionHandler instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Runtime() {
-			super();
-		}
-		public void handleException(Throwable t) {
-			// re-throw the exception unchecked
-			throw new RuntimeException(t);
-		}
-		@Override
-		public String toString() {
-			return "ExceptionHandler.Runtime"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java
deleted file mode 100644
index cfe93a6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java
+++ /dev/null
@@ -1,1002 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.channels.FileChannel;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-
-/**
- * Assorted file tools:
- * - delete entire trees of directories and files
- * - build iterators on entire trees of directories and files
- * - build a temporary directory
- * - "canonize" files
- */
-public final class FileTools {
-
-	public static final String USER_HOME_DIRECTORY_NAME = System.getProperty("user.home"); //$NON-NLS-1$
-	public static final String USER_TEMPORARY_DIRECTORY_NAME = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
-	public static String DEFAULT_TEMPORARY_DIRECTORY_NAME = "tmpdir"; //$NON-NLS-1$
-	public static final String CURRENT_WORKING_DIRECTORY_NAME = System.getProperty("user.dir"); //$NON-NLS-1$
-
-    /** A list of some invalid file name characters.
-				: is the filename separator in MacOS and the drive indicator in DOS
-				* is a DOS wildcard character
-				| is a DOS redirection character
-				& is our own escape character
-				/ is the filename separator in Unix and the command option tag in DOS
-				\ is the filename separator in DOS/Windows and the escape character in Unix
-				; is ???
-				? is a DOS wildcard character
-				[ is ???
-				] is ???
-				= is ???
-				+ is ???
-				< is a DOS redirection character
-				> is a DOS redirection character
-				" is used by DOS to delimit file names with spaces
-				, is ???
-     */
-	public static final char[] INVALID_FILENAME_CHARACTERS = { ':', '*', '|', '&', '/', '\\', ';', '?', '[', ']', '=', '+', '<', '>', '"', ',' };
-
-	/** This encoder will convert strings into valid file names. */
-	public static final XMLStringEncoder FILE_NAME_ENCODER = new XMLStringEncoder(INVALID_FILENAME_CHARACTERS);
-
-	/** Windows files that are redirected to devices etc. */
-	@SuppressWarnings("nls")
-	private static final String[] WINDOWS_RESERVED_FILE_NAMES = {
-		"con",
-		"aux",
-		"com1", "com2", "com3", "com4", "com5", "com6", "com7", "com8", "com9",
-		"lpt1", "lpt2", "lpt3", "lpt4", "lpt5", "lpt6", "lpt7", "lpt8", "lpt9",
-		"prn",
-		"nul"
-	};
-
-	/** The default length of a shortened file name. */
-	public static final int MAXIMUM_SHORTENED_FILE_NAME_LENGTH = 60;
-
-
-	// ********** deleting directories **********
-
-	/**
-	 * Delete the specified directory and all of its contents.
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteAll()?
-	 */
-	public static void deleteDirectory(String directoryName) {
-		deleteDirectory(new File(directoryName));
-	}
-	
-	/**
-	 * Delete the specified directory and all of its contents.
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteAll()?
-	 */
-	public static void deleteDirectory(File directory) {
-		deleteDirectoryContents(directory);
-		if ( ! directory.delete()) {
-			throw new RuntimeException("unable to delete directory: " + directory.getAbsolutePath()); //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Delete the contents of the specified directory
-	 * (but not the directory itself).
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteFiles()
-	 */
-	public static void deleteDirectoryContents(String directoryName) {
-		deleteDirectoryContents(new File(directoryName));
-	}
-	
-	/**
-	 * Delete the contents of the specified directory
-	 * (but not the directory itself).
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteFiles()
-	 */
-	public static void deleteDirectoryContents(File directory) {
-		for (File file : directory.listFiles()) {
-			if (file.isDirectory()) {
-				deleteDirectory(file);	// recurse through subdirectories
-			} else {
-				if ( ! file.delete()) {
-					throw new RuntimeException("unable to delete file: " + file.getAbsolutePath()); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-	
-
-	// ********** copying files **********
-
-	/**
-	 * Copies the content of the source file to the destination file.
-	 * File#copy(File destinationFile)
-	 */
-	public static void copyToFile(File sourceFile, File destinationFile)
-		throws IOException
-	{
-		FileChannel sourceChannel = new FileInputStream(sourceFile).getChannel();
-		FileChannel destinationChannel = new FileOutputStream(destinationFile).getChannel();
-		try {
-			destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
-		} finally {
-			sourceChannel.close();
-			destinationChannel.close();
-		}
-	}
-	
-	/**
-	 * Copies the content of the source file to a file by
-	 * the same name in the destination directory.
-	 * File#copyToDirectory(File destinationDirectory)
-	 */
-	public static void copyToDirectory(File sourceFile, File destinationDirectory)
-		throws IOException
-	{
-		File destinationFile = new File(destinationDirectory, sourceFile.getName());
-		if ( ! destinationFile.exists() && ! destinationFile.createNewFile()) {
-			throw new RuntimeException("createNewFile() failed: " + destinationFile); //$NON-NLS-1$
-		}
-		copyToFile(sourceFile, destinationFile);
-	}
-	
-
-	// ********** iteratoring over files and directories **********
-
-	/**
-	 * Return an iterator on all the files in the specified directory.
-	 * The iterator will skip over subdirectories.
-	 * File#files()
-	 */
-	public static Iterator<File> filesIn(String directoryName) {
-		return filesIn(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the files in the specified directory.
-	 * The iterator will skip over subdirectories.
-	 * File#files()
-	 */
-	public static Iterator<File> filesIn(File directory) {
-		return filesIn(directory.listFiles());
-	}
-	
-	private static Iterator<File> filesIn(File[] files) {
-		return new FilteringIterator<File>(new ArrayIterator<File>(files)) {
-			@Override
-			protected boolean accept(File next) {
-				return next.isFile();
-			}
-		};
-	}
-	
-	/**
-	 * Return an iterator on all the subdirectories
-	 * in the specified directory.
-	 * File#subDirectories()
-	 */
-	public static Iterator<File> directoriesIn(String directoryName) {
-		return directoriesIn(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the subdirectories
-	 * in the specified directory.
-	 * File#subDirectories()
-	 */
-	public static Iterator<File> directoriesIn(File directory) {
-		return directoriesIn(directory.listFiles());
-	}
-	
-	private static Iterator<File> directoriesIn(File[] files) {
-		return new FilteringIterator<File>(new ArrayIterator<File>(files)) {
-			@Override
-			protected boolean accept(File next) {
-				return next.isDirectory();
-			}
-		};
-	}
-	
-	/**
-	 * Return an iterator on all the files under the specified
-	 * directory, recursing into subdirectories.
-	 * The iterator will skip over the subdirectories themselves.
-	 * File#filesRecurse()
-	 */
-	public static Iterator<File> filesInTree(String directoryName) {
-		return filesInTree(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the files under the specified
-	 * directory, recursing into subdirectories.
-	 * The iterator will skip over the subdirectories themselves.
-	 * File#filesRecurse()
-	 */
-	public static Iterator<File> filesInTree(File directory) {
-		return filesInTreeAsSet(directory).iterator();
-	}
-
-	private static Set<File> filesInTreeAsSet(File directory) {
-		Set<File> files = new HashSet<File>(10000);
-		addFilesInTreeTo(directory, files);
-		return files;
-	}
-
-	private static void addFilesInTreeTo(File directory, Collection<File> allFiles) {
-		for (File file : directory.listFiles()) {
-			if (file.isFile()) {
-				allFiles.add(file);
-			} else if (file.isDirectory()) {
-				addFilesInTreeTo(file, allFiles);
-			}
-		}
-	}
-
-	/**
-	 * Return an iterator on all the directories under the specified
-	 * directory, recursing into subdirectories.
-	 * File#subDirectoriesRecurse()
-	 */
-	public static Iterator<File> directoriesInTree(String directoryName) {
-		return directoriesInTree(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the directories under the specified
-	 * directory, recursing into subdirectories.
-	 * File#subDirectoriesRecurse()
-	 */
-	@SuppressWarnings("unchecked")
-	public static Iterator<File> directoriesInTree(File directory) {
-		File[] files = directory.listFiles();
-		return new CompositeIterator<File>(directoriesIn(files), directoriesInTrees(directoriesIn(files)));
-	}
-	
-	private static Iterator<File> directoriesInTrees(Iterator<File> directories) {
-		return new CompositeIterator<File>(
-			new TransformationIterator<File, Iterator<File>>(directories) {
-				@Override
-				protected Iterator<File> transform(File next) {
-					return FileTools.directoriesInTree(next);
-				}
-			}
-		);
-	}
-	
-
-	// ********** short file name manipulation **********
-
-	/**
-	 * Strip the extension from the specified file name
-	 * and return the result. If the file name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return fileName;
-		}
-		return fileName.substring(0, index);
-	}
-	
-	/**
-	 * Strip the extension from the specified file's name
-	 * and return the result. If the file's name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(File file) {
-		return stripExtension(file.getPath());
-	}
-
-	/**
-	 * Return the extension, including the dot, of the specified file name.
-	 * If the file name has no extension, return an empty string.
-	 * File#extension()
-	 */
-	public static String extension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		return fileName.substring(index);
-	}
-	
-	/**
-	 * Return the extension, including the dot, of the specified file's name.
-	 * If the file's name has no extension, return an empty string.
-	 * File#extension()
-	 */
-	public static String extension(File file) {
-		return extension(file.getPath());
-	}
-
-
-	// ********** temporary directories **********
-
-	/**
-	 * Build and return an empty temporary directory with the specified
-	 * name. If the directory already exists, it will be cleared out.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File emptyTemporaryDirectory(String name) {
-		File dir = new File(userTemporaryDirectory(), name);
-		if (dir.exists()) {
-			deleteDirectoryContents(dir);
-		} else {
-			mkdirs(dir);
-		}
-		return dir;
-	}
-
-	private static void mkdirs(File dir) {
-		if ( ! dir.mkdirs()) {
-			throw new RuntimeException("mkdirs() failed: " + dir); //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Build and return an empty temporary directory with a
-	 * name of "tmpdir". If the directory already exists, it will be cleared out.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File emptyTemporaryDirectory() {
-		return emptyTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Build and return a temporary directory with the specified
-	 * name. If the directory already exists, it will be left unchanged;
-	 * if it does not already exist, it will be created.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File temporaryDirectory(String name) {
-		File dir = new File(userTemporaryDirectory(), name);
-		if ( ! dir.exists()) {
-			mkdirs(dir);
-		}
-		return dir;
-	}
-	
-	/**
-	 * Build and return a temporary directory with a name of
-	 * "tmpdir". If the directory already exists, it will be left unchanged;
-	 * if it does not already exist, it will be created.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File temporaryDirectory() {
-		return temporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Build and return a *new* temporary directory with the specified
-	 * prefix. The prefix will be appended with a number that
-	 * is incremented, starting with 1, until a non-pre-existing directory
-	 * is found and successfully created. This directory will be a
-	 * subdirectory of the Java temporary directory, as indicated by
-	 * the System property "java.io.tmpdir".
-	 */
-	public static File newTemporaryDirectory(String prefix) {
-		if ( ! prefix.endsWith(".")) { //$NON-NLS-1$
-			prefix = prefix + '.';
-		}
-		File dir;
-		int i = 0;
-		do {
-			i++;
-			dir = new File(userTemporaryDirectory(), prefix + i);
-		} while ( ! dir.mkdirs());
-		return dir;
-	}
-	
-	/**
-	 * Build and return a *new* temporary directory with a
-	 * prefix of "tmpdir". This prefix will be appended with a number that
-	 * is incremented, starting with 1, until a non-pre-existing directory
-	 * is found and successfully created. This directory will be a
-	 * subdirectory of the Java temporary directory, as indicated by
-	 * the System property "java.io.tmpdir".
-	 */
-	public static File newTemporaryDirectory() {
-		return newTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-
-	// ********** resource files **********
-
-	/**
-	 * Build and return a file for the specified resource.
-	 * The resource name must be fully-qualified, i.e. it cannot be relative
-	 * to the package name/directory.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File resourceFile(String resourceName) throws URISyntaxException {
-		if ( ! resourceName.startsWith("/")) { //$NON-NLS-1$
-			throw new IllegalArgumentException(resourceName);
-		}
-		return resourceFile(resourceName, FileTools.class);
-	}
-	
-	/**
-	 * Build and return a file for the specified resource.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File resourceFile(String resourceName, Class<?> javaClass) throws URISyntaxException {
-		URL url = javaClass.getResource(resourceName);
-		return buildFile(url);
-	}
-	
-	/**
-	 * Build and return a file for the specified URL.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File buildFile(URL url) throws URISyntaxException {
-		return buildFile(url.getFile());
-	}
-	
-	/**
-	 * Build and return a file for the specified file name.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File buildFile(String fileName) throws URISyntaxException {
-		URI uri = new URI(fileName);
-		File file = new File(uri.getPath());
-		return file;
-	}
-	
-
-	// ********** "canonical" files **********
-
-	/**
-	 * Convert the specified file into a "canonical" file.
-	 */
-	public static File canonicalFile(File file) {
-		try {
-			return file.getCanonicalFile();
-		} catch (IOException ioexception) {
-			// settle for the absolute file
-			return file.getAbsoluteFile();
-		}
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified files
-	 * into "canonical" files.
-	 */
-	public static Iterator<File> canonicalFiles(Iterator<File> files) {
-		return new TransformationIterator<File, File>(files) {
-			@Override
-			protected File transform(File next) {
-				return canonicalFile(next);
-			}
-		};
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified files
-	 * into "canonical" files.
-	 */
-	public static Iterator<File> canonicalFiles(Collection<File> files) {
-		return canonicalFiles(files.iterator());
-	}
-	
-	/**
-	 * Convert the specified file name into a "canonical" file name.
-	 */
-	public static String canonicalFileName(String fileName) {
-		return canonicalFile(new File(fileName)).getAbsolutePath();
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified file names
-	 * into "canonical" file names.
-	 */
-	public static Iterator<String> canonicalFileNames(Iterator<String> fileNames) {
-		return new TransformationIterator<String, String>(fileNames) {
-			@Override
-			protected String transform(String next) {
-				return canonicalFileName(next);
-			}
-		};
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified file names
-	 * into "canonical" file names.
-	 */
-	public static Iterator<String> canonicalFileNames(Collection<String> fileNames) {
-		return canonicalFileNames(fileNames.iterator());
-	}
-	
-
-	// ********** file name validation **********
-
-	/**
-	 * Return whether the specified file name is invalid.
-	 */
-	public static boolean fileNameIsInvalid(String filename) {
-		return ! fileNameIsValid(filename);
-	}
-
-	/**
-	 * Return whether the specified file name is valid.
-	 */
-	public static boolean fileNameIsValid(String filename) {
-		int len = filename.length();
-		for (int i = 0; i < len; i++) {
-			char filenameChar = filename.charAt(i);
-			if (ArrayTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Convert the illegal characters in the specified file name to
-	 * the specified character and return the result.
-	 */
-	public static String convertToValidFileName(String filename, char replacementChar) {
-		int len = filename.length();
-		StringBuilder sb = new StringBuilder(len);
-		for (int i = 0; i < len; i++) {
-			char filenameChar = filename.charAt(i);
-			if (ArrayTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) {
-				sb.append(replacementChar);
-			} else {
-				sb.append(filenameChar);
-			}
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Convert the illegal characters in the specified file name to
-	 * periods ('.') and return the result.
-	 */
-	public static String convertToValidFileName(String filename) {
-		return convertToValidFileName(filename, '.');
-	}
-
-	/**
-	 * Return whether the specified file name is "reserved"
-	 * (i.e. it cannot be used for "user" files). Windows reserves
-	 * a number of file names (e.g. CON, AUX, PRN).
-	 */
-	public static boolean fileNameIsReserved(String fileName) {
-		// Unix/Linux does not have any "reserved" file names (I think...)
-		return Tools.osIsWindows() && ArrayTools.contains(WINDOWS_RESERVED_FILE_NAMES, fileName.toLowerCase());
-	}
-
-	/**
-	 * Return whether the specified file contains any "reserved"
-	 * components.
-	 * Windows reserves a number of file names (e.g. CON, AUX, PRN);
-	 * and these file names cannot be used for either the names of
-	 * files or directories.
-	 */
-	public static boolean fileHasAnyReservedComponents(File file) {
-		File temp = file;
-		while (temp != null) {
-			if (fileNameIsReserved(temp.getName())) {
-				return true;
-			}
-			temp = temp.getParentFile();
-		}
-		return false;
-	}
-
-
-	// ********** shortened file names **********
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(URL url) {
-		return shortenFileName(url, MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(URL url, int maxLength) {
-		File file;
-		try {
-			file = buildFile(url);
-		} catch (URISyntaxException e) {
-			file = new File(url.getFile());
-		}
-		return shortenFileName(file, maxLength);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(File file) {
-		return shortenFileName(file, MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(File file, int maxLength) {
-		String absoluteFileName = canonicalFile(file).getAbsolutePath();
-		if (absoluteFileName.length() <= maxLength) {
-			// no need to shorten
-			return absoluteFileName;
-		}
-
-		// break down the path into its components
-		String fs = File.separator;
-		String[] paths = absoluteFileName.split('\\' + fs);
-
-		if (paths.length <= 1) {
-			// e.g. "C:\"
-			return paths[0];
-		}
-
-		if (paths.length == 2) {
-			// e.g. "C:\MyReallyLongFileName.ext" or "C:\MyReallyLongDirectoryName"
-			// return the complete file name since this is a minimum requirement,
-			// regardless of the maximum length allowed
-			return absoluteFileName;
-		}
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(paths[0]);		// always add the first directory, which is usually the drive letter
-
-		// Keep the index of insertion into the string buffer
-		int insertIndex = sb.length();
-
-		sb.append(fs);
-		sb.append(paths[paths.length - 1]);		// append the file name or the last directory
-
-		maxLength -= 4;                      // -4 for "/..."
-
-		int currentLength = sb.length() - 4; // -4 for "/..."
-		int leftIndex = 1;                   //  1 to skip the root directory
-		int rightIndex = paths.length - 2;   // -1 for the file name or the last directory
-
-		boolean canAddFromLeft = true;
-		boolean canAddFromRight = true;
-
-		// Add each directory, the insertion is going in both direction: left and
-		// right, once a side can't be added, the other side is still continuing
-		// until both can't add anymore
-		while (true) {
-			if (!canAddFromLeft && !canAddFromRight)
-				break;
-
-			if (canAddFromRight) {
-				String rightDirectory = paths[rightIndex];
-				int rightLength = rightDirectory.length();
-
-				// Add the directory on the right side of the loop
-				if (currentLength + rightLength + 1 <= maxLength) {
-					sb.insert(insertIndex,     fs);
-					sb.insert(insertIndex + 1, rightDirectory);
-
-					currentLength += rightLength + 1;
-					rightIndex--;
-
-					// The right side is now overlapping the left side, that means
-					// we can't add from the right side anymore
-					if (leftIndex >= rightIndex) {
-						canAddFromRight = false;
-					}
-				} else {
-					canAddFromRight = false;
-				}
-			}
-
-			if (canAddFromLeft) {
-				String leftDirectory = paths[leftIndex];
-				int leftLength = leftDirectory.length();
-
-				// Add the directory on the left side of the loop
-				if (currentLength + leftLength + 1 <= maxLength) {
-					sb.insert(insertIndex,     fs);
-					sb.insert(insertIndex + 1, leftDirectory);
-
-					insertIndex += leftLength + 1;
-					currentLength += leftLength + 1;
-					leftIndex++;
-
-					// The left side is now overlapping the right side, that means
-					// we can't add from the left side anymore
-					if (leftIndex >= rightIndex) {
-						canAddFromLeft = false;
-					}
-				} else {
-					canAddFromLeft = false;
-				}
-			}
-		}
-
-		if (leftIndex <= rightIndex) {
-			sb.insert(insertIndex, fs);
-			sb.insert(insertIndex + 1, "..."); //$NON-NLS-1$
-		}
-
-		return sb.toString();
-	}
-
-
-	// ********** system properties **********
-
-	/**
-	 * Return a file representing the user's home directory.
-	 */
-	public static File userHomeDirectory() {
-		return new File(USER_HOME_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Return a file representing the user's temporary directory.
-	 */
-	public static File userTemporaryDirectory() {
-		return new File(USER_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Return a file representing the current working directory.
-	 */
-	public static File currentWorkingDirectory() {
-		return new File(CURRENT_WORKING_DIRECTORY_NAME);
-	}
-	
-
-	// ********** miscellaneous **********
-
-	/**
-	 * Return only the files that fit the filter.
-	 * File#files(FileFilter fileFilter)
-	 */
-	public static Iterator<File> filter(Iterator<File> files, final FileFilter fileFilter) {
-		return new FilteringIterator<File>(files) {
-			@Override
-			protected boolean accept(File next) {
-				return fileFilter.accept(next);
-			}
-		};
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, relative to the specified directory.
-	 *     Linux/Unix/Mac:
-	 *         convertToRelativeFile(/foo/bar/baz.java, /foo)
-	 *             => bar/baz.java
-	 *     Windows:
-	 *         convertToRelativeFile(C:\foo\bar\baz.java, C:\foo)
-	 *             => bar/baz.java
-	 * The file can be either a file or a directory; the directory
-	 * *should* be a directory.
-	 * If the file is already relative or it cannot be made relative
-	 * to the directory, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToRelativeFile(final File file, final File dir) {
-		// check whether the file is already relative
-		if ( ! file.isAbsolute()) {
-			return file;		// return unchanged
-		}
-
-		File cFile = canonicalFile(file);
-		File cDir = canonicalFile(dir);
-
-		// the two are the same directory
-		if (cFile.equals(cDir)) {
-			return new File("."); //$NON-NLS-1$
-		}
-
-		File[] filePathFiles = pathFiles(cFile);
-		File[] dirPathFiles = pathFiles(cDir);
-
-		// Windows only (?): the roots are different - e.g. D:\ vs. C:\
-		if ( ! dirPathFiles[0].equals(filePathFiles[0])) {
-			return file;		// return unchanged
-		}
-
-		// at this point we know the root is the same, now find how much is in common
-		int i = 0;		// this will point at the first miscompare
-		while ((i < dirPathFiles.length) && (i < filePathFiles.length)) {
-			if (dirPathFiles[i].equals(filePathFiles[i])) {
-				i++;
-			} else {
-				break;
-			}
-		}
-		// save our current position
-		int firstMismatch = i;
-
-		// check whether the file is ABOVE the directory: ../..
-		if (firstMismatch == filePathFiles.length) {
-			return relativeParentFile(dirPathFiles.length - firstMismatch);
-		}
-
-		// build a new file from the path beyond the matching portions
-		File diff = new File(filePathFiles[i].getName());
-		while (++i < filePathFiles.length) {
-			diff = new File(diff, filePathFiles[i].getName());
-		}
-
-		// check whether the file is BELOW the directory: subdir1/subdir2/file.ext
-		if (firstMismatch == dirPathFiles.length) {
-			return diff;
-		}
-
-		// the file must be a PEER of the directory: ../../subdir1/subdir2/file.ext
-		return new File(relativeParentFile(dirPathFiles.length - firstMismatch), diff.getPath());
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, relative to the current working directory.
-	 *     Linux/Unix/Mac (CWD = /foo):
-	 *         convertToRelativeFile(/foo/bar/baz.java)
-	 *             => bar/baz.java
-	 *     Windows (CWD = C:\foo):
-	 *         convertToRelativeFile(C:\foo\bar\baz.java)
-	 *             => bar/baz.java
-	 * The file can be either a file or a directory.
-	 * If the file is already relative or it cannot be made relative
-	 * to the directory, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToRelativeFile(final File file) {
-		return convertToRelativeFile(file, currentWorkingDirectory());
-	}
-
-	/**
-	 * Return an array of files representing the path to the specified
-	 * file. For example:
-	 *     C:/foo/bar/baz.txt =>
-	 *     { C:/, C:/foo, C:/foo/bar, C:/foo/bar/baz.txt }
-	 */
-	private static File[] pathFiles(File file) {
-		List<File> path = new ArrayList<File>();
-		for (File f = file; f != null; f = f.getParentFile()) {
-			path.add(f);
-		}
-		Collections.reverse(path);
-		return path.toArray(new File[path.size()]);
-	}
-
-	/**
-	 * Return a file with the specified (non-zero) number of relative
-	 * file names, e.g. xxx(3) => ../../..
-	 */
-	private static File relativeParentFile(int len) {
-		if (len <= 0) {
-			throw new IllegalArgumentException("length must be greater than zero: " + len); //$NON-NLS-1$
-		}
-		File result = new File(".."); //$NON-NLS-1$
-		for (int i = len - 1; i-- > 0; ) {
-			result = new File(result, ".."); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, absolute to the specified directory.
-	 *     Linux/Unix/Mac:
-	 *         convertToAbsoluteFile(bar/baz.java, /foo)
-	 *             => /foo/bar/baz.java
-	 *     Windows:
-	 *         convertToAbsoluteFile(bar/baz.java, C:\foo)
-	 *             => C:\foo\bar\baz.java
-	 * The file can be either a file or a directory; the directory
-	 * *should* be a directory.
-	 * If the file is already absolute, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToAbsoluteFile(final File file, final File dir) {
-		// check whether the file is already absolute
-		if (file.isAbsolute()) {
-			return file;		// return unchanged
-		}
-		return canonicalFile(new File(dir, file.getPath()));
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, absolute to the current working directory.
-	 *     Linux/Unix/Mac (CWD = /foo):
-	 *         convertToAbsoluteFile(bar/baz.java)
-	 *             => /foo/bar/baz.java
-	 *     Windows (CWD = C:\foo):
-	 *         convertToAbsoluteFile(bar/baz.java)
-	 *             => C:\foo\bar\baz.java
-	 * The file can be either a file or a directory.
-	 * If the file is already absolute, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToAbsoluteFile(final File file) {
-		return convertToAbsoluteFile(file, currentWorkingDirectory());
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private FileTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java
deleted file mode 100644
index 84d06c6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Provide a container for passing an object that can be changed by the
- * recipient. If the value is set at any time after construction of the
- * reference, the reference is marked "set". This allows the client to
- * detect whether the server/recipient ever set the value, even if it remains
- * unchanged. This is particularly useful when the value can be set to
- * <code>null</code>.
- * <p>
- * The reference can be set multiple times, but it can
- * never be "unset" once it is "set".
- */
-public class FlaggedObjectReference<V>
-	extends SimpleObjectReference<V>
-{
-	private volatile boolean set = false;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create an object reference with the specified initial value.
-	 */
-	public FlaggedObjectReference(V value) {
-		super(value);
-	}
-
-	/**
-	 * Create an object reference with an initial value of
-	 * <code>null</code>.
-	 */
-	public FlaggedObjectReference() {
-		super();
-	}
-
-
-	// ********** set **********
-
-	public boolean isSet() {
-		return this.set;
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public V setValue(V value) {
-		this.set = true;
-		return super.setValue(value);
-	}
-
-	@Override
-	public String toString() {
-		String s = super.toString();
-		return (this.set) ? '*' + s : s;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java
deleted file mode 100644
index d394bbb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java
+++ /dev/null
@@ -1,877 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * This class implements the {@link Bag} interface, backed by a
- * hash table. It makes no guarantees as to the iteration order of
- * the bag's elements; in particular, it does not guarantee the order
- * will remain constant over time. This class permits the <code>null</code>
- * element.
- * <p>
- * This class offers constant time performance for the basic operations
- * (<code>add</code>, <code>remove</code>, <code>contains</code> and
- * <code>size</code>), assuming the hash function disperses the elements
- * properly among the buckets. Iterating over this bag requires time
- * proportional to the sum of the bag's size (the number of elements) plus the
- * "capacity" of the backing hash table (the number of buckets). Thus, it is
- * important not to set the initial capacity too high (or the load factor too
- * low) if iteration performance is important.
- * <p>
- * <strong>Note that this implementation is not synchronized.</strong> If multiple
- * threads access a bag concurrently, and at least one of the threads modifies
- * the bag, it <em>must</em> be synchronized externally. This is typically
- * accomplished by synchronizing on some object that naturally encapsulates
- * the bag. If no such object exists, the bag should be "wrapped" using the
- * <code>Collections.synchronizedCollection</code> method. This is
- * best done at creation time, to prevent accidental unsynchronized access
- * to the bag:
- * <pre>
- * Collection c = Collections.synchronizedCollection(new HashBag(...));
- * </pre>
- * <p>
- * The iterators returned by this class's <code>iterator</code> method are
- * <em>fail-fast</em>: if the bag is modified at any time after the iterator is
- * created, in any way except through the iterator's own <code>remove</code>
- * method, the iterator throws a {@link ConcurrentModificationException}.
- * Thus, in the face of concurrent modification, the iterator fails quickly
- * and cleanly, rather than risking arbitrary, non-deterministic behavior at
- * an undetermined time in the future.
- * <p>
- * Note that the fail-fast behavior of an iterator cannot be guaranteed
- * as it is, generally speaking, impossible to make any hard guarantees in the
- * presence of unsynchronized concurrent modification. Fail-fast iterators
- * throw <code>ConcurrentModificationException</code> on a best-effort basis.
- * Therefore, it would be wrong to write a program that depended on this
- * exception for its correctness: <em>the fail-fast behavior of iterators
- * should be used only to detect bugs.</em>
- * 
- * @param <E> the type of elements maintained by the bag
- * 
- * @see Collection
- * @see Bag
- * @see SynchronizedBag
- * @see	Collections#synchronizedCollection(Collection)
- * @see IdentityHashBag
- */
-public class HashBag<E>
-	extends AbstractCollection<E>
-	implements Bag<E>, Cloneable, Serializable
-{
-	/** The hash table. Resized as necessary. Length MUST Always be a power of two. */
-	transient Entry<E>[] table;
-
-	/** The total number of entries in the bag. */
-	transient int size = 0;
-
-	/** The number of UNIQUE entries in the bag. */
-	transient int uniqueCount = 0;
-
-	/**
-	 * The hash table is rehashed when its size exceeds this threshold. (The
-	 * value of this field is <code>(int) (capacity * loadFactor)</code>.)
-	 *
-	 * @serial
-	 */
-	private int threshold;
-
-	/**
-	 * The load factor for the hash table.
-	 *
-	 * @serial
-	 */
-	private final float loadFactor;
-
-	/**
-	 * The number of times this bag has been structurally modified.
-	 * Structural modifications are those that change the number of entries in
-	 * the bag or otherwise modify its internal structure (e.g. rehash).
-	 * This field is used to make iterators on this bag fail-fast.
-	 *
-	 * @see java.util.ConcurrentModificationException
-	 */
-	transient int modCount = 0;
-
-	/**
-	 * The default initial capacity - MUST be a power of two.
-	 */
-	private static final int DEFAULT_INITIAL_CAPACITY = 16;
-
-	/**
-	 * The maximum capacity, used if a higher value is implicitly specified
-	 * by either of the constructors with arguments.
-	 * MUST be a power of two <= (1 << 30).
-	 */
-	private static final int MAXIMUM_CAPACITY = 1 << 30;
-
-	/**
-	 * The load factor used when none specified in constructor.
-	 */
-	private static final float DEFAULT_LOAD_FACTOR = 0.75f;
-
-	/**
-	 * Construct a new, empty bag with the
-	 * default capacity, which is 16, and load factor, which is 0.75.
-	 */
-	public HashBag() {
-		this(DEFAULT_INITIAL_CAPACITY);
-	}
-
-	/**
-	 * Construct a new, empty bag with the specified initial capacity
-	 * and the default load factor, which is 0.75.
-	 *
-	 * @param initialCapacity the initial capacity
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero
-	 */
-	public HashBag(int initialCapacity) {
-		this(initialCapacity, DEFAULT_LOAD_FACTOR, false);  // false = do not validate parms
-	}
-
-	/**
-	 * Construct a new, empty bag with
-	 * the specified initial capacity and load factor.
-	 *
-	 * @param initialCapacity the initial capacity
-	 * @param loadFactor the load factor
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero or if the load factor is non-positive
-	 */
-	public HashBag(int initialCapacity, float loadFactor) {
-		this(initialCapacity, loadFactor, true);  // true = validate parms
-	}
-
-	private HashBag(int initialCapacity, float loadFactor, boolean validateParms) {
-		super();
-		int capacity = initialCapacity;
-		if (validateParms) {
-			if (capacity < 0) {
-				throw new IllegalArgumentException("Illegal Initial Capacity: " + capacity); //$NON-NLS-1$
-			}
-			if (capacity > MAXIMUM_CAPACITY) {
-				capacity = MAXIMUM_CAPACITY;
-			}
-			if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
-				throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$
-			}
-	
-			// find a power of 2 >= 'initialCapacity'
-			capacity = 1;
-			while (capacity < initialCapacity) {
-				capacity <<= 1;
-			}
-		}
-
-		this.loadFactor = loadFactor;
-		this.table = this.buildTable(capacity);
-		this.threshold = (int) (capacity * loadFactor);
-	}
-
-	/**
-	 * Construct a new bag containing the elements in the specified
-	 * collection. The bag's load factor will be the default, which is 0.75,
-	 * and its initial capacity will be sufficient to hold all the elements in
-	 * the specified collection.
-	 * 
-	 * @param c the collection whose elements are to be placed into this bag.
-	 */
-	public HashBag(Collection<? extends E> c) {
-		this(Math.max((int) (c.size() / DEFAULT_LOAD_FACTOR) + 1, DEFAULT_INITIAL_CAPACITY), DEFAULT_LOAD_FACTOR);
-		this.addAll_(c);
-	}
-
-	/**
-	 * Return a hash for the specified object.
-	 */
-	private int hash(Object o) {
-		return (o == null) ? 0 : this.tweakHash(o.hashCode());
-	}
-
-	/**
-	 * Tweak the specified hash, to defend against poor implementations
-	 * of {@link Object#hashCode()}.
-	 */
-	private int tweakHash(int h) {
-		h ^= (h >>> 20) ^ (h >>> 12);
-		return h ^ (h >>> 7) ^ (h >>> 4);
-	}
-
-	/**
-	 * Return the index for the specified hash.
-	 */
-	private int index(int hash) {
-		return this.index(hash, this.table.length);
-	}
-
-	/**
-	 * Return the index for the specified hash
-	 * within a table with the specified length.
-	 */
-	int index(int hash, int length) {
-		return hash & (length - 1);
-	}
-
-	/**
-	 * Internal {@link #addAll(Collection)} for construction and cloning.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void addAll_(Iterable<? extends E> c) {
-		for (E e : c) {
-			this.add_(e);
-		}
-	}
-
-	/**
-	 * Internal {@link #add(Object)} for construction and cloning.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void add_(E o) {
-		this.add_(o, 1);
-	}
-
-	/**
-	 * Internal {@link #add(Object, int)} for construction, cloning, and serialization.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void add_(E o, int cnt) {
-		int hash = this.hash(o);
-		int index = this.index(hash);
-		for (Entry<E> e = this.table[index]; e != null; e = e.next) {
-			Object eo;
-			if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) {
-				e.count += cnt;
-				this.size += cnt;
-				return;
-			}
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, this.table[index]);
-		this.table[index] = e;
-		this.size += cnt;
-		this.uniqueCount++;
-	}
-
-	/**
-	 * This implementation simply returns the maintained size.
-	 */
-	@Override
-	public int size() {
-		return this.size;
-	}
-
-	/**
-	 * This implementation simply compares the maintained size to zero.
-	 */
-	@Override
-	public boolean isEmpty() {
-		return this.size == 0;
-	}
-
-	/**
-	 * Search for the object's entry in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	private Entry<E> getEntry(Object o) {
-		int hash = this.hash(o);
-		for (Entry<E> e = this.table[this.index(hash)]; e != null; e = e.next) {
-			Object eo;
-			if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) {
-				return e;
-			}
-		}
-		return null;
-	}
-
-	@Override
-	public boolean contains(Object o) {
-		return this.getEntry(o) != null;
-	}
-
-	public int count(Object o) {
-		Entry<E> e = this.getEntry(o);
-		return (e == null) ? 0 : e.count;
-	}
-
-	/**
-	 * Rehash the contents of the bag into a new hash table
-	 * with a larger capacity. This method is called when the
-	 * number of different elements in the bag exceeds its
-	 * capacity and load factor.
-	 */
-	private void rehash() {
-		Entry<E>[] oldTable = this.table;
-		int oldCapacity = oldTable.length;
-
-		if (oldCapacity == MAXIMUM_CAPACITY) {
-			this.threshold = Integer.MAX_VALUE;
-			return;
-		}
-
-		int newCapacity = 2 * oldCapacity;
-		Entry<E>[] newTable = this.buildTable(newCapacity);
-
-		for (int i = oldCapacity; i-- > 0; ) {
-			for (Entry<E> old = oldTable[i]; old != null; ) {
-				Entry<E> e = old;
-				old = old.next;
-
-				int index = this.index(e.hash, newCapacity);
-				e.next = newTable[index];
-				newTable[index] = e;
-			}
-		}
-
-		this.table = newTable;
-		this.threshold = (int) (newCapacity * this.loadFactor);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Entry<E>[] buildTable(int capacity) {
-		return new Entry[capacity];
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean add(E o) {
-		return this.add(o, 1);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean add(E o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		this.modCount++;
-		int hash = this.hash(o);
-		int index = this.index(hash);
-
-		// if the object is already in the bag, simply bump its count
-		for (Entry<E> e = this.table[index]; e != null; e = e.next) {
-			Object eo;
-			if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) {
-				e.count += cnt;
-				this.size += cnt;
-				return true;
-			}
-		}
-
-		// rehash the table if we are going to exceed the threshold
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			index = this.index(hash);  // need to re-calculate the index
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, this.table[index]);
-		this.table[index] = e;
-		this.size += cnt;
-		this.uniqueCount++;
-		return true;
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings({ "rawtypes", "unchecked" } )
-	private Entry<E> buildEntry(int hash, Object o, int cnt, Entry next) {
-		return new Entry<E>(hash, (E) o, cnt, (Entry<E>) next);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean remove(Object o) {
-		return this.remove(o, 1);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean remove(Object o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		int hash = this.hash(o);
-		int index = this.index(hash);
-
-		for (Entry<E> e = this.table[index], prev = null; e != null; prev = e, e = e.next) {
-			Object eo;
-			if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) {
-				this.modCount++;
-				cnt = (cnt < e.count) ? cnt : e.count;
-				e.count -= cnt;
-				// if we are removing the last element(s), remove the entry from the table
-				if (e.count == 0) {
-					if (prev == null) {
-						this.table[index] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					this.uniqueCount--;
-				}
-				this.size -= cnt;
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * This implementation simply clears out all of the hash table buckets.
-	 */
-	@Override
-	public void clear() {
-		Entry<E>[] tab = this.table;
-		this.modCount++;
-		for (int i = tab.length; i-- > 0; ) {
-			tab[i] = null;
-		}
-		this.size = 0;
-		this.uniqueCount = 0;
-	}
-
-	/**
-	 * Returns a shallow copy of this bag: the elements
-	 * themselves are not cloned.
-	 *
-	 * @return a shallow copy of this bag.
-	 */
-	@Override
-	public HashBag<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			HashBag<E> clone = (HashBag<E>) super.clone();
-			clone.table = this.buildTable(this.table.length);
-			clone.size = 0;
-			clone.uniqueCount = 0;
-			clone.modCount = 0;
-			clone.addAll_(this);
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			throw new InternalError();
-		}
-	}
-
-
-	/**
-	 * Hash table collision list entry.
-	 */
-	private static class Entry<E> implements Bag.Entry<E> {
-		final int hash;
-		final E object;
-		int count;
-		Entry<E> next;
-
-		Entry(int hash, E object, int count, Entry<E> next) {
-			this.hash = hash;
-			this.object = object;
-			this.count = count;
-			this.next = next;
-		}
-
-		// ***** Bag.Entry implementation
-		public E getElement() {
-			return this.object;
-		}
-
-		public int getCount() {
-			return this.count;
-		}
-
-		public int setCount(int count) {
-			if (count <= 0) {
-				throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$
-			}
-			int old = this.count;
-			this.count = count;
-			return old;
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Bag.Entry<?>)) {
-				return false;
-			}
-			@SuppressWarnings("rawtypes")
-			Bag.Entry e = (Bag.Entry) o;
-			return (this.count == e.getCount()) &&
-					Tools.valuesAreEqual(this.object, e.getElement());
-		}
-
-		@Override
-		public int hashCode() {
-			E o = this.object;
-			return (o == null) ? 0 : (this.count * o.hashCode());
-		}
-
-		@Override
-		public String toString() {
-			return this.object + "=>" + this.count; //$NON-NLS-1$
-		}
-	}
-
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new HashIterator();
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<E> uniqueIterator() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new UniqueIterator();
-	}
-
-	public int uniqueCount() {
-		return this.uniqueCount;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<Bag.Entry<E>> entries() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new EntryIterator();
-	}
-
-
-	/**
-	 * Empty iterator that does just about nothing.
-	 */
-	@SuppressWarnings("rawtypes")
-	private static final Iterator EMPTY_ITERATOR = new EmptyIterator();
-
-	@SuppressWarnings("rawtypes")
-	private static class EmptyIterator implements Iterator {
-
-		EmptyIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return false;
-		}
-
-		public Object next() {
-			throw new NoSuchElementException();
-		}
-
-		public void remove() {
-			throw new IllegalStateException();
-		}
-	}
-
-
-	private class HashIterator implements Iterator<E> {
-		private int index = HashBag.this.table.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private int nextEntryCount = 0;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = HashBag.this.modCount;
-
-		HashIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = HashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public E next() {
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = HashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntryCount++;
-			if (this.nextEntryCount == e.count) {
-				this.nextEntry = e.next;
-				this.nextEntryCount = 0;
-			}
-			return e.object;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			int slot = HashBag.this.index(this.lastReturnedEntry.hash, HashBag.this.table.length);
-			for (Entry<E> e = HashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					HashBag.this.modCount++;
-					this.expectedModCount++;
-					e.count--;
-					if (e.count == 0) {
-						// if we are removing the last one, remove the entry from the table
-						if (prev == null) {
-							HashBag.this.table[slot] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						HashBag.this.uniqueCount--;
-					} else {
-						// slide back the count to account for the just-removed element
-						this.nextEntryCount--;
-					}
-					HashBag.this.size--;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class EntryIterator implements Iterator<Entry<E>> {
-		private int index = HashBag.this.table.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = HashBag.this.modCount;
-
-		EntryIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = HashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public Entry<E> next() {
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = HashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntry = e.next;
-			return e;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			int slot = HashBag.this.index(this.lastReturnedEntry.hash, HashBag.this.table.length);
-			for (Entry<E> e = HashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					HashBag.this.modCount++;
-					this.expectedModCount++;
-					// remove the entry from the table
-					if (prev == null) {
-						HashBag.this.table[slot] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					HashBag.this.uniqueCount--;
-					HashBag.this.size -= this.lastReturnedEntry.count;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class UniqueIterator implements Iterator<E> {
-		private EntryIterator entryIterator = new EntryIterator();
-		
-		UniqueIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return this.entryIterator.hasNext();
-		}
-
-		public E next() {
-			return this.entryIterator.next().object;
-		}
-
-		public void remove() {
-			this.entryIterator.remove();
-		}
-
-	}
-
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ( ! (o instanceof Bag<?>)) {
-			return false;
-		}
-		@SuppressWarnings("unchecked")
-		Bag<E> b = (Bag<E>) o;
-		if (b.size() != this.size()) {
-			return false;
-		}
-		if (b.uniqueCount() != this.uniqueCount()) {
-			return false;
-		}
-		for (Iterator<Bag.Entry<E>> stream = b.entries(); stream.hasNext(); ) {
-			Bag.Entry<E> entry = stream.next();
-			if (entry.getCount() != this.count(entry.getElement())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	@Override
-	public int hashCode() {
-		int h = 0;
-		for (E o : this) {
-			if (o != null) {
-				h += o.hashCode();
-			}
-		}
-		return h;
-	}
-
-	/**
-	 * Save the state of this bag to a stream (i.e. serialize it).
-	 *
-	 * @serialData Emit the capacity of the bag (int),
-	 *     followed by the number of unique elements in the bag (int),
-	 *     followed by all of the bag's elements (each an Object) and
-	 *     their counts (each an int), in no particular order.
-	 */
-	private void writeObject(java.io.ObjectOutputStream s)
-				throws java.io.IOException {
-		// write out the threshold, load factor, and any hidden stuff
-		s.defaultWriteObject();
-
-		// write out number of buckets
-		s.writeInt(this.table.length);
-
-		// write out number of unique elements
-		s.writeInt(this.uniqueCount);
-
-		// write out elements and counts (alternating)
-		if (this.uniqueCount > 0) {
-			for (Entry<E> entry : this.table) {
-				while (entry != null) {
-					s.writeObject(entry.object);
-					s.writeInt(entry.count);
-					entry = entry.next;
-				}
-			}
-		}
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Reconstitute the bag from a stream (i.e. deserialize it).
-	 */
-	private void readObject(java.io.ObjectInputStream s)
-				throws java.io.IOException, ClassNotFoundException {
-		// read in the threshold, loadfactor, and any hidden stuff
-		s.defaultReadObject();
-
-		// read in number of buckets and allocate the bucket array
-		this.table = this.buildTable(s.readInt());
-
-		// read in number of unique elements
-		int unique = s.readInt();
-
-		// read the elements and counts, and put the elements in the bag
-		for (int i = 0; i < unique; i++) {
-			@SuppressWarnings("unchecked")
-			E element = (E) s.readObject();
-			int elementCount = s.readInt();
-			this.add_(element, elementCount);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java
deleted file mode 100644
index 7c2fbc4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java
+++ /dev/null
@@ -1,924 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * This class implements the {@link Bag} interface with a
- * hash table, using object-identity in place of object-equality when
- * comparing elements. In other words, in an <code>IdentityHashBag</code>,
- * two objects <code>o1</code> and <code>o2</code> are considered
- * equal if and only if <code>(o1 == o2)</code>. (In normal {@link Bag}
- * implementations (like {@link HashBag}) two objects <code>o1</code>
- * and <code>o2</code> are considered equal if and only if
- * <code>(o1 == null ? o2 == null : o1.equals(o2))</code>.)
- * <p>
- * <strong>
- * This class is <em>not</em> a general-purpose {@link Bag}
- * implementation! While this class implements the {@link Bag} interface, it
- * intentionally violates {@link Bag}'s general contract, which mandates the
- * use of the <code>equals</code> method when comparing objects. This class is
- * designed for use only in the rare cases wherein object-identity
- * semantics are required.
- * </strong>
- * <p>
- * This class makes no guarantees as to the iteration order of
- * the bag's elements; in particular, it does not guarantee that the order
- * will remain constant over time. This class permits the <code>null</code>
- * element.
- * <p>
- * This class offers constant time performance for the basic operations
- * (<code>add</code>, <code>remove</code>, <code>contains</code> and
- * <code>size</code>), assuming the system identity hash function
- * ({@link System#identityHashCode(Object)}) disperses elements properly
- * among the buckets. Iterating over this bag requires time
- * proportional to the sum of the bag's size (the number of elements) plus the
- * "capacity" of the backing hash table (the number of buckets). Thus, it is
- * important not to set the initial capacity too high (or the load factor too
- * low) if iteration performance is important.
- * <p>
- * <strong>Note that this implementation is not synchronized.</strong> If multiple
- * threads access a bag concurrently, and at least one of the threads modifies
- * the bag, it <em>must</em> be synchronized externally. This is typically
- * accomplished by synchronizing on some object that naturally encapsulates
- * the bag. If no such object exists, the bag should be "wrapped" using the
- * <code>Collections.synchronizedCollection</code> method. This is
- * best done at creation time, to prevent accidental unsynchronized access
- * to the bag:
- * <pre>
- * Collection c = Collections.synchronizedCollection(new IdentityHashBag(...));
- * </pre>
- * <p>
- * The iterators returned by this class's <code>iterator</code> method are
- * <em>fail-fast</em>: if the bag is modified at any time after the iterator is
- * created, in any way except through the iterator's own <code>remove</code>
- * method, the iterator throws a {@link ConcurrentModificationException}.
- * Thus, in the face of concurrent modification, the iterator fails quickly
- * and cleanly, rather than risking arbitrary, non-deterministic behavior at
- * an undetermined time in the future.
- * <p>
- * Note that the fail-fast behavior of an iterator cannot be guaranteed
- * as it is, generally speaking, impossible to make any hard guarantees in the
- * presence of unsynchronized concurrent modification. Fail-fast iterators
- * throw <code>ConcurrentModificationException</code> on a best-effort basis.
- * Therefore, it would be wrong to write a program that depended on this
- * exception for its correctness: <em>the fail-fast behavior of iterators
- * should be used only to detect bugs.</em>
- * 
- * @param <E> the type of elements maintained by the bag
- * 
- * @see Collection
- * @see Bag
- * @see SynchronizedBag
- * @see	Collections#synchronizedCollection(Collection)
- * @see HashBag
- */
-public class IdentityHashBag<E>
-	extends AbstractCollection<E>
-	implements Bag<E>, Cloneable, Serializable
-{
-	/** The hash table. Resized as necessary. Length MUST Always be a power of two. */
-	transient Entry<E>[] table;
-
-	/** The total number of entries in the bag. */
-	transient int size = 0;
-
-	/** The number of UNIQUE entries in the bag. */
-	transient int uniqueCount = 0;
-
-	/**
-	 * The hash table is rehashed when its size exceeds this threshold. (The
-	 * value of this field is <code>(int) (capacity * loadFactor)</code>.)
-	 *
-	 * @serial
-	 */
-	private int threshold;
-
-	/**
-	 * The load factor for the hash table.
-	 *
-	 * @serial
-	 */
-	private final float loadFactor;
-
-	/**
-	 * The number of times this bag has been structurally modified.
-	 * Structural modifications are those that change the number of entries in
-	 * the bag or otherwise modify its internal structure (e.g. rehash).
-	 * This field is used to make iterators on this bag fail-fast.
-	 *
-	 * @see java.util.ConcurrentModificationException
-	 */
-	transient int modCount = 0;
-
-	/**
-	 * The default initial capacity - MUST be a power of two.
-	 */
-	private static final int DEFAULT_INITIAL_CAPACITY = 16;
-
-	/**
-	 * The maximum capacity, used if a higher value is implicitly specified
-	 * by either of the constructors with arguments.
-	 * MUST be a power of two <= (1 << 30).
-		 */
-	private static final int MAXIMUM_CAPACITY = 1 << 30;
-
-	/**
-	 * The load factor used when none specified in constructor.
-	 */
-	private static final float DEFAULT_LOAD_FACTOR = 0.75f;
-
-	/**
-	 * Construct a new, empty bag with the
-	 * default capacity, which is 16, and load factor, which is 0.75.
-	 */
-	public IdentityHashBag() {
-		this(DEFAULT_INITIAL_CAPACITY);
-	}
-
-	/**
-	 * Construct a new, empty bag with the specified initial capacity
-	 * and the default load factor, which is 0.75.
-	 *
-	 * @param initialCapacity the initial capacity
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero
-	 */
-	public IdentityHashBag(int initialCapacity) {
-		this(initialCapacity, DEFAULT_LOAD_FACTOR, false);  // false = do not validate parms
-	}
-
-	/**
-	 * Construct a new, empty bag with
-	 * the specified initial capacity and load factor.
-	 *
-	 * @param initialCapacity the initial capacity
-	 * @param loadFactor the load factor
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero or if the load factor is non-positive
-	 */
-	public IdentityHashBag(int initialCapacity, float loadFactor) {
-		this(initialCapacity, loadFactor, true);  // true = validate parms
-	}
-
-	private IdentityHashBag(int initialCapacity, float loadFactor, boolean validateParms) {
-		super();
-		int capacity = initialCapacity;
-		if (validateParms) {
-			if (capacity < 0) {
-				throw new IllegalArgumentException("Illegal Initial Capacity: " + capacity); //$NON-NLS-1$
-			}
-			if (capacity > MAXIMUM_CAPACITY) {
-				capacity = MAXIMUM_CAPACITY;
-			}
-			if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
-				throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$
-			}
-	
-			// find a power of 2 >= 'initialCapacity'
-			capacity = 1;
-			while (capacity < initialCapacity) {
-				capacity <<= 1;
-			}
-		}
-
-		this.loadFactor = loadFactor;
-		this.table = this.buildTable(capacity);
-		this.threshold = (int) (capacity * loadFactor);
-	}
-
-	/**
-	 * Construct a new bag containing the elements in the specified
-	 * collection. The bag's load factor will be the default, which is 0.75,
-	 * and its initial capacity will be sufficient to hold all the elements in
-	 * the specified collection.
-	 * 
-	 * @param c the collection whose elements are to be placed into this bag.
-	 */
-	public IdentityHashBag(Collection<? extends E> c) {
-		this(Math.max((int) (c.size() / DEFAULT_LOAD_FACTOR) + 1, DEFAULT_INITIAL_CAPACITY), DEFAULT_LOAD_FACTOR);
-		this.addAll_(c);
-	}
-
-	/**
-	 * Return a index for the specified object.
-	 */
-	private int index(Object o) {
-		return this.index(this.hash(o));
-	}
-
-	/**
-	 * Return a hash for the specified object.
-	 */
-	private int hash(Object o) {
-		return (o == null) ? 0 : this.tweakHash(System.identityHashCode(o));
-	}
-
-	/**
-	 * Tweak the specified hash.
-	 */
-	private int tweakHash(int h) {
-		return h;
-//		h ^= (h >>> 20) ^ (h >>> 12);
-//		return h ^ (h >>> 7) ^ (h >>> 4);
-	}
-
-	/**
-	 * Return the index for the specified hash.
-	 */
-	private int index(int hash) {
-		return this.index(hash, this.table.length);
-	}
-
-	/**
-	 * Return the index for the specified hash
-	 * within a table with the specified length.
-	 */
-	int index(int hash, int length) {
-		return hash & (length - 1);
-	}
-
-	/**
-	 * Internal {@link #addAll(Collection)} for construction and cloning.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void addAll_(Iterable<? extends E> c) {
-		for (E e : c) {
-			this.add_(e);
-		}
-	}
-
-	/**
-	 * Internal {@link #add(Object)} for construction and cloning.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void add_(E o) {
-		this.add_(o, 1);
-	}
-
-	/**
-	 * Internal {@link #add(Object, int)} for construction, cloning, and serialization.
-	 * (No check for re-hash; no change to mod count; no return value.)
-	 */
-	private void add_(E o, int cnt) {
-		int hash = this.hash(o);
-		int index = this.index(hash);
-		for (Entry<E> e = this.table[index]; e != null; e = e.next) {
-			if (e.object == o) {
-				e.count += cnt;
-				this.size += cnt;
-				return;
-			}
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, this.table[index]);
-		this.table[index] = e;
-		this.size += cnt;
-		this.uniqueCount++;
-	}
-
-	/**
-	 * This implementation simply returns the maintained size.
-	 */
-	@Override
-	public int size() {
-		return this.size;
-	}
-
-	/**
-	 * This implementation simply compares the maintained size to zero.
-	 */
-	@Override
-	public boolean isEmpty() {
-		return this.size == 0;
-	}
-
-	/**
-	 * Search for the object's entry in the hash table by calculating
-	 * the object's identity hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	private Entry<E> getEntry(Object o) {
-		for (Entry<E> e = this.table[this.index(o)]; e != null; e = e.next) {
-			if (e.object == o) {
-				return e;
-			}
-		}
-		return null;
-	}
-
-	@Override
-	public boolean contains(Object o) {
-		return this.getEntry(o) != null;
-	}
-
-	public int count(Object o) {
-		Entry<E> e = this.getEntry(o);
-		return (e == null) ? 0 : e.count;
-	}
-
-	/**
-	 * Rehash the contents of the bag into a new hash table
-	 * with a larger capacity. This method is called when the
-	 * number of different elements in the bag exceeds its
-	 * capacity and load factor.
-	 */
-	private void rehash() {
-		Entry<E>[] oldTable = this.table;
-		int oldCapacity = oldTable.length;
-
-		if (oldCapacity == MAXIMUM_CAPACITY) {
-			this.threshold = Integer.MAX_VALUE;
-			return;
-		}
-
-		int newCapacity = 2 * oldCapacity;
-		Entry<E>[] newTable = this.buildTable(newCapacity);
-
-		for (int i = oldCapacity; i-- > 0; ) {
-			for (Entry<E> old = oldTable[i]; old != null; ) {
-				Entry<E> e = old;
-				old = old.next;
-
-				int index = this.index(e.hash, newCapacity);
-				e.next = newTable[index];
-				newTable[index] = e;
-			}
-		}
-
-		this.table = newTable;
-		this.threshold = (int) (newCapacity * this.loadFactor);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private Entry<E>[] buildTable(int capacity) {
-		return new Entry[capacity];
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's identity hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean add(E o) {
-		return this.add(o, 1);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's identity hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean add(E o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		this.modCount++;
-		int hash = this.hash(o);
-		int index = this.index(hash);
-
-		// if the object is already in the bag, simply bump its count
-		for (Entry<E> e = this.table[index]; e != null; e = e.next) {
-			if (e.object == o) {
-				e.count += cnt;
-				this.size += cnt;
-				return true;
-			}
-		}
-
-		// rehash the table if we are going to exceed the threshold
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			index = this.index(hash);  // need to re-calculate the index
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, this.table[index]);
-		this.table[index] = e;
-		this.size += cnt;
-		this.uniqueCount++;
-		return true;
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	private Entry<E> buildEntry(int hash, Object o, int cnt, Entry next) {
-		return new Entry<E>(hash, (E) o, cnt, (Entry<E>) next);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's identity hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean remove(Object o) {
-		return this.remove(o, 1);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's identity hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean remove(Object o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		int index = this.index(o);
-
-		for (Entry<E> e = this.table[index], prev = null; e != null; prev = e, e = e.next) {
-			if (e.object == o) {
-				this.modCount++;
-				cnt = (cnt < e.count) ? cnt : e.count;
-				e.count -= cnt;
-				// if we are removing the last element(s), remove the entry from the table
-				if (e.count == 0) {
-					if (prev == null) {
-						this.table[index] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					this.uniqueCount--;
-				}
-				this.size -= cnt;
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * This implementation uses object-identity to determine whether the
-	 * specified collection contains a particular element.
-	 */
-	@Override
-	public boolean removeAll(Collection<?> c) {
-		return super.removeAll(new IdentityHashBag<Object>(c));
-	}
-
-	/**
-	 * This implementation uses object-identity to determine whether the
-	 * specified collection contains a particular element.
-	 */
-	@Override
-	public boolean retainAll(Collection<?> c) {
-		return super.retainAll(new IdentityHashBag<Object>(c));
-	}
-
-	/**
-	 * This implementation simply clears out all of the hash table buckets.
-	 */
-	@Override
-	public void clear() {
-		Entry<E>[] tab = this.table;
-		this.modCount++;
-		for (int i = tab.length; i-- > 0; ) {
-			tab[i] = null;
-		}
-		this.size = 0;
-		this.uniqueCount = 0;
-	}
-
-	/**
-	 * Returns a shallow copy of this bag: the elements
-	 * themselves are not cloned.
-	 *
-	 * @return a shallow copy of this bag.
-	 */
-	@Override
-	public IdentityHashBag<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			IdentityHashBag<E> clone = (IdentityHashBag<E>) super.clone();
-			clone.table = this.buildTable(this.table.length);
-			clone.size = 0;
-			clone.uniqueCount = 0;
-			clone.modCount = 0;
-			clone.addAll_(this);
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			throw new InternalError();
-		}
-	}
-
-
-	/**
-	 * Hash table collision list entry.
-	 */
-	private static class Entry<E> implements Bag.Entry<E> {
-		final int hash;  // cache the hash for re-hashes
-		final E object;
-		int count;
-		Entry<E> next;
-
-		Entry(int hash, E object, int count, Entry<E> next) {
-			this.hash = hash;
-			this.object = object;
-			this.count = count;
-			this.next = next;
-		}
-
-		// ***** Bag.Entry implementation
-		public E getElement() {
-			return this.object;
-		}
-
-		public int getCount() {
-			return this.count;
-		}
-
-		public int setCount(int count) {
-			if (count <= 0) {
-				throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$
-			}
-			int old = this.count;
-			this.count = count;
-			return old;
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Bag.Entry<?>)) {
-				return false;
-			}
-			@SuppressWarnings("rawtypes")
-			Bag.Entry e = (Bag.Entry) o;
-			return (this.object == e.getElement())
-					&& (this.count == e.getCount());
-		}
-
-		@Override
-		public int hashCode() {
-			E o = this.object;
-			return (o == null) ? 0 : (this.count * o.hashCode());
-		}
-
-		@Override
-		public String toString() {
-			return this.object + "=>" + this.count; //$NON-NLS-1$
-		}
-	}
-
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new HashIterator();
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<E> uniqueIterator() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new UniqueIterator();
-	}
-
-	public int uniqueCount() {
-		return this.uniqueCount;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<Bag.Entry<E>> entries() {
-		return (this.size == 0) ? EMPTY_ITERATOR : new EntryIterator();
-	}
-
-
-	/**
-	 * Empty iterator that does just about nothing.
-	 */
-	@SuppressWarnings("rawtypes")
-	private static final Iterator EMPTY_ITERATOR = new EmptyIterator();
-
-	@SuppressWarnings("rawtypes")
-	private static class EmptyIterator implements Iterator {
-
-		EmptyIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return false;
-		}
-
-		public Object next() {
-			throw new NoSuchElementException();
-		}
-
-		public void remove() {
-			throw new IllegalStateException();
-		}
-	}
-
-
-	private class HashIterator implements Iterator<E> {
-		private int index = IdentityHashBag.this.table.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private int nextEntryCount = 0;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = IdentityHashBag.this.modCount;
-
-		HashIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = IdentityHashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public E next() {
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = IdentityHashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntryCount++;
-			if (this.nextEntryCount == e.count) {
-				this.nextEntry = e.next;
-				this.nextEntryCount = 0;
-			}
-			return e.object;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			int slot = IdentityHashBag.this.index(this.lastReturnedEntry.hash, IdentityHashBag.this.table.length);
-			for (Entry<E> e = IdentityHashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					IdentityHashBag.this.modCount++;
-					this.expectedModCount++;
-					e.count--;
-					if (e.count == 0) {
-						// if we are removing the last one, remove the entry from the table
-						if (prev == null) {
-							IdentityHashBag.this.table[slot] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						IdentityHashBag.this.uniqueCount--;
-					} else {
-						// slide back the count to account for the just-removed element
-						this.nextEntryCount--;
-					}
-					IdentityHashBag.this.size--;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class EntryIterator implements Iterator<Entry<E>> {
-		private int index = IdentityHashBag.this.table.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = IdentityHashBag.this.modCount;
-
-		EntryIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = IdentityHashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public Entry<E> next() {
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = IdentityHashBag.this.table;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntry = e.next;
-			return e;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			int slot = IdentityHashBag.this.index(this.lastReturnedEntry.hash, IdentityHashBag.this.table.length);
-			for (Entry<E> e = IdentityHashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					IdentityHashBag.this.modCount++;
-					this.expectedModCount++;
-					// remove the entry from the table
-					if (prev == null) {
-						IdentityHashBag.this.table[slot] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					IdentityHashBag.this.uniqueCount--;
-					IdentityHashBag.this.size -= this.lastReturnedEntry.count;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class UniqueIterator implements Iterator<E> {
-		private EntryIterator entryIterator = new EntryIterator();
-		
-		UniqueIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return this.entryIterator.hasNext();
-		}
-
-		public E next() {
-			return this.entryIterator.next().object;
-		}
-
-		public void remove() {
-			this.entryIterator.remove();
-		}
-
-	}
-
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		} else if (o instanceof IdentityHashBag<?>) {
-			@SuppressWarnings("unchecked")
-			IdentityHashBag<E> b = (IdentityHashBag<E>) o;
-			if (b.size() != this.size()) {
-				return false;
-			}
-			if (b.uniqueCount() != this.uniqueCount()) {
-				return false;
-			}
-			for (Iterator<Bag.Entry<E>> stream = b.entries(); stream.hasNext(); ) {
-				Bag.Entry<E> entry = stream.next();
-				if (entry.getCount() != this.count(entry.getElement())) {
-					return false;
-				}
-			}
-			return true;
-		} else {
-			return this.equals_(o);
-		}
-//		} else if (o instanceof Bag<?>) {
-//			// hmmm...
-//			return new HashBag<Object>(this).equals(o);
-//		} else {
-//			return false;
-//		}
-	}
-
-	private boolean equals_(Object o) {
-		// hmmm...
-		return (o instanceof Bag<?>) && 
-				new HashBag<Object>(this).equals(o);
-	}
-
-	@Override
-	public int hashCode() {
-		int h = 0;
-		for (E o : this) {
-			h += System.identityHashCode(o);
-		}
-		return h;
-	}
-
-	/**
-	 * Save the state of this bag to a stream (i.e. serialize it).
-	 *
-	 * @serialData Emit the capacity of the bag (int),
-	 *     followed by the number of unique elements in the bag (int),
-	 *     followed by all of the bag's elements (each an Object) and
-	 *     their counts (each an int), in no particular order.
-	 */
-	private void writeObject(java.io.ObjectOutputStream s)
-				throws java.io.IOException {
-		// write out the threshold, load factor, and any hidden stuff
-		s.defaultWriteObject();
-
-		// write out number of buckets
-		s.writeInt(this.table.length);
-
-		// write out number of unique elements
-		s.writeInt(this.uniqueCount);
-
-		// write out elements and counts (alternating)
-		if (this.uniqueCount > 0) {
-			for (Entry<E> entry : this.table) {
-				while (entry != null) {
-					s.writeObject(entry.object);
-					s.writeInt(entry.count);
-					entry = entry.next;
-				}
-			}
-		}
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Reconstitute the bag from a stream (i.e. deserialize it).
-	 */
-	private void readObject(java.io.ObjectInputStream s)
-				throws java.io.IOException, ClassNotFoundException {
-		// read in the threshold, loadfactor, and any hidden stuff
-		s.defaultReadObject();
-
-		// read in number of buckets and allocate the bucket array
-		this.table = this.buildTable(s.readInt());
-
-		// read in number of unique elements
-		int unique = s.readInt();
-
-		// read the elements and counts, and put the elements in the bag
-		for (int i = 0; i < unique; i++) {
-			@SuppressWarnings("unchecked")
-			E element = (E) s.readObject();
-			int elementCount = s.readInt();
-			this.add_(element, elementCount);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java
deleted file mode 100644
index ad989b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Interface for a container for passing an integer that can be changed by
- * the recipient.
- */
-public interface IntReference
-	extends ReadOnlyIntReference
-{
-	/**
-	 * Set the <code>int</code> value.
-	 * Return the previous value.
-	 */
-	int setValue(int value);
-
-	/**
-	 * Set the <code>int</code> value to zero.
-	 * Return the previous value.
-	 */
-	int setZero();
-
-	/**
-	 * Increment and return the <code>int</code> value.
-	 */
-	int increment();
-
-	/**
-	 * Decrement and return the <code>int</code> value.
-	 */
-	int decrement();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java
deleted file mode 100644
index 1663a8e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.sql.Types;
-import java.util.HashMap;
-import org.eclipse.jpt.common.utility.JavaType;
-
-/**
- * Helper methods for dealing with the JDBC API.
- */
-public final class JDBCTools {
-
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeForClassNamed(String className) {
-		JavaToJDBCTypeMapping mapping = javaToJDBCTypeMapping(className);
-		return (mapping == null) ? DEFAULT_JDBC_TYPE : mapping.getJDBCType();
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeFor(Class<?> javaClass) {
-		return jdbcTypeForClassNamed(javaClass.getName());
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeFor(JavaType javaType) {
-		return jdbcTypeForClassNamed(javaType.getJavaClassName());
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeForJDBCTypeNamed(String jdbcTypeName) {
-		JDBCToJavaTypeMapping mapping = jdbcToJavaTypeMapping(jdbcTypeName);
-		return (mapping == null) ? DEFAULT_JAVA_TYPE : mapping.getJavaType();
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeFor(JDBCType jdbcType) {
-		return javaTypeForJDBCTypeNamed(jdbcType.name());
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeForJDBCTypeCode(int jdbcTypeCode) {
-		return javaTypeFor(JDBCType.type(jdbcTypeCode));
-	}
-
-
-	// ********** internal stuff **********
-
-
-	// ********** JDBC => Java **********
-
-	/**
-	 * JDBC => Java type mappings, keyed by JDBC type name (e.g. "VARCHAR")
-	 */
-	private static HashMap<String, JDBCToJavaTypeMapping> JDBC_TO_JAVA_TYPE_MAPPINGS;  // pseudo 'final' - lazy-initialized
-	private static final JavaType DEFAULT_JAVA_TYPE = new SimpleJavaType(java.lang.Object.class);  // TODO Object is the default?
-
-
-	private static JDBCToJavaTypeMapping jdbcToJavaTypeMapping(String jdbcTypeName) {
-		return jdbcToJavaTypeMappings().get(jdbcTypeName);
-	}
-
-	private static synchronized HashMap<String, JDBCToJavaTypeMapping> jdbcToJavaTypeMappings() {
-		if (JDBC_TO_JAVA_TYPE_MAPPINGS == null) {
-			JDBC_TO_JAVA_TYPE_MAPPINGS = buildJDBCToJavaTypeMappings();
-		}
-		return JDBC_TO_JAVA_TYPE_MAPPINGS;
-	}
-
-	private static HashMap<String, JDBCToJavaTypeMapping> buildJDBCToJavaTypeMappings() {
-		HashMap<String, JDBCToJavaTypeMapping> mappings = new HashMap<String, JDBCToJavaTypeMapping>();
-		addJDBCToJavaTypeMappingsTo(mappings);
-		return mappings;
-	}
-
-	/**
-	 * hard code the default mappings from the JDBC types to the
-	 * appropriate Java types
-	 * @see java.sql.Types
-	 * see "JDBC 3.0 Specification" Appendix B
-	 */
-	private static void addJDBCToJavaTypeMappingsTo(HashMap<String, JDBCToJavaTypeMapping> mappings) {
-		addJDBCToJavaTypeMappingTo(Types.ARRAY, java.sql.Array.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BIGINT, long.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BIT, boolean.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BLOB, java.sql.Blob.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BOOLEAN, boolean.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.CHAR, java.lang.String.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.CLOB, java.sql.Clob.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DATALINK, java.net.URL.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DATE, java.sql.Date.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DECIMAL, java.math.BigDecimal.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DISTINCT, java.lang.Object.class, mappings);  // ???
-		addJDBCToJavaTypeMappingTo(Types.DOUBLE, double.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.FLOAT, double.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.INTEGER, int.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.JAVA_OBJECT, java.lang.Object.class, mappings);  // ???
-		addJDBCToJavaTypeMappingTo(Types.LONGVARBINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.LONGVARCHAR, java.lang.String.class, mappings);
-		// not sure why this is defined in java.sql.Types
-//		addJDBCToJavaTypeMappingTo(Types.NULL, java.lang.Object.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.NUMERIC, java.math.BigDecimal.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.OTHER, java.lang.Object.class, mappings);	// ???
-		addJDBCToJavaTypeMappingTo(Types.REAL, float.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.REF, java.sql.Ref.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.SMALLINT, short.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.STRUCT, java.sql.Struct.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TIME, java.sql.Time.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TIMESTAMP, java.sql.Timestamp.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TINYINT, byte.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.VARBINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.VARCHAR, java.lang.String.class, mappings);
-	}
-
-	private static void addJDBCToJavaTypeMappingTo(int jdbcTypeCode, Class<?> javaClass, HashMap<String, JDBCToJavaTypeMapping> mappings) {
-		// check for duplicates
-		JDBCType jdbcType = JDBCType.type(jdbcTypeCode);
-		Object prev = mappings.put(jdbcType.name(), buildJDBCToJavaTypeMapping(jdbcType, javaClass));
-		if (prev != null) {
-			throw new IllegalArgumentException("duplicate JDBC type: " + jdbcType.name()); //$NON-NLS-1$
-		}
-	}
-
-	private static JDBCToJavaTypeMapping buildJDBCToJavaTypeMapping(JDBCType jdbcType, Class<?> javaClass) {
-		return new JDBCToJavaTypeMapping(jdbcType, new SimpleJavaType(javaClass));
-	}
-
-
-	// ********** Java => JDBC **********
-
-	/**
-	 * Java => JDBC type mappings, keyed by Java class name (e.g. "java.lang.Object")
-	 */
-	private static HashMap<String, JavaToJDBCTypeMapping> JAVA_TO_JDBC_TYPE_MAPPINGS;  // pseudo 'final' - lazy-initialized
-	private static final JDBCType DEFAULT_JDBC_TYPE = JDBCType.type(Types.VARCHAR);  // TODO VARCHAR is the default?
-
-
-	private static JavaToJDBCTypeMapping javaToJDBCTypeMapping(String className) {
-		return javaToJDBCTypeMappings().get(className);
-	}
-
-	private static synchronized HashMap<String, JavaToJDBCTypeMapping> javaToJDBCTypeMappings() {
-		if (JAVA_TO_JDBC_TYPE_MAPPINGS == null) {
-			JAVA_TO_JDBC_TYPE_MAPPINGS = buildJavaToJDBCTypeMappings();
-		}
-		return JAVA_TO_JDBC_TYPE_MAPPINGS;
-	}
-
-	private static HashMap<String, JavaToJDBCTypeMapping> buildJavaToJDBCTypeMappings() {
-		HashMap<String, JavaToJDBCTypeMapping> mappings = new HashMap<String, JavaToJDBCTypeMapping>();
-		addJavaToJDBCTypeMappingsTo(mappings);
-		return mappings;
-	}
-
-	/**
-	 * hard code the default mappings from the Java types to the
-	 * appropriate JDBC types
-	 * @see java.sql.Types
-	 * see "JDBC 3.0 Specification" Appendix B
-	 */
-	private static void addJavaToJDBCTypeMappingsTo(HashMap<String, JavaToJDBCTypeMapping> mappings) {
-		// primitives
-		addJavaToJDBCTypeMappingTo(boolean.class, Types.BIT, mappings);
-		addJavaToJDBCTypeMappingTo(byte.class, Types.TINYINT, mappings);
-		addJavaToJDBCTypeMappingTo(double.class, Types.DOUBLE, mappings);
-		addJavaToJDBCTypeMappingTo(float.class, Types.REAL, mappings);
-		addJavaToJDBCTypeMappingTo(int.class, Types.INTEGER, mappings);
-		addJavaToJDBCTypeMappingTo(long.class, Types.BIGINT, mappings);
-		addJavaToJDBCTypeMappingTo(short.class, Types.SMALLINT, mappings);
-
-		// reference classes
-		addJavaToJDBCTypeMappingTo(java.lang.Boolean.class, Types.BIT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Byte.class, Types.TINYINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Double.class, Types.DOUBLE, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Float.class, Types.REAL, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Integer.class, Types.INTEGER, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Long.class, Types.BIGINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Short.class, Types.SMALLINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.String.class, Types.VARCHAR, mappings);
-		addJavaToJDBCTypeMappingTo(java.math.BigDecimal.class, Types.NUMERIC, mappings);
-		addJavaToJDBCTypeMappingTo(java.net.URL.class, Types.DATALINK, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Array.class, Types.ARRAY, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Blob.class, Types.BLOB, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Clob.class, Types.CLOB, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Date.class, Types.DATE, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Ref.class, Types.REF, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Struct.class, Types.STRUCT, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Time.class, Types.TIME, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Timestamp.class, Types.TIMESTAMP, mappings);
-
-		// arrays
-		addJavaToJDBCTypeMappingTo(byte[].class, Types.VARBINARY, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Byte[].class, Types.VARBINARY, mappings);
-	}
-
-	private static void addJavaToJDBCTypeMappingTo(Class<?> javaClass, int jdbcTypeCode, HashMap<String, JavaToJDBCTypeMapping> mappings) {
-		// check for duplicates
-		Object prev = mappings.put(javaClass.getName(), buildJavaToJDBCTypeMapping(javaClass, jdbcTypeCode));
-		if (prev != null) {
-			throw new IllegalArgumentException("duplicate Java class: " + ((JavaToJDBCTypeMapping) prev).getJavaType().declaration()); //$NON-NLS-1$
-		}
-	}
-
-	private static JavaToJDBCTypeMapping buildJavaToJDBCTypeMapping(Class<?> javaClass, int jdbcTypeCode) {
-		return new JavaToJDBCTypeMapping(new SimpleJavaType(javaClass), JDBCType.type(jdbcTypeCode));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private JDBCTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * JDBC => Java
-	 */
-	static class JDBCToJavaTypeMapping {
-		private final JDBCType jdbcType;
-		private final JavaType javaType;
-
-		JDBCToJavaTypeMapping(JDBCType jdbcType, JavaType javaType) {
-			super();
-			this.jdbcType = jdbcType;
-			this.javaType = javaType;
-		}
-
-		public JDBCType getJDBCType() {
-			return this.jdbcType;
-		}
-
-		public JavaType getJavaType() {
-			return this.javaType;
-		}
-
-		public boolean maps(int jdbcTypeCode) {
-			return this.jdbcType.code() == jdbcTypeCode;
-		}
-
-		public boolean maps(String jdbcTypeName) {
-			return this.jdbcType.name().equals(jdbcTypeName);
-		}
-
-		public boolean maps(JDBCType type) {
-			return this.jdbcType == type;
-		}
-
-		@Override
-		public String toString() {
-			StringBuilder sb = new StringBuilder();
-			this.appendTo(sb);
-			return sb.toString();
-		}
-
-		public void appendTo(StringBuilder sb) {
-			this.jdbcType.appendTo(sb);
-			sb.append(" => "); //$NON-NLS-1$
-			this.javaType.appendDeclarationTo(sb);
-		}
-
-	}
-
-	/**
-	 * Java => JDBC
-	 */
-	static class JavaToJDBCTypeMapping {
-		private final JavaType javaType;
-		private final JDBCType jdbcType;
-
-		JavaToJDBCTypeMapping(JavaType javaType, JDBCType jdbcType) {
-			super();
-			this.javaType = javaType;
-			this.jdbcType = jdbcType;
-		}
-
-		public JavaType getJavaType() {
-			return this.javaType;
-		}
-
-		public JDBCType getJDBCType() {
-			return this.jdbcType;
-		}
-
-		public boolean maps(JavaType jt) {
-			return this.javaType.equals(jt);
-		}
-
-		public boolean maps(String elementTypeName, int arrayDepth) {
-			return this.javaType.equals(elementTypeName, arrayDepth);
-		}
-
-		public boolean maps(String javaClassName) {
-			return this.javaType.describes(javaClassName);
-		}
-
-		public boolean maps(Class<?> javaClass) {
-			return this.javaType.describes(javaClass);
-		}
-
-		@Override
-		public String toString() {
-			StringBuilder sb = new StringBuilder();
-			this.appendTo(sb);
-			return sb.toString();
-		}
-
-		public void appendTo(StringBuilder sb) {
-			this.javaType.appendDeclarationTo(sb);
-			sb.append(" => "); //$NON-NLS-1$
-			this.jdbcType.appendTo(sb);
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java
deleted file mode 100644
index 96fd283..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.sql.Types;
-
-/**
- * Associate the Java constant and the JDBC type name.
- * These are derived from java.sql.Types.
- * 
- * @see java.sql.Types
- */
-public final class JDBCType
-	implements Cloneable, Serializable
-{
-
-	/**
-	 * the constant name (e.g. VARCHAR)
-	 */
-	private final String name;
-
-	/**
-	 * the JDBC code used by JDBC drivers
-	 */
-	private final int code;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a JDBC type with the specified name and type code.
-	 * This is private because all the possible JDBC types are built and
-	 * stored in the static array TYPES.
-	 * @see #types()
-	 */
-	private JDBCType(String name, int code) {
-		super();
-		this.name = name;
-		this.code = code;
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the name of the type, as defined in java.sql.Types.
-	 */
-	public String name() {
-		return this.name;
-	}
-
-
-	/**
-	 * Return the type code, as defined in java.sql.Types.
-	 */
-	public int code() {
-		return this.code;
-	}
-
-
-	// ********** printing and displaying **********
-
-	public void appendTo(StringBuilder sb) {
-		sb.append(this.name);
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(this.getClass().getSimpleName());
-		sb.append('(');
-		this.appendTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	@Override
-	public JDBCType clone() {
-		try {
-			return (JDBCType) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-
-	// ********** static stuff **********
-
-	/**
-	 * all the JDBC type defined in java.sql.Types
-	 */
-	private static JDBCType[] TYPES;		// pseudo 'final' - lazy-initialized
-
-
-	public synchronized static JDBCType[] types() {
-		if (TYPES == null) {
-			TYPES = buildTypes();
-		}
-		return TYPES;
-	}
-
-	/**
-	 * Return the JDBC type for the specified type code (e.g. Types.VARCHAR).
-	 * @see java.sql.Types
-	 */
-	public static JDBCType type(int code) {
-		JDBCType[] types = types();
-		for (int i = types.length; i-- > 0; ) {
-			if (types[i].code() == code) {
-				return types[i];
-			}
-		}
-		throw new IllegalArgumentException("invalid JDBC type code: " + code); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the JDBC type for the specified type name (e.g. "VARCHAR").
-	 * @see java.sql.Types
-	 */
-	public static JDBCType type(String name) {
-		JDBCType[] types = types();
-		for (int i = types.length; i-- > 0; ) {
-			if (types[i].name().equals(name)) {
-				return types[i];
-			}
-		}
-		throw new IllegalArgumentException("invalid JDBC type name: " + name); //$NON-NLS-1$
-	}
-
-	/**
-	 * build up the JDBC types via reflection
-	 * @see java.sql.Types
-	 */
-	private static JDBCType[] buildTypes() {
-		Field[] fields = Types.class.getDeclaredFields();
-		int len = fields.length;
-		JDBCType[] types = new JDBCType[len];
-		for (int i = len; i-- > 0; ) {
-			String name = fields[i].getName();
-			int code;
-			try {
-				code = ((Integer) fields[i].get(null)).intValue();
-			} catch (IllegalAccessException ex) {
-				throw new RuntimeException(ex);	// shouldn't happen...
-			}
-			types[i] = new JDBCType(name, code);
-		}
-		return types;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java
deleted file mode 100644
index cf471f4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2010  Oracle. All rights reserved.
- *  This program and the accompanying materials are made available under the
- *  terms of the Eclipse Public License v1.0, which accompanies this distribution
- *  and is available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * This class maintains a {@link Set} of items, and a {@link Map} of keys to those items.
- * An item may have multiple keys, but an item may have no keys and remain in the set.  Once an 
- * item's last key is removed, the item is also removed.
- */
-public class KeyedSet<K, V> {
-	
-	private final Set<V> itemSet;
-	private final Set<V> unmodifiableItemSet;
-	private final Map<K,V> map;
-	
-	
-	public KeyedSet() {
-		this.itemSet = new HashSet<V>();
-		this.unmodifiableItemSet = Collections.unmodifiableSet(this.itemSet);
-		this.map = new HashMap<K,V>();
-	}
-	
-	/**
-	 * Return an unmodifiable representation of the set of items.
-	 */
-	public Set<V> getItemSet() {
-		return this.unmodifiableItemSet;
-	}
-	
-	/**
-	 * Return the item stored under the given key.
-	 */
-	public V getItem(K key) {
-		return this.map.get(key);
-	}
-	
-	/**
-	 * Return whether an item is stored under the given key.
-	 */
-	public boolean containsKey(K key) {
-		return this.map.containsKey(key);
-	}
-	
-	/**
-	 * Return whether the item is stored under *any* key.
-	 */
-	public boolean containsItem(V item) {
-		return this.itemSet.contains(item);
-	}
-	
-	/**
-	 * Add an item to be stored under the given key.  
-	 * The item must not already be stored.
-	 */
-	public void addItem(K key, V item) {
-		addItem(item);
-		addKey(key, item);
-	}
-	
-	private void addItem(V item) {
-		if (item == null) {
-			throw new IllegalArgumentException();
-		}
-		this.itemSet.add(item);
-	}
-	
-	/** 
-	 * Add an additional key to an item already stored under an alternate key.
-	 */
-	public void addKey(K key, V item) {
-		if (key == null || item == null) {
-			throw new IllegalArgumentException();
-		}
-		if (! this.itemSet.contains(item)) {
-			throw new IllegalArgumentException();
-		}
-		this.map.put(key, item);
-	}
-	
-	/**
-	 * Remove the given item and remove any key-to-item mapping it may have.
-	 */
-	public boolean removeItem(V item) {
-		if (this.itemSet.remove(item)) {
-			for (Map.Entry<K,V> entry : CollectionTools.collection(this.map.entrySet())) {
-				if (entry.getValue() == item) {
-					map.remove(entry.getKey());
-				}
-			}
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Remove the key-to-item mapping for the given key.
-	 * If it is the last key to the item, also remove the item.
-	 */
-	public boolean removeKey(K key) {
-		final V item = this.map.get(key);
-		if (item != null) {
-			this.map.remove(key);
-			boolean otherKey = false;
-			for (Map.Entry<K,V> entry : CollectionTools.collection(this.map.entrySet())) {
-				if (otherKey | entry.getValue() == item) {
-					otherKey = true;
-				}
-			}
-			if (! otherKey) {
-				removeItem(item);
-			}
-			return true;
-		}
-		return false;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java
deleted file mode 100644
index 84d01e3..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.common.utility.ReadOnlyObjectReference;
-
-/**
- * Provide a thread-safe, reasonably performing container for holding an
- * object that will be "lazy-initialized" upon its first reference. This is
- * also useful for preventing direct references (accidental or otherwise) to
- * lazy-initialized state.
- * <p>
- * There are some penalties:<ul>
- * <li>The reference's use of generics will require casting (and the requisite
- *     VM testing) with every access
- * <li>If the value calculated during lazy initialization is <code>null</code>,
- *     access will be <code>synchronized</code> <em>every</em> time.
- * </ul>
- * @see SimpleObjectReference
- * @see SynchronizedObject
- */
-public abstract class LazyReadOnlyObjectReference<V>
-	implements ReadOnlyObjectReference<V>, Cloneable, Serializable
-{
-	/** Backing value. */
-	private volatile V value = null;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a lazy object reference.
-	 */
-	public LazyReadOnlyObjectReference() {
-		super();
-	}
-
-
-	// ********** value **********
-
-	/**
-	 * In JDK 5 and later, this "double-checked locking" idiom works as long
-	 * as the instance variable is marked <code>volatile</code>.
-	 */
-	public V getValue() {
-		V result = this.value;
-		if (result == null) {
-			synchronized (this) {
-				result = this.value;
-				if (result == null) {
-					this.value = result = this.buildValue();
-				}
-			}
-		}
-		return result;
-	}
-
-	protected abstract V buildValue();
-
-	public boolean valueEquals(Object object) {
-		return Tools.valuesAreEqual(this.getValue(), object);
-	}
-
-	public boolean valueNotEqual(Object object) {
-		return Tools.valuesAreDifferent(this.getValue(), object);
-	}
-
-	public boolean isNull() {
-		return this.getValue() == null;
-	}
-
-	public boolean isNotNull() {
-		return this.getValue() != null;
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public LazyReadOnlyObjectReference<V> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			LazyReadOnlyObjectReference<V> clone = (LazyReadOnlyObjectReference<V>) super.clone();
-			return clone;
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	/**
-	 * This method will <em>not</em> trigger the "lazy-initialization".
-	 */
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.value) + ']';
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java
deleted file mode 100644
index 632b3fd..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-
-/**
- * Maintain a thread-safe list of listeners that does not allow adding
- * duplicate listeners or removing non-listeners.
- */
-public class ListenerList<L extends EventListener>
-	implements Serializable
-{
-	/**
-	 * We can mark this volatile and not synchronize the read methods because
-	 * we never change the <em>contents</em> of the array.
-	 */
-	private transient volatile L[] listeners;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a listener list for listeners of the specified type.
-	 */
-	public ListenerList(Class<L> listenerClass) {
-		super();
-		this.listeners = this.buildListenerArray(listenerClass, 0);
-	}
-
-	/**
-	 * Construct a listener list for listeners of the specified type.
-	 * Add the specified listener to the list.
-	 */
-	public ListenerList(Class<L> listenerClass, L listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listeners = this.buildListenerArray(listenerClass, 1);
-		this.listeners[0] = listener;
-	}
-
-	@SuppressWarnings("unchecked")
-	private L[] buildListenerArray(Class<L> listenerClass, int length) {
-		return (L[]) Array.newInstance(listenerClass, length);
-	}
-
-	/**
-	 * Return the listeners.
-	 */
-	public Iterable<L> getListeners() {
-		return new ArrayIterable<L>(this.listeners);
-	}
-
-	/**
-	 * Return the number of listeners.
-	 */
-	public int size() {
-		return this.listeners.length;
-	}
-
-	/**
-	 * Return whether the listener list has no listeners.
-	 */
-	public boolean isEmpty() {
-		return this.listeners.length == 0;
-	}
-
-	/**
-	 * Add the specified listener to the listener list.
-	 * Duplicate listeners are not allowed.
-	 */
-	public synchronized void add(L listener) {
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		if (ArrayTools.contains(this.listeners, listener)) {
-			throw new IllegalArgumentException("duplicate listener: " + listener); //$NON-NLS-1$
-		}
-		this.listeners = ArrayTools.add(this.listeners, listener);
-	}
-
-	/**
-	 * Remove the specified listener from the listener list.
-	 * Removing a listener that is not on the list is not allowed.
-	 */
-	public synchronized void remove(L listener) {
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		int index = ArrayTools.indexOf(this.listeners, listener);
-		if (index == -1) {
-			throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$
-		}
-		this.listeners = ArrayTools.removeElementAtIndex(this.listeners, index);
-	}
-
-	/**
-	 * Clear the listener list.
-	 */
-	public synchronized void clear() {
-		this.listeners = ArrayTools.clear(this.listeners);
-	}
-
-	/**
-	 * Return the type of listeners held by the listener list.
-	 */
-	@SuppressWarnings("unchecked")
-	public Class<L> getListenerType() {
-		return (Class<L>) this.listeners.getClass().getComponentType();
-	}
-
-	@Override
-	public String toString() {
-		return Arrays.toString(this.listeners);
-	}
-
-
-	// ********** serialization **********
-
-	/**
-	 * Silently drop any non-serializable listeners.
-	 */
-	private synchronized void writeObject(ObjectOutputStream s) throws IOException {
-		// write out any hidden stuff
-		s.defaultWriteObject();
-
-		@SuppressWarnings("unchecked")
-		Class<L> listenerClass = (Class<L>) this.listeners.getClass().getComponentType();
-		s.writeObject(listenerClass);
-
-		// only write out serializable listeners
-		for (L listener : this.listeners) {
-			if (listener instanceof Serializable) {
-				s.writeObject(listener);
-			}
-		}
-
-		s.writeObject(null);
-    }
-
-	@SuppressWarnings("unchecked")
-	private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException {
-		// read in any hidden stuff
-		s.defaultReadObject();
-
-		Class<L> listenerClass = (Class<L>) s.readObject();
-		this.listeners = this.buildListenerArray(listenerClass, 0);
-		Object o;
-		while ((o = s.readObject()) != null) {
-			this.listeners = ArrayTools.add(this.listeners, (L) o);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java
deleted file mode 100644
index dd7d65f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.beans.Introspector;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.SortedSet;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-
-/**
- * Various helper methods for generating names.
- */
-public final class NameTools {
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are case-sensitive
-	 * (i.e. "Root" and "root" are both allowed).
-	 */
-	public static String uniqueNameFor(String rootName, Iterator<String> existingNames) {
-		return uniqueNameFor(rootName, CollectionTools.set(existingNames));
-	}
-	
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are case-sensitive
-	 * (i.e. "Root" and "root" are both allowed).
-	 */
-	public static String uniqueNameFor(String rootName, Collection<String> existingNames) {
-		return uniqueNameFor(rootName, existingNames, rootName);
-	}
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are NOT case-sensitive
-	 * (i.e. "Root" and "root" are NOT both allowed).
-	 */
-	public static String uniqueNameForIgnoreCase(String rootName, Iterator<String> existingNames) {
-		return uniqueNameForIgnoreCase(rootName, CollectionTools.set(existingNames));
-	}
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are NOT case-sensitive
-	 * (i.e. "Root" and "root" are NOT both allowed).
-	 */
-	public static String uniqueNameForIgnoreCase(String rootName, Collection<String> existingNames) {
-		return uniqueNameFor(rootName, convertToLowerCase(existingNames), rootName.toLowerCase());
-	}
-
-	/**
-	 * use the suffixed "template" name to perform the comparisons, but RETURN
-	 * the suffixed "root" name; this allows case-insensitive comparisons
-	 * (i.e. the "template" name has been morphed to the same case as
-	 * the "existing" names, while the "root" name has not, but the "root" name
-	 * is what the client wants morphed to be unique)
-	 */
-	private static String uniqueNameFor(String rootName, Collection<String> existingNames, String templateName) {
-		if ( ! existingNames.contains(templateName)) {
-			return rootName;
-		}
-		String uniqueName = templateName;
-		for (int suffix = 2; true; suffix++) {
-			if ( ! existingNames.contains(uniqueName + suffix)) {
-				return rootName.concat(String.valueOf(suffix));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified collection of strings to a collection of the same
-	 * strings converted to lower case.
-	 */
-	private static HashSet<String> convertToLowerCase(Collection<String> strings) {
-		HashSet<String> result = new HashSet<String>(strings.size());
-		for (String string : strings) {
-			result.add(string.toLowerCase());
-		}
-		return result;
-	}
-
-	/**
-	 * Build a fully-qualified name for the specified database object.
-	 * Variations:
-	 *     catalog.schema.name
-	 *     catalog..name
-	 *     schema.name
-	 *     name
-	 */
-	public static String buildQualifiedDatabaseObjectName(String catalog, String schema, String name) {
-		if (name == null) {
-			return null;
-		}
-		if ((catalog == null) && (schema == null)) {
-			return name;
-		}
-
-		StringBuilder sb = new StringBuilder(100);
-		if (catalog != null) {
-			sb.append(catalog);
-			sb.append('.');
-		}
-		if (schema != null) {
-			sb.append(schema);
-		}
-		sb.append('.');
-		sb.append(name);
-		return sb.toString();
-	}
-
-	/**
-	 * The set of reserved words in the Java programming language.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	@SuppressWarnings("nls")
-	public static final String[] JAVA_RESERVED_WORDS = new String[] {
-				"abstract",
-				"assert",  // jdk 1.4
-				"boolean",
-				"break",
-				"byte",
-				"case",
-				"catch",
-				"char",
-				"class",
-				"const",  // unused
-				"continue",
-				"default",
-				"do",
-				"double",
-				"else",
-				"enum",  // jdk 1.5
-				"extends",
-				"false",
-				"final",
-				"finally",
-				"float",
-				"for",
-				"goto",  // unused
-				"if",
-				"implements",
-				"import",
-				"instanceof",
-				"int",
-				"interface",
-				"long",
-				"native",
-				"new",
-				"null",
-				"package",
-				"private",
-				"protected",
-				"public",
-				"return",
-				"short",
-				"static",
-				"strictfp",  // jdk 1.2
-				"super",
-				"switch",
-				"synchronized",
-				"this",
-				"throw",
-				"throws",
-				"transient",
-				"true",
-				"try",
-				"void",
-				"volatile",
-				"while"
-			};
-
-	/**
-	 * The set of reserved words in the Java programming language.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	public static final SortedSet<String> JAVA_RESERVED_WORDS_SET = 
-		Collections.unmodifiableSortedSet(CollectionTools.sortedSet(JAVA_RESERVED_WORDS));
-
-	/**
-	 * Return the set of Java programming language reserved words.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	public static Iterator<String> javaReservedWords() {
-		return new ArrayIterator<String>(JAVA_RESERVED_WORDS);
-	}
-
-	/**
-	 * Return whether the specified string consists of Java identifier
-	 * characters (but may be a reserved word).
-	 */
-	public static boolean stringConsistsOfJavaIdentifierCharacters(String string) {
-		if (string.length() == 0) {
-			return false;
-		}
-		return stringConsistsOfJavaIdentifierCharacters_(string.toCharArray());
-	}
-
-	/**
-	 * Return whether the specified string consists of Java identifier
-	 * characters (but may be a reserved word).
-	 */
-	public static boolean stringConsistsOfJavaIdentifierCharacters(char[] string) {
-		if (string.length == 0) {
-			return false;
-		}
-		return stringConsistsOfJavaIdentifierCharacters_(string);
-	}
-
-	/**
-	 * The specified string must not be empty.
-	 */
-	private static boolean stringConsistsOfJavaIdentifierCharacters_(char[] string) {
-		if ( ! Character.isJavaIdentifierStart(string[0])) {
-			return false;
-		}
-		for (int i = string.length; i-- > 1; ) {  // NB: end with 1
-			if ( ! Character.isJavaIdentifierPart(string[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string is a valid Java identifier.
-	 */
-	public static boolean stringIsLegalJavaIdentifier(String string) {
-		return stringConsistsOfJavaIdentifierCharacters(string)
-				&& ! JAVA_RESERVED_WORDS_SET.contains(string);
-	}
-
-	/**
-	 * Return whether the specified string is a valid Java identifier.
-	 */
-	public static boolean stringIsLegalJavaIdentifier(char[] string) {
-		return stringConsistsOfJavaIdentifierCharacters(string)
-				&& ! JAVA_RESERVED_WORDS_SET.contains(new String(string));
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting an underscore '_' for any invalid characters
-	 * in the string and appending an underscore '_' to the string if
-	 * it is a Java reserved word.
-	 */
-	public static String convertToJavaIdentifier(String string) {
-		return convertToJavaIdentifier(string, '_');
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting the specified character for any invalid characters
-	 * in the string and, if necessary, appending the specified character
-	 * to the string until it is not a Java reserved word.
-	 */
-	public static String convertToJavaIdentifier(String string, char c) {
-		if (string.length() == 0) {
-			return string;
-		}
-		if (JAVA_RESERVED_WORDS_SET.contains(string)) {
-			// a reserved word is a valid identifier, we just need to tweak it a bit
-			checkCharIsJavaIdentifierPart(c);
-			return convertToJavaIdentifier(string + c, c);
-		}
-		char[] array = string.toCharArray();
-		return convertToJavaIdentifier_(array, c) ? new String(array) : string;
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting an underscore '_' for any invalid characters
-	 * in the string and appending an underscore '_' to the string if
-	 * it is a Java reserved word.
-	 */
-	public static char[] convertToJavaIdentifier(char[] string) {
-		return convertToJavaIdentifier(string, '_');
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting the specified character for any invalid characters
-	 * in the string and, if necessary, appending the specified character
-	 * to the string until it is not a Java reserved word.
-	 */
-	public static char[] convertToJavaIdentifier(char[] string, char c) {
-		if (string.length == 0) {
-			return string;
-		}
-		if (JAVA_RESERVED_WORDS_SET.contains(new String(string))) {
-			// a reserved word is a valid identifier, we just need to tweak it a bit
-			checkCharIsJavaIdentifierPart(c);
-			return convertToJavaIdentifier(ArrayTools.add(string, c), c);
-		}
-		convertToJavaIdentifier_(string, c);
-		return string;
-	}
-
-	/**
-	 * The specified string must not be empty.
-	 * Return whether the string was modified.
-	 */
-	private static boolean convertToJavaIdentifier_(char[] string, char c) {
-		boolean mod = false;
-		if ( ! Character.isJavaIdentifierStart(string[0])) {
-			checkCharIsJavaIdentifierStart(c);
-			string[0] = c;
-			mod = true;
-		}
-		checkCharIsJavaIdentifierPart(c);
-		for (int i = string.length; i-- > 1; ) {  // NB: end with 1
-			if ( ! Character.isJavaIdentifierPart(string[i])) {
-				string[i] = c;
-				mod = true;
-			}
-		}
-		return mod;
-	}
-
-	private static void checkCharIsJavaIdentifierStart(char c) {
-		if ( ! Character.isJavaIdentifierStart(c)) {
-			throw new IllegalArgumentException("invalid Java identifier start char: '" + c + '\'');  //$NON-NLS-1$
-		}
-	}
-
-	private static void checkCharIsJavaIdentifierPart(char c) {
-		if ( ! Character.isJavaIdentifierPart(c)) {
-			throw new IllegalArgumentException("invalid Java identifier part char: '" + c + '\'');  //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Convert the specified method name to a property name.
-	 */
-	public static String convertGetterSetterMethodNameToPropertyName(String methodName) {
-		int beginIndex = 0;
-		if (methodName.startsWith("get")) { //$NON-NLS-1$
-			beginIndex = 3;
-		} else if (methodName.startsWith("set")) { //$NON-NLS-1$
-			beginIndex = 3;
-		} else if (methodName.startsWith("is")) { //$NON-NLS-1$
-			beginIndex = 2;
-		} else {
-			return methodName;  // return method name unchanged?
-		}
-		return Introspector.decapitalize(methodName.substring(beginIndex));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private NameTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java
deleted file mode 100644
index 0c9749f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * A <code>NonNullBooleanTransformer</code> will transform a possibly-null
- * {@link Boolean} to a non-null {@link Boolean}:<ul>
- * <li>When the original {@link Boolean} is <em>not</em> <code>null</code>,
- * the transformer will return it unchanged.
- * <li>When the original {@link Boolean} is <code>null</code>,
- * the transformer will return its client-specified "null value"
- * ({@link Boolean#TRUE} or {@link Boolean#FALSE}).
- * </ul>
- */
-public final class NonNullBooleanTransformer
-	implements Transformer<Boolean, Boolean>
-{
-	// not null
-	private final Boolean nullValue;
-
-	/**
-	 * A {@link Transformer} that will return the original {@link Boolean} when
-	 * it is non-<code>null</code>; otherwise the {@link Transformer} will return
-	 * {@link Boolean#TRUE}.
-	 */
-	public static final Transformer<Boolean, Boolean> TRUE = new NonNullBooleanTransformer(Boolean.TRUE);
-
-	/**
-	 * A {@link Transformer} that will return the original {@link Boolean} when
-	 * it is non-<code>null</code>; otherwise the {@link Transformer} will return
-	 * {@link Boolean#FALSE}.
-	 */
-	public static final Transformer<Boolean, Boolean> FALSE = new NonNullBooleanTransformer(Boolean.FALSE);
-
-	/**
-	 * Return a transformer that will return the specified value if the original
-	 * value is <code>null</code>. Throw a {@link NullPointerException} if the
-	 * specified value is <code>null</code>.
-	 */
-	public Transformer<Boolean, Boolean> valueOf(Boolean b) {
-		return valueOf(b.booleanValue());
-	}
-
-	/**
-	 * Return a transformer that will return the {@link Boolean} corresponding
-	 * to the specified value if the original value is <code>null</code>.
-	 */
-	public Transformer<Boolean, Boolean> valueOf(boolean b) {
-		return b ? TRUE : FALSE;
-	}
-
-	/**
-	 * Ensure only 2 constant versions.
-	 */
-	private NonNullBooleanTransformer(Boolean nullValue) {
-		super();
-		if (nullValue == null) {
-			throw new NullPointerException();
-		}
-		this.nullValue = nullValue;
-	}
-
-	public Boolean transform(Boolean b) {
-		return (b != null) ? b : this.nullValue;
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.nullValue);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java
deleted file mode 100644
index c234ac7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * A <code>NotBooleanTransformer</code> will transform a
- * {@link Boolean} to its NOT value:<ul>
- * <li>If the original {@link Boolean} is {@link Boolean#TRUE},
- * the transformer will return {@link Boolean#FALSE}.
- * <li>If the original {@link Boolean} is {@link Boolean#FALSE},
- * the transformer will return {@link Boolean#TRUE}.
- * <li>If the original {@link Boolean} is <code>null</code>,
- * the transformer will return <code>null</code>.
- * </ul>
- */
-public class NotBooleanTransformer
-	implements BidiTransformer<Boolean, Boolean>
-{
-	public static final BidiTransformer<Boolean, Boolean> INSTANCE = new NotBooleanTransformer();
-
-	public static BidiTransformer<Boolean, Boolean> instance() {
-		return INSTANCE;
-	}
-
-	// ensure single instance
-	private NotBooleanTransformer() {
-		super();
-	}
-
-	public Boolean transform(Boolean b) {
-		return (b == null) ? null : BooleanTools.not(b);
-	}
-
-	public Boolean reverseTransform(Boolean b) {
-		return (b == null) ? null : BooleanTools.not(b);
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java
deleted file mode 100644
index c1e27e4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-import org.eclipse.jpt.common.utility.Filter;
-
-/**
- * This filter accepts only non-null objects.
- */
-public final class NotNullFilter<T>
-	implements Filter<T>, Serializable
-{
-	@SuppressWarnings("rawtypes")
-	public static final Filter INSTANCE = new NotNullFilter();
-
-	@SuppressWarnings("unchecked")
-	public static <R> Filter<R> instance() {
-		return INSTANCE;
-	}
-
-	// ensure single instance
-	private NotNullFilter() {
-		super();
-	}
-
-	// accept only non-null objects
-	public boolean accept(T o) {
-		return o != null;
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java
deleted file mode 100644
index 547a882..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator;
-
-/**
- * A "null" list is a bit different from an "empty" list: it allows clients to
- * add/remove elements to/from it but never changes. This is useful
- * for passing to methods that require a "collecting parameter" but the
- * client will ignore the resulting "collection".
- */
-public final class NullList<E>
-	implements List<E>, Serializable
-{
-
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final NullList INSTANCE = new NullList();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <E> List<E> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private NullList() {
-		super();
-	}
-
-	public boolean add(E o) {
-		return false;  // the list did not change
-	}
-
-	public void add(int index, E element) {
-		// ignore
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return false;  // the list did not change
-	}
-
-	public boolean addAll(int index, Collection<? extends E> c) {
-		return false;  // the list did not change
-	}
-
-	public void clear() {
-		// ignore
-	}
-
-	public boolean contains(Object o) {
-		return false;
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return c.isEmpty();
-	}
-
-	public E get(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public int indexOf(Object o) {
-		return -1;
-	}
-
-	public boolean isEmpty() {
-		return true;
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	public int lastIndexOf(Object o) {
-		return -1;
-	}
-
-	public ListIterator<E> listIterator() {
-		return EmptyListIterator.instance();
-	}
-
-	public ListIterator<E> listIterator(int index) {
-		return EmptyListIterator.instance();
-	}
-
-	public boolean remove(Object o) {
-		return false;  // the list did not change
-	}
-
-	public E remove(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return false;  // the list did not change
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return false;  // the list did not change
-	}
-
-	public E set(int index, E element) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public int size() {
-		return 0;
-	}
-
-	public List<E> subList(int fromIndex, int toIndex) {
-		return this;
-	}
-
-	private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-	public Object[] toArray() {
-		return EMPTY_OBJECT_ARRAY;
-	}
-
-	public <T> T[] toArray(T[] a) {
-		return a;
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java
deleted file mode 100644
index 9cc4bc5..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.NoSuchElementException;
-
-/**
- * Interface defining the classic queue behavior,
- * without the backdoors allowed by {@link java.util.Queue}.
- * 
- * @param <E> the type of elements contained by the queue
- */
-public interface Queue<E> {
-
-	/**
-	 * "Enqueue" the specified item to the tail of the queue.
-	 */
-	void enqueue(E o);
-
-	/**
-	 * "Dequeue" an item from the head of the queue.
-	 */
-	E dequeue();
-
-	/**
-	 * Return the item on the head of the queue
-	 * without removing it from the queue.
-	 */
-	E peek();
-
-	/**
-	 * Return whether the queue is empty.
-	 */
-	boolean isEmpty();
-
-
-	final class Empty<E> implements Queue<E>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Queue INSTANCE = new Empty();
-		@SuppressWarnings("unchecked")
-		public static <T> Queue<T> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Empty() {
-			super();
-		}
-		public void enqueue(E o) {
-			throw new UnsupportedOperationException();
-		}
-		public E dequeue() {
-			throw new NoSuchElementException();
-		}
-		public E peek() {
-			throw new NoSuchElementException();
-		}
-		public boolean isEmpty() {
-			return true;
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java
deleted file mode 100644
index bc66046..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * This simple container class simply puts a bit of semantics
- * around a pair of numbers.
- */
-public class Range
-	implements Cloneable, Serializable
-{
-	/** The starting index of the range. */
-	public final int start;
-
-	/** The ending index of the range. */
-	public final int end;
-
-	/**
-	 * The size can be negative if the ending index
-	 * is less than the starting index.
-	 */
-	public final int size;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct with the specified start and end,
-	 * both of which are immutable.
-	 */
-	public Range(int start, int end) {
-		super();
-		this.start = start;
-		this.end = end;
-		this.size = end - start + 1;
-	}
-
-	/**
-	 * Return whether the range includes the specified
-	 * index.
-	 */
-	public boolean includes(int index) {
-		return (this.start <= index) && (index <= this.end);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (this == o) {
-			return true;
-		}
-		if ( ! (o instanceof Range)) {
-			return false;
-		}
-		Range otherRange = (Range) o;
-		return (this.start == otherRange.start)
-			&& (this.end == otherRange.end);
-	}
-
-	@Override
-	public int hashCode() {
-		return this.start ^ this.end;
-	}
-
-	@Override
-	public Range clone() {
-		try {
-			return (Range) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + this.start + ", " + this.end + ']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java
deleted file mode 100644
index 0d2c56a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Interface for a container for holding a <code>boolean</code> that cannot be
- * changed by clients.
- */
-public interface ReadOnlyBooleanReference
-{
-	/**
-	 * Return the current <code>boolean</code> value.
-	 */
-	boolean getValue();
-
-	/**
-	 * Return whether the current <code>boolean</code> value is equal to the
-	 * specified value.
-	 */
-	boolean is(boolean value);
-
-	/**
-	 * Return whether the current <code>boolean</code> value is not equal to
-	 * the specified value.
-	 */
-	boolean isNot(boolean value);
-
-	/**
-	 * Return whether the current <code>boolean</code> value is
-	 * <code>true</code>.
-	 */
-	boolean isTrue();
-
-	/**
-	 * Return whether the current <code>boolean</code> value is
-	 * <code>false</code>.
-	 */
-	boolean isFalse();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java
deleted file mode 100644
index 50e5154..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Interface for a container for holding an <code>int</code> that cannot be
- * changed by clients.
- */
-public interface ReadOnlyIntReference
-	extends Comparable<ReadOnlyIntReference>
-{
-	/**
-	 * Return the current <code>int</code> value.
-	 */
-	int getValue();
-
-	/**
-	 * Return whether the current <code>int</code> value is equal to the
-	 * specified value.
-	 */
-	boolean equals(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is not equal to
-	 * the specified value.
-	 */
-	boolean notEqual(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is zero.
-	 */
-	boolean isZero();
-
-	/**
-	 * Return whether the current <code>int</code> value is not zero.
-	 */
-	boolean isNotZero();
-
-	/**
-	 * Return whether the current <code>int</code> value is greater than
-	 * the specified value.
-	 */
-	boolean isGreaterThan(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is greater than
-	 * or equal to the specified value.
-	 */
-	boolean isGreaterThanOrEqual(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is less than
-	 * the specified value.
-	 */
-	boolean isLessThan(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is less than
-	 * or equal to the specified value.
-	 */
-	boolean isLessThanOrEqual(int v);
-
-	/**
-	 * Return whether the current <code>int</code> value is positive.
-	 */
-	boolean isPositive();
-
-	/**
-	 * Return whether the current <code>int</code> value is not positive
-	 * (i.e. negative or zero).
-	 */
-	boolean isNotPositive();
-
-	/**
-	 * Return whether the current <code>int</code> value is negative.
-	 */
-	boolean isNegative();
-
-	/**
-	 * Return whether the current <code>int</code> value is not negative
-	 * (i.e. zero or positive).
-	 */
-	boolean isNotNegative();
-
-	/**
-	 * Return the absolute value of the current <code>int</code> value.
-	 */
-	int abs();
-
-	/**
-	 * Return the negative value of the current <code>int</code> value.
-	 */
-	int neg();
-
-	/**
-	 * Return the current <code>int</code> value plus the specified value.
-	 */
-	int add(int v);
-
-	/**
-	 * Return current <code>int</code> value minus the specified value.
-	 */
-	int subtract(int v);
-
-	/**
-	 * Return current <code>int</code> value multiplied by the specified value.
-	 */
-	int multiply(int v);
-
-	/**
-	 * Return current <code>int</code> value divided by the specified value.
-	 */
-	int divide(int v);
-
-	/**
-	 * Return the remainder of the current <code>int</code> value divided by
-	 * the specified value.
-	 */
-	int remainder(int v);
-
-	/**
-	 * Return the minimum of the current <code>int</code> value and
-	 * the specified value.
-	 */
-	int min(int v);
-
-	/**
-	 * Return the maximum of the current <code>int</code> value and
-	 * the specified value.
-	 */
-	int max(int v);
-
-	/**
-	 * Return the current <code>int</code> value raised to the power
-	 * of the specified value.
-	 */
-	double pow(int v);
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java
deleted file mode 100644
index 6fb33c7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java
+++ /dev/null
@@ -1,1544 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-
-/**
- * Convenience methods related to the <code>java.lang.reflect</code> package.
- * These methods provide shortcuts for manipulating objects via
- * reflection; particularly when dealing with fields and/or methods that
- * are not publicly accessible or are inherited.
- * <p>
- * In most cases, all exceptions are handled and wrapped in
- * {@link java.lang.RuntimeException}s; so these methods should
- * be used when there should be no problems using reflection (i.e.
- * the referenced members are presumably present etc.).
- * <p>
- * There are also a number of methods whose names
- * end with an underscore. These methods declare the expected checked
- * exceptions (e.g. {@link NoSuchMethodException}, {@link NoSuchFieldException}).
- * These methods can be used to probe
- * for methods, fields, etc. that should be present but might not be.
- */
-public final class ReflectionTools {
-
-	public static final Class<?>[] ZERO_PARAMETER_TYPES = new Class[0];
-	public static final Object[] ZERO_ARGUMENTS = new Object[0];
-	private static final String CR = StringTools.CR;
-
-	public static final Class<?> VOID_CLASS = void.class;
-	public static final Class<java.lang.Void> VOID_WRAPPER_CLASS = java.lang.Void.class;
-
-
-	// ********** fields **********
-
-	/**
-	 * Get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Object.getFieldValue(String fieldName)</code>
-	 */
-	public static Object getFieldValue(Object object, String fieldName) {
-		try {
-			return getFieldValue_(object, fieldName);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Object.getFieldValue(String fieldName)</code>
-	 */
-	public static Object getFieldValue_(Object object, String fieldName)
-		throws NoSuchFieldException, IllegalAccessException
-	{
-		return getField_(object, fieldName).get(object);
-	}
-
-	/**
-	 * Get a static field value, given the containing class and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Class.getStaticFieldValue(String fieldName)</code>
-	 */
-	public static Object getStaticFieldValue(Class<?> javaClass, String fieldName) {
-		try {
-			return getStaticFieldValue_(javaClass, fieldName);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Get a static field value, given the containing class and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Class.getStaticFieldValue(String fieldName)</code>
-	 */
-	public static Object getStaticFieldValue_(Class<?> javaClass, String fieldName)
-		throws NoSuchFieldException, IllegalAccessException
-	{
-		return getField_(javaClass, fieldName).get(null);
-	}
-
-	/**
-	 * Set a field value, given the containing object, field name, and new value.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Object.setFieldValue(String fieldName, Object value)</code>
-	 */
-	public static void setFieldValue(Object object, String fieldName, Object value) {
-		try {
-			setFieldValue_(object, fieldName, value);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Set a field value, given the containing object, field name, and new value.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Object.setFieldValue(String fieldName, Object value)</code>
-	 */
-	public static void setFieldValue_(Object object, String fieldName, Object value)
-		throws NoSuchFieldException, IllegalAccessException
-	{
-		getField_(object, fieldName).set(object, value);
-	}
-
-	/**
-	 * Set a static field value, given the containing class, field name, and new value.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Class.setStaticFieldValue(String fieldName, Object value)</code>
-	 */
-	public static void setStaticFieldValue(Class<?> javaClass, String fieldName, Object value) {
-		try {
-			setStaticFieldValue_(javaClass, fieldName, value);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Set a static field value, given the containing class, field name, and new value.
-	 * Useful for accessing private, package, or protected fields.
-	 * <p>
-	 * <code>Class.setStaticFieldValue(String fieldName, Object value)</code>
-	 */
-	public static void setStaticFieldValue_(Class<?> javaClass, String fieldName, Object value)
-		throws NoSuchFieldException, IllegalAccessException
-	{
-		getField_(javaClass, fieldName).set(null, value);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a field for the specified object and field name.
-	 * If the object's class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Make any private/package/protected field accessible.
-	 * <p>
-	 * <code>Object.getField(String fieldName)</code>
-	 */
-	public static Field getField(Object object, String fieldName) {
-		try {
-			return getField_(object, fieldName);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a field for the specified object and field name.
-	 * If the object's class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Make any private/package/protected field accessible.
-	 * <p>
-	 * <code>Object.getField(String fieldName)</code>
-	 */
-	public static Field getField_(Object object, String fieldName)
-		throws NoSuchFieldException
-	{
-		return getField_(object.getClass(), fieldName);
-	}
-
-	/**
-	 * Return a field for the specified class and field name.
-	 * If the class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Make any private/package/protected field accessible.
-	 */
-	public static Field getField(Class<?> javaClass, String fieldName) {
-		try {
-			return getField_(javaClass, fieldName);
-		} catch (NoSuchFieldException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex);
-		}
-	}
-
-	/**
-	 * Return a field for the specified class and field name.
-	 * If the class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Make any private/package/protected field accessible.
-	 */
-	public static Field getField_(Class<?> javaClass, String fieldName)
-		throws NoSuchFieldException
-	{
-		Field field = null;
-		try {
-			field = javaClass.getDeclaredField(fieldName);
-		} catch (NoSuchFieldException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			return getField_(superclass, fieldName);  // recurse
-		}
-		field.setAccessible(true);
-		return field;
-	}
-
-	/**
-	 * Return all the fields for the
-	 * specified class, including inherited fields.
-	 * Make any private/package/protected fields accessible.
-	 * <p>
-	 * <code>Class.getAllFields()</code>
-	 */
-	public static Iterable<Field> getAllFields(Class<?> javaClass) {
-		ArrayList<Field> fields = new ArrayList<Field>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			addDeclaredFieldsTo(tempClass, fields);
-		}
-		return fields;
-	}
-
-	/*
-	 * Add the declared fields for the specified class
-	 * to the specified list.
-	 */
-	private static void addDeclaredFieldsTo(Class<?> javaClass, ArrayList<Field> fields) {
-		for (Field field : getDeclaredFields(javaClass)) {
-			fields.add(field);
-		}
-	}
-
-	/**
-	 * Return the declared fields for the specified class.
-	 * Make any private/package/protected fields accessible.
-	 * <p>
-	 * <code>Class.getAccessibleDeclaredFields()</code>
-	 */
-	public static Iterable<Field> getDeclaredFields(Class<?> javaClass) {
-		Field[] fields = javaClass.getDeclaredFields();
-		for (Field field : fields) {
-			field.setAccessible(true);
-		}
-		return new ArrayIterable<Field>(fields);
-	}
-
-
-	// ********** methods **********
-
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method, given the receiver and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName)</code>
-	 */
-	public static Object executeMethod(Object receiver, String methodName) {
-		return executeMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a one-argument method, given the receiver,
-	 * method name, parameter type, and argument.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName, Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?> parameterType, Object argument) {
-		return executeMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and arguments.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName, Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] arguments) {
-		return executeMethod(getMethod(receiver, methodName, parameterTypes), receiver, arguments);
-	}
-
-	/**
-	 * Execute the specified method, given the receiver and arguments.
-	 * Return its result.
-	 * Useful for invoking cached methods.
-	 */
-	public static Object executeMethod(Method method, Object receiver, Object[] arguments) {
-		try {
-			return method.invoke(receiver, arguments);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + method, ex);
-		} catch (InvocationTargetException ex) {
-			throw new RuntimeException(method + CR + ex.getTargetException(), ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method,
-	 * given the receiver and method name.
-	 * Return its result.
-	 * Throw an exception if the method is not defined.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName)</code>
-	 */
-	public static Object executeMethod_(Object receiver, String methodName)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return executeMethod_(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a method, given the receiver,
-	 * method name, parameter type, and argument.
-	 * Return its result.
-	 * Throw an exception if the method is not defined.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName, Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object executeMethod_(Object receiver, String methodName, Class<?> parameterType, Object argument)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return executeMethod_(receiver, methodName, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and arguments.
-	 * Return its result.
-	 * Throw an exception if the method is not defined.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Object.execute(String methodName, Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object executeMethod_(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] arguments)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return getMethod_(receiver, methodName, parameterTypes).invoke(receiver, arguments);
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName)</code>
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName) {
-		return executeStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a static method, given the class,
-	 * method name, parameter type, and argument.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName, Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterType, Object argument) {
-		return executeStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Execute a static method, given the class,
-	 * method name, parameter types, and arguments.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] arguments) {
-		try {
-			return executeStaticMethod_(javaClass, methodName, parameterTypes, arguments);
-		} catch (NoSuchMethodException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex);
-		} catch (InvocationTargetException ex) {
-			throw new RuntimeException(buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes) + CR + ex.getTargetException(), ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName)</code>
-	 */
-	public static Object executeStaticMethod_(Class<?> javaClass, String methodName)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return executeStaticMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Execute a static method, given the class,
-	 * method name, parameter type, and argument.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName, Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object executeStaticMethod_(Class<?> javaClass, String methodName, Class<?> parameterType, Object argument)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return executeStaticMethod_(javaClass, methodName, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Execute a static method, given the class,
-	 * method name, parameter types, and arguments.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * <p>
-	 * <code>Class.executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object executeStaticMethod_(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] arguments)
-		throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
-	{
-		return getStaticMethod_(javaClass, methodName, parameterTypes).invoke(null, arguments);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Class<?> javaClass, String methodName) {
-		return getMethod(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Class<?> javaClass, String methodName)
-		throws NoSuchMethodException
-	{
-		return getMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Class<?> javaClass, String methodName, Class<?> parameterType) {
-		return getMethod(javaClass, methodName, new Class[] {parameterType});
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Class<?> javaClass, String methodName, Class<?> parameterType)
-		throws NoSuchMethodException
-	{
-		return getMethod_(javaClass, methodName, new Class[] {parameterType});
-	}
-
-	/**
-	 * Return a method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) {
-		try {
-			return getMethod_(javaClass, methodName, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex);
-		}
-	}
-
-	/**
-	 * Return a method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Class<?> javaClass, String methodName, Class<?>[] parameterTypes)
-		throws NoSuchMethodException
-	{
-		Method method = null;
-		try {
-			method = javaClass.getDeclaredMethod(methodName, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			// recurse
-			return getMethod_(superclass, methodName, parameterTypes);
-		}
-		method.setAccessible(true);
-		return method;
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified object
-	 * and method name. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Object object, String methodName) {
-		return getMethod(object.getClass(), methodName);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified object
-	 * and method name. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Object object, String methodName)
-		throws NoSuchMethodException
-	{
-		return getMethod_(object.getClass(), methodName);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter types. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Object object, String methodName, Class<?>[] parameterTypes) {
-		return getMethod(object.getClass(), methodName, parameterTypes);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter types. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Object object, String methodName, Class<?>[] parameterTypes)
-		throws NoSuchMethodException
-	{
-		return getMethod_(object.getClass(), methodName, parameterTypes);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter type. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod(Object object, String methodName, Class<?> parameterType) {
-		return getMethod(object.getClass(), methodName, parameterType);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter type. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getMethod_(Object object, String methodName, Class<?> parameterType)
-		throws NoSuchMethodException
-	{
-		return getMethod_(object.getClass(), methodName, parameterType);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument static method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod(Class<?> javaClass, String methodName) {
-		return getStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterTypes) {
-		return getStaticMethod(javaClass, methodName, new Class[] {parameterTypes});
-	}
-
-	/**
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) {
-		try {
-			return getStaticMethod_(javaClass, methodName, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a zero-argument static method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod_(Class<?> javaClass, String methodName)
-		throws NoSuchMethodException
-	{
-		return getStaticMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod_(Class<?> javaClass, String methodName, Class<?> parameterTypes)
-		throws NoSuchMethodException
-	{
-		return getStaticMethod_(javaClass, methodName, new Class[] {parameterTypes});
-	}
-
-	/**
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Make any private/package/protected method accessible.
-	 */
-	public static Method getStaticMethod_(Class<?> javaClass, String methodName, Class<?>[] parameterTypes)
-		throws NoSuchMethodException
-	{
-		Method method = getMethod_(javaClass, methodName, parameterTypes);
-		if (Modifier.isStatic(method.getModifiers())) {
-			return method;
-		}
-		throw new NoSuchMethodException(buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes));
-	}
-
-	/**
-	 * Return all the methods for the
-	 * specified class, including inherited methods.
-	 * Make any private/package/protected methods accessible.
-	 * <p>
-	 * <code>Class.getAllMethods()</code>
-	 */
-	public static Iterable<Method> getAllMethods(Class<?> javaClass) {
-		ArrayList<Method> methods = new ArrayList<Method>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			addDeclaredMethodsTo(tempClass, methods);
-		}
-		return methods;
-	}
-
-	/*
-	 * Add the declared methods for the specified class
-	 * to the specified list.
-	 */
-	private static void addDeclaredMethodsTo(Class<?> javaClass, ArrayList<Method> methods) {
-		for (Method method : getDeclaredMethods(javaClass)) {
-			methods.add(method);
-		}
-	}
-
-	/**
-	 * Return the declared methods for the specified class.
-	 * Make any private/package/protected methods accessible.
-	 * <p>
-	 * <code>Class.getAccessibleDeclaredMethods()</code>
-	 */
-	public static Iterable<Method> getDeclaredMethods(Class<?> javaClass) {
-		Method[] methods = javaClass.getDeclaredMethods();
-		for (Method method : methods) {
-			method.setAccessible(true);
-		}
-		return new ArrayIterable<Method>(methods);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getDefaultConstructor()</code>
-	 */
-	public static <T> Constructor<T> getDefaultConstructor(Class<T> javaClass) {
-		return getConstructor(javaClass);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor()</code>
-	 */
-	public static <T> Constructor<T> getConstructor(Class<T> javaClass) {
-		return getConstructor(javaClass, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return the constructor for the specified class
-	 * and formal parameter type.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor(Class<?> parameterType)</code>
-	 */
-	public static <T> Constructor<T> getConstructor(Class<T> javaClass, Class<?> parameterType) {
-		return getConstructor(javaClass, new Class[] {parameterType});
-	}
-
-	/**
-	 * Return the constructor for the specified class
-	 * and formal parameter types.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor(Class<?>[] parameterTypes)</code>
-	 */
-	public static <T> Constructor<T> getConstructor(Class<T> javaClass, Class<?>[] parameterTypes) {
-		try {
-			return getConstructor_(javaClass, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex);
-		}
-	}
-
-	/**
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getDefaultConstructor()</code>
-	 */
-	public static <T> Constructor<T> getDefaultConstructor_(Class<T> javaClass)
-		throws NoSuchMethodException
-	{
-		return getConstructor_(javaClass);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor()</code>
-	 */
-	public static <T> Constructor<T> getConstructor_(Class<T> javaClass)
-		throws NoSuchMethodException
-	{
-		return getConstructor_(javaClass, ZERO_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return the constructor for the specified class
-	 * and formal parameter type.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor(Class<?> parameterType)</code>
-	 */
-	public static <T> Constructor<T> getConstructor_(Class<T> javaClass, Class<?> parameterType)
-		throws NoSuchMethodException
-	{
-		return getConstructor_(javaClass, new Class[] {parameterType});
-	}
-
-	/**
-	 * Return the constructor for the specified class
-	 * and formal parameter types.
-	 * Make any private/package/protected constructor accessible.
-	 * <p>
-	 * <code>Class.getConstructor(Class<?>[] parameterTypes)</code>
-	 */
-	public static <T> Constructor<T> getConstructor_(Class<T> javaClass, Class<?>[] parameterTypes)
-		throws NoSuchMethodException
-	{
-		Constructor<T> constructor = javaClass.getDeclaredConstructor(parameterTypes);
-		constructor.setAccessible(true);
-		return constructor;
-	}
-
-	/**
-	 * Return the declared constructors for the specified class.
-	 * Make any private/package/protected constructors accessible.
-	 * <p>
-	 * <code>Class.getAccessibleDeclaredConstructors()</code>
-	 */
-	public static <T> Iterable<Constructor<T>> getDeclaredConstructors(Class<T> javaClass) {
-		@SuppressWarnings("unchecked")
-		Constructor<T>[] constructors = (Constructor<T>[]) javaClass.getDeclaredConstructors();
-		for (Constructor<T> constructor : constructors) {
-			constructor.setAccessible(true);
-		}
-		return new ArrayIterable<Constructor<T>>(constructors);
-	}
-
-
-	// ********** classes **********
-
-	/**
-	 * Convenience method.
-	 * Return the specified class (without the checked exception).
-	 */
-	public static Class<?> classForName(String className) {
-		try {
-			return Class.forName(className);
-		} catch (ClassNotFoundException ex) {
-			throw new RuntimeException(className, ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Return the specified class (without the checked exception).
-	 */
-	public static Class<?> classForName(String className, boolean initialize, ClassLoader classLoader) {
-		try {
-			return Class.forName(className, initialize, classLoader);
-		} catch (ClassNotFoundException ex) {
-			throw new RuntimeException(className, ex);
-		}
-	}
-
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * <p>
-	 * <code>Class.getArrayDepth()</code>
-	 */
-	public static int getArrayDepth(Class<?> javaClass) {
-		int depth = 0;
-		while (javaClass.isArray()) {
-			depth++;
-			javaClass = javaClass.getComponentType();
-		}
-		return depth;
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * A non-array type simply returns itself.
-	 * <p>
-	 * <code>Class.getElementType()</code>
-	 */
-	public static Class<?> getElementType(Class<?> javaClass) {
-		while (javaClass.isArray()) {
-			javaClass = javaClass.getComponentType();
-		}
-		return javaClass;
-	}
-
-	/**
-	 * Return the wrapper class corresponding to the specified
-	 * primitive class. Return <code>null</code> if the specified class
-	 * is not a primitive class.
-	 * <p>
-	 * <code>Class.getWrapperClass()</code>
-	 */
-	public static Class<?> getWrapperClass(Class<?> primitiveClass) {
-		for (Primitive primitive : PRIMITIVES) {
-			if (primitive.javaClass == primitiveClass) {
-				return primitive.wrapperClass;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. <code>java.lang.Void</code> or one of the primitive
-	 * variable wrapper classes, <code>java.lang.Boolean</code>,
-	 * <code>java.lang.Integer</code>, <code>java.lang.Float</code>, etc.).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 * <p>
-	 * <code>Class.isPrimitiveWrapper()</code>
-	 */
-	public static boolean classIsPrimitiveWrapper(Class<?> javaClass) {
-		if (javaClass.isArray() || (javaClass.getName().length() > MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH)) {
-			return false;  // performance tweak
-		}
-		for (Primitive primitive : PRIMITIVES) {
-			if (javaClass == primitive.wrapperClass) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive wrapper
-	 * class (i.e. <code>java.lang.Boolean</code>,
-	 * <code>java.lang.Integer</code>, <code>java.lang.Float</code>, etc.,
-	 * but not <code>java.lang.Void</code>).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 * <p>
-	 * <code>Class.isVariablePrimitiveWrapper()</code>
-	 */
-	public static boolean classIsVariablePrimitiveWrapper(Class<?> javaClass) {
-		return classIsPrimitiveWrapper(javaClass)
-			&& (javaClass != VOID_WRAPPER_CLASS);
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. <code>boolean</code>, <code>int</code>,
-	 * <code>float</code>, etc., but not <code>void</code>).
-	 * <p>
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 * <p>
-	 * <code>Class.isVariablePrimitive()</code>
-	 */
-	public static boolean classIsVariablePrimitive(Class<?> javaClass) {
-		return javaClass.isPrimitive() && (javaClass != VOID_CLASS);
-	}
-
-	/**
-	 * Return the primitive class for the specified primitive class code.
-	 * Return <code>null</code> if the specified code
-	 * is not a primitive class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> getClassForCode(int classCode) {
-		return getClassForCode((char) classCode);
-	}
-
-	/**
-	 * Return the primitive class for the specified primitive class code.
-	 * Return <code>null</code> if the specified code
-	 * is not a primitive class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> getClassForCode(char classCode) {
-		for (Primitive primitive : PRIMITIVES) {
-			if (primitive.code == classCode) {
-				return primitive.javaClass;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the class code for the specified primitive class.
-	 * Return <code>0</code> if the specified class
-	 * is not a primitive class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char getCodeForClass(Class<?> primitiveClass) {
-		if (( ! primitiveClass.isArray()) && (primitiveClass.getName().length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH)) {
-			for (Primitive primitive : PRIMITIVES) {
-				if (primitive.javaClass == primitiveClass) {
-					return primitive.code;
-				}
-			}
-		}
-		return 0;
-	}
-
-
-	// ********** instantiation **********
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * <p>
-	 * <code>Class.newInstance()</code>
-	 */
-	public static Object newInstance(String className) {
-		return newInstance(className, null);
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and argument.
-	 * <p>
-	 * <code>Class.newInstance(Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object argument) {
-		return newInstance(className, parameterType, argument, null);
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and arguments.
-	 * <p>
-	 * <code>Class.newInstance(Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] arguments) {
-		return newInstance(className, parameterTypes, arguments, null);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Use the specified class loader to load the class.
-	 * <p>
-	 * <code>Class.newInstance()</code>
-	 */
-	public static Object newInstance(String className, ClassLoader classLoader) {
-		return newInstance(classForName(className, false, classLoader));
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and argument.
-	 * <p>
-	 * <code>Class.newInstance(Class<?> parameterType, Object argument)</code>
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object argument, ClassLoader classLoader) {
-		return newInstance(classForName(className, false, classLoader), parameterType, argument);
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and arguments.
-	 * <p>
-	 * <code>Class.newInstance(Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] arguments, ClassLoader classLoader) {
-		return newInstance(classForName(className, false, classLoader), parameterTypes, arguments);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * <p>
-	 * <code>Class.newInstance()</code>
-	 */
-	public static <T> T newInstance(Class<T> javaClass) {
-		return newInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and argument.
-	 * <p>
-	 * <code>Class.newInstance(Class<?> parameterType, Object argument)</code>
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?> parameterType, Object argument) {
-		return newInstance(javaClass, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and arguments.
-	 * <p>
-	 * <code>Class.newInstance(Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?>[] parameterTypes, Object[] arguments) {
-		try {
-			return newInstance_(javaClass, parameterTypes, arguments);
-		} catch (InstantiationException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex);
-		} catch (IllegalAccessException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex);
-		} catch (InvocationTargetException ex) {
-			throw new RuntimeException(buildFullyQualifiedConstructorSignature(javaClass, parameterTypes) + CR + ex.getTargetException(), ex);
-		} catch (NoSuchMethodException ex) {
-			throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex);
-		}
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * <p>
-	 * <code>Class.newInstance()</code>
-	 */
-	public static <T> T newInstance_(Class<T> javaClass)
-		throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
-	{
-		return newInstance_(javaClass, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS);
-	}
-
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and argument.
-	 * <p>
-	 * <code>Class.newInstance(Class<?> parameterType, Object argument)</code>
-	 */
-	public static <T> T newInstance_(Class<T> javaClass, Class<?> parameterType, Object argument)
-		throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
-	{
-		return newInstance_(javaClass, new Class[] {parameterType}, new Object[] {argument});
-	}
-
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and arguments.
-	 * <p>
-	 * <code>Class.newInstance(Class<?>[] parameterTypes, Object[] arguments)</code>
-	 */
-	public static <T> T newInstance_(Class<T> javaClass, Class<?>[] parameterTypes, Object[] arguments)
-		throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
-	{
-		return getConstructor_(javaClass, parameterTypes).newInstance(arguments);
-	}
-
-
-	// ********** type declarations **********
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> getClassForTypeDeclaration(String typeDeclaration) {
-		return getClassForTypeDeclaration(typeDeclaration, null);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> getClassForTypeDeclaration_(String typeDeclaration)
-		throws ClassNotFoundException
-	{
-		return getClassForTypeDeclaration_(typeDeclaration, null);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	public static Class<?> getClassForTypeDeclaration(String typeDeclaration, ClassLoader classLoader) {
-		TypeDeclaration td = buildTypeDeclaration(typeDeclaration);
-		return getClassForTypeDeclaration(td.elementTypeName, td.arrayDepth, classLoader);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	public static Class<?> getClassForTypeDeclaration_(String typeDeclaration, ClassLoader classLoader)
-		throws ClassNotFoundException
-	{
-		TypeDeclaration td = buildTypeDeclaration(typeDeclaration);
-		return getClassForTypeDeclaration_(td.elementTypeName, td.arrayDepth, classLoader);
-	}
-
-	private static TypeDeclaration buildTypeDeclaration(String typeDeclaration) {
-		typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration);
-		int arrayDepth = getArrayDepthForTypeDeclaration_(typeDeclaration);
-		String elementTypeName = getElementTypeNameForTypeDeclaration_(typeDeclaration, arrayDepth);
-		return new TypeDeclaration(elementTypeName, arrayDepth);
-	}
-
-	/**
-	 * Return the array depth for the specified "type declaration"; e.g.<ul>
-	 * <li><code>"int[]"</code> returns <code>1</code>
-	 * <li><code>"java.lang.String[][][]"</code> returns <code>3</code>
-	 * </ul>
-	 */
-	public static int getArrayDepthForTypeDeclaration(String typeDeclaration) {
-		return getArrayDepthForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration));
-	}
-
-	/**
-	 * pre-condition: no whitespace in the type declaration.
-	 */
-	private static int getArrayDepthForTypeDeclaration_(String typeDeclaration) {
-		int last = typeDeclaration.length() - 1;
-		int depth = 0;
-		int close = last;
-		while (typeDeclaration.charAt(close) == ']') {
-			if (typeDeclaration.charAt(close - 1) == '[') {
-				depth++;
-			} else {
-				throw new IllegalArgumentException("invalid type declaration: " + typeDeclaration); //$NON-NLS-1$
-			}
-			close = last - (depth * 2);
-		}
-		return depth;
-	}
-
-	/**
-	 * Return the element type name for the specified "type declaration"; e.g.<ul>
-	 * <li><code>"int[]"</code> returns <code>"int"</code>
-	 * <li><code>"java.lang.String[][][]"</code> returns <code>"java.lang.String"</code>
-	 * </ul>
-	 */
-	public static String getElementTypeNameForTypeDeclaration(String typeDeclaration) {
-		typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration);
-		return getElementTypeNameForTypeDeclaration_(typeDeclaration, getArrayDepthForTypeDeclaration_(typeDeclaration));
-	}
-
-	/**
-	 * Return the element type name for the specified "type declaration"; e.g.<ul>
-	 * <li><code>"int[]"</code> returns <code>"int"</code>
-	 * <li><code>"java.lang.String[][][]"</code> returns <code>"java.lang.String"</code>
-	 * </ul>
-	 * Useful for clients that have already queried the type declaration's array depth.
-	 */
-	public static String getElementTypeNameForTypeDeclaration(String typeDeclaration, int arrayDepth) {
-		return getElementTypeNameForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration), arrayDepth);
-	}
-
-	/**
-	 * pre-condition: no whitespace in the type declaration.
-	 */
-	private static String getElementTypeNameForTypeDeclaration_(String typeDeclaration, int arrayDepth) {
-		return typeDeclaration.substring(0, typeDeclaration.length() - (arrayDepth * 2));
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> getClassForTypeDeclaration(String elementTypeName, int arrayDepth) {
-		return getClassForTypeDeclaration(elementTypeName, arrayDepth, null);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> getClassForTypeDeclaration_(String elementTypeName, int arrayDepth)
-		throws ClassNotFoundException
-	{
-		return getClassForTypeDeclaration_(elementTypeName, arrayDepth, null);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	public static Class<?> getClassForTypeDeclaration(String elementTypeName, int arrayDepth, ClassLoader classLoader) {
-		try {
-			return getClassForTypeDeclaration_(elementTypeName, arrayDepth, classLoader);
-		} catch (ClassNotFoundException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	// see the "Evaluation" of JDK bug 6446627 for a discussion of loading classes
-	public static Class<?> getClassForTypeDeclaration_(String elementTypeName, int arrayDepth, ClassLoader classLoader)
-		throws ClassNotFoundException
-	{
-		// primitives cannot be loaded via Class.forName(),
-		// so check for a primitive class name first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH) {  // performance tweak
-			for (Primitive primitive : PRIMITIVES) {
-				if (primitive.javaClass.getName().equals(elementTypeName)) {
-					pcc = primitive;
-					break;
-				}
-			}
-		}
-
-		// non-array
-		if (arrayDepth == 0) {
-			return (pcc == null) ? Class.forName(elementTypeName, false, classLoader) : pcc.javaClass;
-		}
-
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append('[');
-		}
-		if (pcc == null) {
-			ClassName.append(elementTypeName, sb);
-		} else {
-			sb.append(pcc.code);
-		}
-		return Class.forName(sb.toString(), false, classLoader);
-	}
-
-	/**
-	 * Return the class name for the specified "type declaration"; e.g.<ul>
-	 * <li><code>"int"</code> returns <code>"int"</code>
-	 * <li><code>"int[]"</code> returns <code>"[I"</code>
-	 * <li><code>"java.lang.String"</code> returns <code>"java.lang.String"</code>
-	 * <li><code>"java.lang.String[][][]"</code> returns <code>"[[[Ljava.lang.String;"</code>
-	 * </ul>
-	 * @see java.lang.Class#getName()
-	 */
-	public static String getClassNameForTypeDeclaration(String typeDeclaration) {
-		TypeDeclaration td = buildTypeDeclaration(typeDeclaration);
-		return getClassNameForTypeDeclaration(td.elementTypeName, td.arrayDepth);
-	}
-
-	/**
-	 * Return the class name for the specified "type declaration".
-	 * @see java.lang.Class#getName()
-	 */
-	public static String getClassNameForTypeDeclaration(String elementTypeName, int arrayDepth) {
-		// non-array
-		if (arrayDepth == 0) {
-			return elementTypeName;
-		}
-
-		if (elementTypeName.equals(ClassName.VOID_CLASS_NAME)) {
-			throw new IllegalArgumentException('\'' + ClassName.VOID_CLASS_NAME + "' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append('[');
-		}
-
-		// look for a primitive first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH) {  // performance tweak
-			for (Primitive primitive : PRIMITIVES) {
-				if (primitive.javaClass.getName().equals(elementTypeName)) {
-					pcc = primitive;
-					break;
-				}
-			}
-		}
-
-		if (pcc == null) {
-			ClassName.append(elementTypeName, sb);
-		} else {
-			sb.append(pcc.code);
-		}
-
-		return sb.toString();
-	}
-
-
-	// ********** exception messages **********
-
-	/**
-	 * Return a string representation of the specified constructor.
-	 */
-	private static String buildFullyQualifiedConstructorSignature(Class<?> javaClass, Class<?>[] parameterTypes) {
-		return buildFullyQualifiedMethodSignature(javaClass, null, parameterTypes);
-	}
-
-	/**
-	 * Return a string representation of the specified field.
-	 */
-	private static String buildFullyQualifiedFieldName(Class<?> javaClass, String fieldName) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		sb.append('.');
-		sb.append(fieldName);
-		return sb.toString();
-	}
-
-	/**
-	 * Return a string representation of the specified field.
-	 */
-	private static String buildFullyQualifiedFieldName(Object object, String fieldName) {
-		return buildFullyQualifiedFieldName(object.getClass(), fieldName);
-	}
-
-	/**
-	 * Return a string representation of the specified method.
-	 */
-	private static String buildFullyQualifiedMethodSignature(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		// this check allows us to use this code for constructors, where the methodName is null
-		if (methodName != null) {
-			sb.append('.');
-			sb.append(methodName);
-		}
-		sb.append('(');
-		int max = parameterTypes.length - 1;
-		if (max != -1) {
-			// stop one short of the end of the array
-			for (int i = 0; i < max; i++) {
-				sb.append(parameterTypes[i].getName());
-				sb.append(", "); //$NON-NLS-1$
-			}
-			sb.append(parameterTypes[max].getName());
-		}
-		sb.append(')');
-		return sb.toString();
-	}
-
-
-	// ********** primitive constants **********
-
-	static final Iterable<Primitive> PRIMITIVES = buildPrimitives();
-
-	public static final char BYTE_CODE = 'B';
-	public static final char CHAR_CODE = 'C';
-	public static final char DOUBLE_CODE = 'D';
-	public static final char FLOAT_CODE = 'F';
-	public static final char INT_CODE = 'I';
-	public static final char LONG_CODE = 'J';
-	public static final char SHORT_CODE = 'S';
-	public static final char BOOLEAN_CODE = 'Z';
-	public static final char VOID_CODE = 'V';
-
-	static final int MAX_PRIMITIVE_CLASS_NAME_LENGTH = calculateMaxPrimitiveClassNameLength();
-	static final int MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = calculateMaxPrimitiveWrapperClassNameLength();
-
-	private static int calculateMaxPrimitiveClassNameLength() {
-		int max = -1;
-		for (Primitive primitive : PRIMITIVES) {
-			int len = primitive.javaClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	private static int calculateMaxPrimitiveWrapperClassNameLength() {
-		int max = -1;
-		for (Primitive primitive : PRIMITIVES) {
-			int len = primitive.wrapperClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	/**
-	 * <strong>NB:</strong> <code>void.class.isPrimitive() == true</code>
-	 */
-	private static Iterable<Primitive> buildPrimitives() {
-		Primitive[] array = new Primitive[9];
-		array[0] = new Primitive(BYTE_CODE, java.lang.Byte.class);
-		array[1] = new Primitive(CHAR_CODE, java.lang.Character.class);
-		array[2] = new Primitive(DOUBLE_CODE, java.lang.Double.class);
-		array[3] = new Primitive(FLOAT_CODE, java.lang.Float.class);
-		array[4] = new Primitive(INT_CODE, java.lang.Integer.class);
-		array[5] = new Primitive(LONG_CODE, java.lang.Long.class);
-		array[6] = new Primitive(SHORT_CODE, java.lang.Short.class);
-		array[7] = new Primitive(BOOLEAN_CODE, java.lang.Boolean.class);
-		array[8] = new Primitive(VOID_CODE, java.lang.Void.class);
-		return new ArrayIterable<Primitive>(array);
-	}
-
-
-	// ********** member classes **********
-
-	static class Primitive {
-		final char code;
-		final Class<?> javaClass;
-		final Class<?> wrapperClass;
-		private static final String WRAPPER_CLASS_TYPE_FIELD_NAME = "TYPE"; //$NON-NLS-1$
-		// e.g. java.lang.Boolean.TYPE => boolean.class
-		Primitive(char code, Class<?> wrapperClass) {
-			this.code = code;
-			this.wrapperClass = wrapperClass;
-			this.javaClass = (Class<?>) getStaticFieldValue(wrapperClass, WRAPPER_CLASS_TYPE_FIELD_NAME);
-		}
-	}
-
-	private static class TypeDeclaration {
-		final String elementTypeName;
-		final int arrayDepth;
-		TypeDeclaration(String elementTypeName, int arrayDepth) {
-			this.elementTypeName = elementTypeName;
-			this.arrayDepth = arrayDepth;
-		}
-	}
-
-
-	// ********** suppressed constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private ReflectionTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java
deleted file mode 100644
index 948b858..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.Comparator;
-
-/**
- * This comparator will reverse the order of the specified comparator.
- * If the comparator is null, the natural ordering of the objects will be used.
- */
-public class ReverseComparator<E extends Comparable<? super E>>
-	implements Comparator<E>, Serializable
-{
-	private final Comparator<E> comparator;
-
-	public ReverseComparator() {
-		this(null);
-	}
-
-	public ReverseComparator(Comparator<E> comparator) {
-		super();
-		this.comparator = comparator;
-	}
-
-	public int compare(E e1, E e2) {
-		return (this.comparator == null) ?
-			e2.compareTo(e1)
-		:
-			this.comparator.compare(e2, e1);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java
deleted file mode 100644
index 997996b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Wrap a Runnable so it can be used as a Command.
- */
-public class RunnableCommand implements Command {
-	protected final Runnable runnable;
-
-	public RunnableCommand(Runnable runnable) {
-		super();
-		if (runnable == null) {
-			throw new NullPointerException();
-		}
-		this.runnable = runnable;
-	}
-
-	public void execute() {
-		this.runnable.run();
-	}
-
-	@Override
-	public String toString() {
-		return "Command[" + this.runnable.toString() +']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java
deleted file mode 100644
index 8490c26..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Straightforward implementation of {@link Association}.
- */
-public class SimpleAssociation<K, V>
-	extends AbstractAssociation<K, V>
-	implements Cloneable, Serializable
-{
-	private final K key;
-	private V value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct an association with the specified key
-	 * and a null value.
-	 */
-	public SimpleAssociation(K key) {
-		super();
-		this.key = key;
-	}
-
-	/**
-	 * Construct an association with the specified key and value.
-	 */
-	public SimpleAssociation(K key, V value) {
-		this(key);
-		this.value = value;
-	}
-
-
-	public K getKey() {
-		return this.key;
-	}
-
-	public synchronized V getValue() {
-		return this.value;
-	}
-
-	public synchronized V setValue(V value) {
-		V old = this.value;
-		this.value = value;
-		return old;
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public synchronized SimpleAssociation<K, V> clone() {
-		try {
-			return (SimpleAssociation<K, V>) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java
deleted file mode 100644
index 9dabf58..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Provide a container for passing a flag that can be changed by the recipient.
- * 
- * @see SynchronizedBoolean
- */
-public class SimpleBooleanReference
-	implements BooleanReference, Cloneable, Serializable
-{
-	/** Backing <code>boolean</code>. */
-	protected volatile boolean value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a <code>boolean</code> reference with the specified initial value.
-	 */
-	public SimpleBooleanReference(boolean value) {
-		super();
-		this.value = value;
-	}
-
-	/**
-	 * Create a <code>boolean</code> reference with an initial value of
-	 * <code>false</code>.
-	 */
-	public SimpleBooleanReference() {
-		this(false);
-	}
-
-
-	// ********** accessors **********
-
-	public boolean getValue() {
-		return this.value;
-	}
-
-	public boolean is(boolean v) {
-		return this.value == v;
-	}
-
-	public boolean isNot(boolean v) {
-		return this.value != v;
-	}
-
-	public boolean isTrue() {
-		return this.value;
-	}
-
-	public boolean isFalse() {
-		return ! this.value;
-	}
-
-	public boolean setValue(boolean value) {
-		boolean old = this.value;
-		this.value = value;
-		return old;
-	}
-
-	public boolean flip() {
-		return this.value = ! this.value;
-	}
-
-	public boolean setNot(boolean v) {
-		return this.setValue( ! v);
-	}
-
-	public boolean setTrue() {
-		return this.setValue(true);
-	}
-
-	public boolean setFalse() {
-		return this.setValue(false);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SimpleBooleanReference clone() {
-		try {
-			return (SimpleBooleanReference) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.value) + ']';
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java
deleted file mode 100644
index 169654a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Straightforward implementation of {@link StatefulCommandExecutor}.
- */
-public class SimpleCommandExecutor
-	implements StatefulCommandExecutor
-{
-	private boolean active = false;
-
-	public SimpleCommandExecutor() {
-		super();
-	}
-
-	public void start() {
-		if (this.active) {
-			throw new IllegalStateException("Not stopped."); //$NON-NLS-1$
-		}
-		this.active = true;
-	}
-
-	public void execute(Command command) {
-		if (this.active) {
-			command.execute();
-		}
-	}
-
-	public void stop() {
-		if ( ! this.active) {
-			throw new IllegalStateException("Not started."); //$NON-NLS-1$
-		}
-		this.active = false;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java
deleted file mode 100644
index 7cff121..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.common.utility.Filter;
-
-/**
- * Simple, abstract implementation of <code>Filter</code>
- * that holds on to a criterion object that can be used in the
- * <code>accept(Object)</code> or <code>reject(Object)</code>
- * methods. Subclasses can override either of these methods,
- * depending on which is easier to implement. Note that at least
- * one of these methods <em>must</em> be overridden or
- * an infinite loop will occur. If both of them are overridden,
- * only the <code>accept(Object)</code> method will be used.
- * <p>
- * Simplifies the implementation of straightforward inner classes.
- * Here is an example of a filter that can be used by a
- * <code>FilteringIterator</code> to return only those strings
- * in the nested iterator start with "prefix":
- * <pre>
- *	Filter<String> filter = new SimpleFilter<String>("prefix") {
- *		public boolean accept(String o) {
- *			return o.startsWith((String) criterion);
- *		}
- *	};
- * </pre>
- */
-public abstract class SimpleFilter<T, S>
-	implements Filter<T>, Cloneable, Serializable
-{
-	protected final S criterion;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * More useful constructor. The specified criterion can
-	 * be used by a subclass to "accept" or "reject" objects.
-	 */
-	protected SimpleFilter(S criterion) {
-		super();
-		this.criterion = criterion;
-	}
-
-	/**
-	 * Construct a simple filter with a null criterion
-	 */
-	protected SimpleFilter() {
-		this(null);
-	}
-
-	/**
-	 * Return whether the the specified object should be "rejected".
-	 * The semantics of "rejected" is determined by the client.
-	 */
-	protected boolean reject(T o) {
-		return ! this.accept(o);
-	}
-
-	/**
-	 * Return whether the the specified object should be "accepted".
-	 * The semantics of "accepted" is determined by the client.
-	 */
-	public boolean accept(T o) {
-		return ! this.reject(o);
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public SimpleFilter<T, S> clone() {
-		try {
-			return (SimpleFilter<T, S>) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if ( ! (o instanceof SimpleFilter<?, ?>)) {
-			return false;
-		}
-		SimpleFilter<?, ?> other = (SimpleFilter<?, ?>) o;
-		return (this.criterion == null) ?
-			(other.criterion == null) : this.criterion.equals(other.criterion);
-	}
-
-	@Override
-	public int hashCode() {
-		return (this.criterion == null) ? 0 : this.criterion.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.criterion);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java
deleted file mode 100644
index fa7a3b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * This class can be used wherever a mutable integer object is needed.
- * It is a cross between an <code>int</code> and an {@link Integer}.
- * It can be stored in a standard container (e.g. {@link java.util.Collection})
- * but can be modified. It is also useful passing a value that can be changed
- * by the recipient.
- * 
- * @see SynchronizedInt
- */
-public final class SimpleIntReference
-	implements IntReference, Cloneable, Serializable
-{
-	/** Backing <code>int</code>. */
-	private volatile int value = 0;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a <code>int</code> reference with the specified initial value.
-	 */
-	public SimpleIntReference(int count) {
-		super();
-		this.value = count;
-	}
-
-	/**
-	 * Construct a <code>int</code> reference with an initial value of zero.
-	 */
-	public SimpleIntReference() {
-		this(0);
-	}
-
-
-	// ********** methods **********
-
-	public int getValue() {
-		return this.value;
-	}
-
-	public boolean equals(int v) {
-		return this.value == v;
-	}
-
-	public boolean notEqual(int v) {
-		return this.value != v;
-	}
-
-	public boolean isZero() {
-		return this.value == 0;
-	}
-
-	public boolean isNotZero() {
-		return this.value != 0;
-	}
-
-	public boolean isGreaterThan(int v) {
-		return this.value > v;
-	}
-
-	public boolean isGreaterThanOrEqual(int v) {
-		return this.value >= v;
-	}
-
-	public boolean isLessThan(int v) {
-		return this.value < v;
-	}
-
-	public boolean isLessThanOrEqual(int v) {
-		return this.value <= v;
-	}
-
-	public boolean isPositive() {
-		return this.isGreaterThan(0);
-	}
-
-	public boolean isNotPositive() {
-		return this.isLessThanOrEqual(0);
-	}
-
-	public boolean isNegative() {
-		return this.isLessThan(0);
-	}
-
-	public boolean isNotNegative() {
-		return this.isGreaterThanOrEqual(0);
-	}
-
-	public int abs() {
-		return Math.abs(this.value);
-	}
-
-	public int neg() {
-		return -this.value;
-	}
-
-	public int add(int v) {
-		return this.value + v;
-	}
-
-	public int subtract(int v) {
-		return this.value - v;
-	}
-
-	public int multiply(int v) {
-		return this.value * v;
-	}
-
-	public int divide(int v) {
-		return this.value / v;
-	}
-
-	public int remainder(int v) {
-		return this.value % v;
-	}
-
-	public int min(int v) {
-		return Math.min(this.value, v);
-	}
-
-	public int max(int v) {
-		return Math.max(this.value, v);
-	}
-
-	public double pow(int v) {
-		return Math.pow(this.value, v);
-	}
-
-	public int setValue(int value) {
-		int old = this.value;
-		this.value = value;
-		return old;
-	}
-
-	public int setZero() {
-		return this.setValue(0);
-	}
-
-	public int increment() {
-		return ++this.value;
-	}
-
-	public int decrement() {
-		return --this.value;
-	}
-
-
-	// ********** Comparable implementation **********
-
-	public int compareTo(ReadOnlyIntReference ref) {
-		int v = ref.getValue();
-		return (this.value < v) ? -1 : ((this.value == v) ? 0 : 1);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SimpleIntReference clone() {
-		try {
-			return (SimpleIntReference) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.value) + ']';
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java
deleted file mode 100644
index ef47ba3..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-
-import org.eclipse.jpt.common.utility.JavaType;
-
-/**
- * Straightforward implementation of the {@link JavaType} interface.
- */
-public final class SimpleJavaType
-	implements JavaType, Cloneable, Serializable
-{
-
-	/**
-	 * store the type as a name, so we can reference classes
-	 * that are not loaded
-	 */
-	private final String elementTypeName;
-
-	/**
-	 * non-array types have an array depth of zero
-	 */
-	private final int arrayDepth;
-
-	private static final String BRACKETS = "[]"; //$NON-NLS-1$
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a Java type with the specified element type and array depth.
-	 */
-	public SimpleJavaType(String elementTypeName, int arrayDepth) {
-		super();
-		if ((elementTypeName == null) || (elementTypeName.length() == 0)) {
-			throw new IllegalArgumentException("The element type name is required."); //$NON-NLS-1$
-		}
-		if (ClassName.getArrayDepth(elementTypeName) != 0) {		// e.g. "[Ljava.lang.Object;"
-			throw new IllegalArgumentException("The element type must not be an array: " + elementTypeName + '.'); //$NON-NLS-1$
-		}
-		if (arrayDepth < 0) {
-			throw new IllegalArgumentException("The array depth must be greater than or equal to zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		if (elementTypeName.equals(void.class.getName()) && (arrayDepth != 0)) {
-			throw new IllegalArgumentException("'void' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		this.elementTypeName = elementTypeName;
-		this.arrayDepth = arrayDepth;
-	}
-
-	/**
-	 * Construct a Java type for the specified class.
-	 * The class name can be in one of the following forms:<ul><code>
-	 * <li>java.lang.Object
-	 * <li>int
-	 * <li>java.util.Map$Entry
-	 * <li>[Ljava.lang.Object;
-	 * <li>[I
-	 * <li>[Ljava.util.Map$Entry;
-	 * </code></ul>
-	 */
-	public SimpleJavaType(String javaClassName) {
-		this(ClassName.getElementTypeName(javaClassName), ClassName.getArrayDepth(javaClassName));
-	}
-
-	/**
-	 * Construct a Java type for the specified class.
-	 */
-	public SimpleJavaType(Class<?> javaClass) {
-		this(javaClass.getName());
-	}
-
-
-	// ********** accessors **********
-
-	public String getElementTypeName() {
-		return this.elementTypeName;
-	}
-
-	public int getArrayDepth() {
-		return this.arrayDepth;
-	}
-
-
-	// ********** queries **********
-
-	public boolean isArray() {
-		return this.arrayDepth > 0;
-	}
-
-	public boolean isPrimitive() {
-		return (this.arrayDepth == 0) && ClassName.isPrimitive(this.elementTypeName);
-	}
-
-	public boolean isPrimitiveWrapper() {
-		return (this.arrayDepth == 0) && ClassName.isPrimitiveWrapper(this.elementTypeName);
-	}
-
-	public boolean isVariablePrimitive() {
-		return (this.arrayDepth == 0) && ClassName.isVariablePrimitive(this.elementTypeName);
-	}
-
-	public boolean isVariablePrimitiveWrapper() {
-		return (this.arrayDepth == 0) && ClassName.isVariablePrimitiveWrapper(this.elementTypeName);
-	}
-
-	public Class<?> getJavaClass() throws ClassNotFoundException {
-		return ReflectionTools.getClassForTypeDeclaration(this.elementTypeName, this.arrayDepth);
-	}
-
-	public String getJavaClassName() {
-		return ReflectionTools.getClassNameForTypeDeclaration(this.elementTypeName, this.arrayDepth);
-	}
-
-
-	// ********** comparison **********
-
-	public boolean equals(String otherElementTypeName, int otherArrayDepth) {
-		return (this.arrayDepth == otherArrayDepth)
-			&& this.elementTypeName.equals(otherElementTypeName);
-	}
-
-	public boolean describes(String className) {
-		return this.equals(ClassName.getElementTypeName(className), ClassName.getArrayDepth(className));
-	}
-
-	public boolean describes(Class<?> javaClass) {
-		return this.describes(javaClass.getName());
-	}
-
-	public boolean equals(JavaType other) {
-		return this.equals(other.getElementTypeName(), other.getArrayDepth());
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return (this == o) ? true : (o instanceof JavaType) ? this.equals((JavaType) o) : false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.elementTypeName.hashCode() ^ this.arrayDepth;
-	}
-
-
-	// ********** printing and displaying **********
-
-	public String declaration() {
-		if (this.arrayDepth == 0) {
-			return this.getElementTypeNameDeclaration();
-		}
-		StringBuilder sb = new StringBuilder(this.elementTypeName.length() + (2 * this.arrayDepth));
-		this.appendDeclarationTo(sb);
-		return sb.toString();
-	}
-
-	public void appendDeclarationTo(StringBuilder sb) {
-		sb.append(this.getElementTypeNameDeclaration());
-		for (int i = this.arrayDepth; i-- > 0; ) {
-			sb.append(BRACKETS);
-		}
-	}
-
-	public void printDeclarationOn(PrintWriter pw) {
-		pw.print(this.getElementTypeNameDeclaration());
-		for (int i = this.arrayDepth; i-- > 0; ) {
-			pw.print(BRACKETS);
-		}
-	}
-
-	/**
-	 * The <code>'$'</code> version of the name is used in {@link Class#forName(String)},
-	 * but the <code>'.'</code> version of the name is used in source code.
-	 * Very irritating....
-	 */
-	private String getElementTypeNameDeclaration() {
-		return this.elementTypeName.replace('$', '.');
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(this.getClass().getSimpleName());
-		sb.append('(');
-		this.appendDeclarationTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java
deleted file mode 100644
index 0a4b523..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.JavaType;
-import org.eclipse.jpt.common.utility.MethodSignature;
-
-/**
- * Straightforward implementation of the MethodSignature interface.
- */
-public final class SimpleMethodSignature
-	implements MethodSignature, Cloneable, Serializable
-{
-	private final String name;
-
-	/**
-	 * store the parameter types as names, so we can reference classes
-	 * that are not loaded
-	 */
-	private final JavaType[] parameterTypes;
-
-	public static final JavaType[] EMPTY_PARAMETER_TYPES = new JavaType[0];
-
-	private static final String PARAMETER_SEPARATOR = ", "; //$NON-NLS-1$
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a method signature with the specified name and
-	 * no parameter types.
-	 */
-	public SimpleMethodSignature(String name) {
-		this(name, EMPTY_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, JavaType... parameterTypes) {
-		super();
-		if ((name == null) || (name.length() == 0)) {
-			throw new IllegalArgumentException("The name is required."); //$NON-NLS-1$
-		}
-		if (parameterTypes == null) {
-			throw new IllegalArgumentException("The parameter types are required."); //$NON-NLS-1$
-		}
-		checkParameterTypes(parameterTypes);
-		this.name = name;
-		this.parameterTypes = parameterTypes;
-	}
-
-	private static void checkParameterTypes(JavaType[] parameterTypes) {
-		for (int i = 0; i < parameterTypes.length; i++) {
-			if (parameterTypes[i] == null) {
-				throw new IllegalArgumentException("Missing parameter type: " + i); //$NON-NLS-1$
-			}
-			if (parameterTypes[i].getElementTypeName().equals(void.class.getName())) {
-				throw new IllegalArgumentException("A parameter type of 'void' is not allowed: " + i); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, String... parameterTypeNames) {
-		this(name, buildParameterTypes(parameterTypeNames));
-	}
-
-	private static JavaType[] buildParameterTypes(String[] parameterTypeNames) {
-		if (parameterTypeNames == null) {
-			throw new IllegalArgumentException("The parameter type names are required."); //$NON-NLS-1$
-		}
-		JavaType[] parameterTypes = new JavaType[parameterTypeNames.length];
-		for (int i = 0; i < parameterTypeNames.length; i++) {
-			if (parameterTypeNames[i] == null) {
-				throw new IllegalArgumentException("Missing parameter type name: " + i); //$NON-NLS-1$
-			}
-			parameterTypes[i] = new SimpleJavaType(parameterTypeNames[i]);
-		}
-		return parameterTypes;
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, Class<?>... parameterJavaClasses) {
-		this(name, buildParameterTypeNames(parameterJavaClasses));
-	}
-
-	private static String[] buildParameterTypeNames(Class<?>[] parameterJavaClasses) {
-		if (parameterJavaClasses == null) {
-			throw new IllegalArgumentException("The parameter Java classes are required."); //$NON-NLS-1$
-		}
-		String[] parameterTypeNames = new String[parameterJavaClasses.length];
-		for (int i = 0; i < parameterJavaClasses.length; i++) {
-			if (parameterJavaClasses[i] == null) {
-				throw new IllegalArgumentException("Missing parameter Java class: " + i); //$NON-NLS-1$
-			}
-			parameterTypeNames[i] = parameterJavaClasses[i].getName();
-		}
-		return parameterTypeNames;
-	}
-
-	/**
-	 * Construct a method signature for the specified Java method.
-	 */
-	public SimpleMethodSignature(Method method) {
-		this(method.getName(), method.getParameterTypes());
-	}
-
-
-	// ********** accessors **********
-
-	public String getName() {
-		return this.name;
-	}
-
-	public JavaType[] getParameterTypes() {
-		return this.parameterTypes;
-	}
-
-
-	// ********** comparison **********
-
-	public boolean describes(Method method) {
-		return this.name.equals(method.getName())
-				&& this.parameterTypesDescribe(method.getParameterTypes());
-	}
-
-	private boolean parameterTypesDescribe(Class<?>[] otherParameterTypes) {
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		if (otherParameterTypes.length != len) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if ( ! localParameterTypes[i].describes(otherParameterTypes[i])) {
-				return false;
-			}
-		}
-        return true;
-	}
-
-	public boolean equals(String otherName, JavaType[] otherParameterTypes) {
-		return this.name.equals(otherName)
-				&& Arrays.equals(this.parameterTypes, otherParameterTypes);
-	}
-
-	public boolean equals(MethodSignature other) {
-		return this.equals(other.getName(), other.getParameterTypes());
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return (this == o) ? true : (o instanceof MethodSignature) ? this.equals((MethodSignature) o) : false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.name.hashCode() ^ Arrays.hashCode(this.parameterTypes);
-	}
-
-
-	// ********** printing and displaying **********
-
-	public String getSignature() {
-		StringBuilder sb = new StringBuilder(200);
-		this.appendSignatureTo(sb);
-		return sb.toString();
-	}
-
-	public void appendSignatureTo(StringBuilder sb) {
-		sb.append(this.name);
-		sb.append('(');
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		for (int i = 0; i < len; i++) {
-			if (i != 0) {
-				sb.append(PARAMETER_SEPARATOR);
-			}
-			localParameterTypes[i].appendDeclarationTo(sb);
-		}
-		sb.append(')');
-	}
-
-	public void printSignatureOn(PrintWriter pw) {
-		pw.print(this.name);
-		pw.print('(');
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		for (int i = 0; i < len; i++) {
-			if (i != 0) {
-				pw.print(PARAMETER_SEPARATOR);
-			}
-			localParameterTypes[i].printDeclarationOn(pw);
-		}
-		pw.print(')');
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(this.getClass().getSimpleName());
-		sb.append('(');
-		this.appendSignatureTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java
deleted file mode 100644
index 5134aa9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.common.utility.ObjectReference;
-
-/**
- * Provide a container for passing an object that can be changed by the recipient.
- * 
- * @see SynchronizedObject
- */
-public class SimpleObjectReference<V>
-	implements ObjectReference<V>, Cloneable, Serializable
-{
-	/** Backing value. */
-	private volatile V value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create an object reference with the specified initial value.
-	 */
-	public SimpleObjectReference(V value) {
-		super();
-		this.value = value;
-	}
-
-	/**
-	 * Create an object reference with an initial value of
-	 * <code>null</code>.
-	 */
-	public SimpleObjectReference() {
-		this(null);
-	}
-
-
-	// ********** value **********
-
-	public V getValue() {
-		return this.value;
-	}
-
-	public boolean valueEquals(Object object) {
-		return Tools.valuesAreEqual(this.value, object);
-	}
-
-	public boolean valueNotEqual(Object object) {
-		return Tools.valuesAreDifferent(this.value, object);
-	}
-
-	public boolean isNull() {
-		return this.value == null;
-	}
-
-	public boolean isNotNull() {
-		return this.value != null;
-	}
-
-	public V setValue(V value) {
-		V old = this.value;
-		this.value = value;
-		return old;
-	}
-
-	public V setNull() {
-		return this.setValue(null);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SimpleObjectReference<V> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			SimpleObjectReference<V> clone = (SimpleObjectReference<V>) super.clone();
-			return clone;
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.value) + ']';
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java
deleted file mode 100644
index 02e026c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.LinkedList;
-
-/**
- * Straightforward implementation of the {@link Queue} interface.
- */
-public class SimpleQueue<E>
-	implements Queue<E>, Cloneable, Serializable
-{
-	private LinkedList<E> elements;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an empty queue.
-	 */
-	public SimpleQueue() {
-		super();
-		this.elements = new LinkedList<E>();
-	}
-
-	/**
-	 * Construct a queue containing the elements of the specified
-	 * collection. The queue will dequeue its elements in the same
-	 * order they are returned by the collection's iterator (i.e. the
-	 * first element returned by the collection's iterator will be the
-	 * first element returned by {@link #dequeue()}).
-	 */
-	public SimpleQueue(Collection<? extends E> c) {
-		super();
-		this.elements = new LinkedList<E>(c);
-	}
-
-
-	// ********** Queue implementation **********
-
-	public void enqueue(E o) {
-		this.elements.addLast(o);
-	}
-
-	public E dequeue() {
-		return this.elements.removeFirst();
-	}
-
-	public E peek() {
-		return this.elements.getFirst();
-	}
-
-	public boolean isEmpty() {
-		return this.elements.isEmpty();
-	}
-
-
-	// ********** Cloneable implementation **********
-
-	@Override
-	public SimpleQueue<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			SimpleQueue<E> clone = (SimpleQueue<E>) super.clone();
-			@SuppressWarnings("unchecked")
-			LinkedList<E> ll = (LinkedList<E>) this.elements.clone();
-			clone.elements = ll;
-			return clone;
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.peek());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java
deleted file mode 100644
index 3816b49..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.EmptyStackException;
-import java.util.LinkedList;
-import java.util.NoSuchElementException;
-
-/**
- * Straightforward implementation of the {@link Stack} interface.
- */
-public class SimpleStack<E>
-	implements Stack<E>, Cloneable, Serializable
-{
-	private LinkedList<E> elements;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an empty stack.
-	 */
-	public SimpleStack() {
-		super();
-		this.elements = new LinkedList<E>();
-	}
-
-	/**
-	 * Construct a stack containing the elements of the specified
-	 * collection. The stack will pop its elements in reverse of the
-	 * order they are returned by the collection's iterator (i.e. the
-	 * last element returned by the collection's iterator will be the
-	 * first element returned by {@link #pop()}).
-	 */
-	public SimpleStack(Collection<? extends E> collection) {
-		super();
-		this.elements = new LinkedList<E>(collection);
-	}
-
-
-	// ********** Stack implementation **********
-
-	public void push(E element) {
-		this.elements.addLast(element);
-	}
-
-	public E pop() {
-		try {
-			return this.elements.removeLast();
-		} catch (NoSuchElementException ex) {
-			throw new EmptyStackException();
-		}
-	}
-
-	public E peek() {
-		try {
-			return this.elements.getLast();
-		} catch (NoSuchElementException ex) {
-			throw new EmptyStackException();
-		}
-	}
-
-	public boolean isEmpty() {
-		return this.elements.isEmpty();
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SimpleStack<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			SimpleStack<E> clone = (SimpleStack<E>) super.clone();
-			@SuppressWarnings("unchecked")
-			LinkedList<E> ll = (LinkedList<E>) this.elements.clone();
-			clone.elements = ll;
-			return clone;
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.peek());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java
deleted file mode 100644
index 5f85f78..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.regex.Pattern;
-import org.eclipse.jpt.common.utility.Filter;
-
-// TODO the regex code is not very fast - we could probably do better,
-// hand-coding the matching algorithm (eclipse StringMatcher?)
-/**
- * This class implements a simple string-matching algorithm that is a little
- * more user-friendly than standard regular expressions. Instantiate a
- * string matcher with a filter pattern and then you can use the matcher
- * to determine whether another string (or object) matches the pattern.
- * You can also specify whether the matching should be case-sensitive.
- * 
- * The pattern can contain two "meta-characters":
- * 	'*' will match any set of zero or more characters
- * 	'?' will match any single character
- * 
- * Subclasses can override #prefix() and/or #suffix() to change what
- * strings are prepended or appended to the original pattern string.
- * This can offer a slight performance improvement over concatenating
- * strings before calling #setPatternString(String).
- * By default, a '*' is appended to every string.
- * 
- * This class also uses the string-matching algorithm to "filter" objects
- * (and, as a result, also implements the Filter interface).
- * A string converter is used to determine what string aspect of the
- * object is compared to the pattern. By default the string returned
- * by the object's #toString() method is passed to the pattern matcher.
- */
-public class SimpleStringMatcher<T>
-	implements StringMatcher, Filter<T>, Serializable
-{
-
-	/** An adapter that converts the objects into strings to be matched with the pattern. */
-	private StringConverter<T> stringConverter;
-
-	/** The string used to construct the regular expression pattern. */
-	private String patternString;
-
-	/** Whether the matcher ignores case - the default is true. */
-	private boolean ignoresCase;
-
-	/** The regular expression pattern built from the pattern string. */
-	private Pattern pattern;
-
-	/** A list of the meta-characters we need to escape if found in the pattern string. */
-	public static final char[] REG_EX_META_CHARS = { '(', '[', '{', '\\', '^', '$', '|', ')', '?', '*', '+', '.' };
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a string matcher with an pattern that will match
-	 * any string and ignore case.
-	 */
-	public SimpleStringMatcher() {
-		this("*"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Construct a string matcher with the specified pattern
-	 * that will ignore case.
-	 */
-	public SimpleStringMatcher(String patternString) {
-		this(patternString, true);
-	}
-
-	/**
-	 * Construct a string matcher with the specified pattern that will
-	 * ignore case as specified.
-	 */
-	public SimpleStringMatcher(String patternString, boolean ignoresCase) {
-		super();
-		this.patternString = patternString;
-		this.ignoresCase = ignoresCase;
-		this.initialize();
-	}
-
-
-	// ********** initialization **********
-
-	protected void initialize() {
-		this.stringConverter = StringConverter.Default.instance();
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Given the current pattern string and case-sensitivity setting,
-	 * re-build the regular expression pattern.
-	 */
-	protected synchronized void rebuildPattern() {
-		this.pattern = this.buildPattern();
-	}
-
-	/**
-	 * Given the current pattern string and case-sensitivity setting,
-	 * build and return a regular expression pattern that can be used
-	 * to match strings.
-	 */
-	protected Pattern buildPattern() {
-		int patternFlags = 0x0;
-		if (this.ignoresCase) {
-			patternFlags = Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE;
-		}
-		return Pattern.compile(this.convertToRegEx(this.patternString), patternFlags);
-	}
-
-
-	// ********** StringMatcher implementation **********
-
-	public synchronized void setPatternString(String patternString) {
-		this.patternString = patternString;
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Return whether the specified string matches the pattern.
-	 */
-	public synchronized boolean matches(String string) {
-		return this.pattern.matcher(string).matches();
-	}
-
-
-	// ********** Filter implementation **********
-
-	public synchronized boolean accept(T o) {
-		return this.matches(this.stringConverter.convertToString(o));
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the string converter used to convert the objects
-	 * passed to the matcher into strings.
-	 */
-	public synchronized StringConverter<T> stringConverter() {
-		return this.stringConverter;
-	}
-
-	/**
-	 * Set the string converter used to convert the objects
-	 * passed to the matcher into strings.
-	 */
-	public synchronized void setStringConverter(StringConverter<T> stringConverter) {
-		this.stringConverter = stringConverter;
-	}
-
-	/**
-	 * Return the original pattern string.
-	 */
-	public synchronized String patternString() {
-		return this.patternString;
-	}
-
-	/**
-	 * Return whether the matcher ignores case.
-	 */
-	public synchronized boolean ignoresCase() {
-		return this.ignoresCase;
-	}
-
-	/**
-	 * Set whether the matcher ignores case.
-	 */
-	public synchronized void setIgnoresCase(boolean ignoresCase) {
-		this.ignoresCase = ignoresCase;
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Return the regular expression pattern.
-	 */
-	public synchronized Pattern pattern() {
-		return this.pattern;
-	}
-
-
-	// ********** other public API **********
-
-	/**
-	 * Return the regular expression corresponding to
-	 * the original pattern string.
-	 */
-	public synchronized String regularExpression() {
-		return this.convertToRegEx(this.patternString);
-	}
-
-
-	// ********** converting **********
-
-	/**
-	 * Convert the specified string to a regular expression.
-	 */
-	protected String convertToRegEx(String string) {
-		StringBuffer sb = new StringBuffer(string.length() + 10);
-		this.convertToRegExOn(this.prefix(), sb);
-		this.convertToRegExOn(string, sb);
-		this.convertToRegExOn(this.suffix(), sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Return any prefix that should be prepended to the original
-	 * string. By default, there is no prefix.
-	 */
-	protected String prefix() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Return any suffix that should be appended to the original
-	 * string. Since this class is typically used in UI situation where
-	 * the user is typing in a pattern used to filter a list, the default
-	 * suffix is a wildcard character.
-	 */
-	protected String suffix() {
-		return "*"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Convert the specified string to a regular expression.
-	 */
-	protected void convertToRegExOn(String string, StringBuffer sb) {
-		char[] charArray = string.toCharArray();
-		int length = charArray.length;
-		for (int i = 0; i < length; i++) {
-			char c = charArray[i];
-			// convert user-friendly meta-chars into regex meta-chars
-			if (c == '*') {
-				sb.append(".*"); //$NON-NLS-1$
-				continue;
-			}
-			if (c == '?') {
-				sb.append('.');
-				continue;
-			}
-			// escape regex meta-chars
-			if (ArrayTools.contains(REG_EX_META_CHARS, c)) {
-				sb.append('\\');
-			}
-			sb.append(c);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java
deleted file mode 100644
index 4c2bbb0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.util.concurrent.ThreadFactory;
-
-/**
- * A <code>SimpleThreadFactory</code> is a straightforward implementation of
- * the JDK {@link ThreadFactory}.
- */
-public class SimpleThreadFactory
-	implements ThreadFactory
-{
-	// singleton
-	private static final SimpleThreadFactory INSTANCE = new SimpleThreadFactory();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static ThreadFactory instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private SimpleThreadFactory() {
-		super();
-	}
-
-	public Thread newThread(Runnable r) {
-		return new Thread(r);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java
deleted file mode 100644
index 88186bf..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.EmptyStackException;
-
-/**
- * Interface defining the classic stack behavior,
- * without the backdoors allowed by {@link java.util.Stack}.
- * 
- * @param <E> the type of elements contained by the stack
- */
-public interface Stack<E> {
-
-	/**
-	 * "Push" the specified item on to the top of the stack.
-	 */
-	void push(E element);
-
-	/**
-	 * "Pop" an item from the top of the stack.
-	 */
-	E pop();
-
-	/**
-	 * Return the item on the top of the stack
-	 * without removing it from the stack.
-	 */
-	E peek();
-
-	/**
-	 * Return whether the stack is empty.
-	 */
-	boolean isEmpty();
-
-
-	final class Empty<E> implements Stack<E>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Stack INSTANCE = new Empty();
-		@SuppressWarnings("unchecked")
-		public static <T> Stack<T> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Empty() {
-			super();
-		}
-		public void push(E element) {
-			throw new UnsupportedOperationException();
-		}
-		public E pop() {
-			throw new EmptyStackException();
-		}
-		public E peek() {
-			throw new EmptyStackException();
-		}
-		public boolean isEmpty() {
-			return true;
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java
deleted file mode 100644
index 97e99de..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.CommandExecutor;
-
-/**
- * This interface allows clients to control how a command is executed.
- * This is useful when the server provides the command but the client provides
- * the context (e.g. the client would like to dispatch the command to the UI
- * thread).
- */
-public interface StatefulCommandExecutor
-	extends CommandExecutor
-{
-	/**
-	 * Start the command executor.
-	 */
-	void start();
-
-	/**
-	 * Stop the command executor.
-	 */
-	void stop();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java
deleted file mode 100644
index 412c9c1..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * into strings.
- */
-public interface StringConverter<T> {
-
-	/**
-	 * Convert the specified object into a string.
-	 * The semantics of "convert" is determined by the
-	 * contract between the client and the server.
-	 */
-	String convertToString(T o);
-
-
-	final class Default<S> implements StringConverter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final StringConverter INSTANCE = new Default();
-		@SuppressWarnings("unchecked")
-		public static <R> StringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		// simply return the object's #toString() result
-		public String convertToString(S o) {
-			return (o == null) ? null : o.toString();
-		}
-		@Override
-		public String toString() {
-			return "StringConverter.Default"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	final class Disabled<S> implements StringConverter<S>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final StringConverter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> StringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public String convertToString(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "StringConverter.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java
deleted file mode 100644
index c66900e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * This interface defines a simple API for allowing "pluggable"
- * string matchers that can be configured with a pattern string
- * then used to determine what strings match the pattern.
- */
-public interface StringMatcher {
-
-	/**
-	 * Set the pattern string used to determine future
-	 * matches. The format and semantics of the pattern
-	 * string are determined by the contract between the
-	 * client and the server.
-	 */
-	void setPatternString(String patternString);
-
-	/**
-	 * Return whether the specified string matches the
-	 * established pattern string. The semantics of a match
-	 * is determined by the contract between the
-	 * client and the server.
-	 */
-	boolean matches(String string);
-
-
-	final class Null implements StringMatcher, Serializable {
-		public static final StringMatcher INSTANCE = new Null();
-		public static StringMatcher instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void setPatternString(String patternString) {
-			// ignore the pattern string
-		}
-		public boolean matches(String string) {
-			// everything is a match
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "StringMatcher.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java
deleted file mode 100644
index 0eab3b6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java
+++ /dev/null
@@ -1,4708 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-
-/**
- * Convenience methods related to the java.lang.String class.
- *
- * As of jdk 1.5, it's tempting to convert all of these methods to use
- * java.lang.Appendable (instead of StringBuffer, StringBuilder, and Writer);
- * but all the Appendable methods throw java.io.IOException (yech) and we
- * [might?] get a bit better performance invoking methods on classes than
- * we get on interfaces. :-)
- */
-public final class StringTools {
-
-	/** carriage return */
-	public static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	/** double quote */
-	public static final char QUOTE = '"';
-
-	/** parenthesis */
-	public static final char OPEN_PARENTHESIS = '(';
-	public static final char CLOSE_PARENTHESIS = ')';
-
-	/** brackets */
-	public static final char OPEN_BRACKET = '[';
-	public static final char CLOSE_BRACKET = ']';
-
-	/** brackets */
-	public static final char OPEN_BRACE = '{';
-	public static final char CLOSE_BRACE = '}';
-
-	/** brackets */
-	public static final char OPEN_CHEVRON = '<';
-	public static final char CLOSE_CHEVRON = '>';
-
-	/** empty string */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	/** empty char array */
-	public static final char[] EMPTY_CHAR_ARRAY = new char[0];
-
-	/** empty string array */
-	public static final String[] EMPTY_STRING_ARRAY = new String[0];
-
-
-
-	// ********** padding/truncating **********
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#pad(int)
-	 */
-	public static String pad(String string, int length) {
-		return pad(string, length, ' ');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, Writer)
-	 */
-	public static void padOn(String string, int length, Writer writer) {
-		padOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuffer)
-	 */
-	public static void padOn(String string, int length, StringBuffer sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuilder)
-	 */
-	public static void padOn(String string, int length, StringBuilder sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#pad(int, char)
-	 */
-	public static String pad(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, Writer)
-	 */
-	public static void padOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuffer)
-	 */
-	public static void padOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuilder)
-	 */
-	public static void padOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#pad(int)
-	 */
-	public static char[] pad(char[] string, int length) {
-		return pad(string, length, ' ');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, writer)
-	 */
-	public static void padOn(char[] string, int length, Writer writer) {
-		padOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuffer)
-	 */
-	public static void padOn(char[] string, int length, StringBuffer sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuilder)
-	 */
-	public static void padOn(char[] string, int length, StringBuilder sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#pad(int, char)
-	 */
-	public static char[] pad(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, Writer)
-	 */
-	public static void padOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuffer)
-	 */
-	public static void padOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuilder)
-	 */
-	public static void padOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncate(int)
-	 */
-	public static String padOrTruncate(String string, int length) {
-		return padOrTruncate(string, length, ' ');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, Writer)
-	 */
-	public static void padOrTruncateOn(String string, int length, Writer writer) {
-		padOrTruncateOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuffer)
-	 */
-	public static void padOrTruncateOn(String string, int length, StringBuffer sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuilder)
-	 */
-	public static void padOrTruncateOn(String string, int length, StringBuilder sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncate(int, char)
-	 */
-	public static String padOrTruncate(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			return string.substring(0, length);
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, Writer)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string.substring(0, length), writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(0, length));
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(0, length));
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncate(int)
-	 */
-	public static char[] padOrTruncate(char[] string, int length) {
-		return padOrTruncate(string, length, ' ');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, Writer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, Writer writer) {
-		padOrTruncateOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuffer)
-	 */
-	public static void padOrTruncate(char[] string, int length, StringBuffer sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuilder)
-	 */
-	public static void padOrTruncate(char[] string, int length, StringBuilder sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncate(int, char)
-	 */
-	public static char[] padOrTruncate(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			char[] result = new char[length];
-			System.arraycopy(string, 0, result, 0, length);
-			return result;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, Writer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string, 0, length, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, 0, length);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, 0, length);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static String pad_(String string, int length, char c) {
-		return new String(pad_(string.toCharArray(), length, c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, Writer writer) {
-		writeStringOn(string, writer);
-		fill_(string, length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, Writer writer) {
-		fill_(string.length(), length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, Writer writer) {
-		fill_(string.length, length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, Writer writer) {
-		writeStringOn(ArrayTools.fill(new char[length - stringLength], c), writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, StringBuffer sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, StringBuffer sb) {
-		fill_(string.length(), length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, StringBuffer sb) {
-		fill_(string.length, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, StringBuffer sb) {
-		sb.append(ArrayTools.fill(new char[length - stringLength], c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, StringBuilder sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, StringBuilder sb) {
-		fill_(string.length(), length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, StringBuilder sb) {
-		fill_(string.length, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, StringBuilder sb) {
-		sb.append(ArrayTools.fill(new char[length - stringLength], c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static char[] pad_(char[] string, int length, char c) {
-		char[] result = new char[length];
-		int stringLength = string.length;
-		System.arraycopy(string, 0, result, 0, stringLength);
-		Arrays.fill(result, stringLength, length, c);
-		return result;
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, Writer writer) {
-		writeStringOn(string, writer);
-		fill_(string, length, c, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, StringBuffer sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, StringBuilder sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPad(int)
-	 */
-	public static String zeroPad(String string, int length) {
-		return frontPad(string, length, '0');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, Writer)
-	 */
-	public static void zeroPadOn(String string, int length, Writer writer) {
-		frontPadOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuffer)
-	 */
-	public static void zeroPadOn(String string, int length, StringBuffer sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuilder)
-	 */
-	public static void zeroPadOn(String string, int length, StringBuilder sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPad(int, char)
-	 */
-	public static String frontPad(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, Writer)
-	 */
-	public static void frontPadOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPad(int)
-	 */
-	public static char[] zeroPad(char[] string, int length) {
-		return frontPad(string, length, '0');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, Writer)
-	 */
-	public static void zeroPadOn(char[] string, int length, Writer writer) {
-		frontPadOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuffer)
-	 */
-	public static void zeroPadOn(char[] string, int length, StringBuffer sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuilder)
-	 */
-	public static void zeroPadOn(char[] string, int length, StringBuilder sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPad(int, char)
-	 */
-	public static char[] frontPad(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, Writer)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncate(int)
-	 */
-	public static String zeroPadOrTruncate(String string, int length) {
-		return frontPadOrTruncate(string, length, '0');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, Writer)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, Writer writer) {
-		frontPadOrTruncateOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuffer)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, StringBuffer sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuilder)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, StringBuilder sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncate(int, char)
-	 */
-	public static String frontPadOrTruncate(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			return string.substring(stringLength - length);
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, Writer)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string.substring(stringLength - length), writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(stringLength - length));
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(stringLength - length));
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncate(int)
-	 */
-	public static char[] zeroPadOrTruncate(char[] string, int length) {
-		return frontPadOrTruncate(string, length, '0');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, Writer)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, Writer writer) {
-		frontPadOrTruncateOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuffer)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, StringBuffer sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuilder)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, StringBuilder sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncate(int, char)
-	 */
-	public static char[] frontPadOrTruncate(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			char[] result = new char[length];
-			System.arraycopy(string, stringLength - length, result, 0, length);
-			return result;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, Writer)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string, stringLength - length, length, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, stringLength - length, length);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, stringLength - length, length);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/*
-	 * Front-pad the specified string without validating the parms.
-	 */
-	private static String frontPad_(String string, int length, char c) {
-		return new String(frontPad_(string.toCharArray(), length, c));
-	}
-
-	/*
-	 * Zero-pad the specified string without validating the parms.
-	 */
-	private static char[] frontPad_(char[] string, int length, char c) {
-		char[] result = new char[length];
-		int stringLength = string.length;
-		int padLength = length - stringLength;
-		System.arraycopy(string, 0, result, padLength, stringLength);
-		Arrays.fill(result, 0, padLength, c);
-		return result;
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, Writer writer) {
-		fill_(string, length, c, writer);
-		writeStringOn(string, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, Writer writer) {
-		fill_(string, length, c, writer);
-		writeStringOn(string, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, StringBuffer sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, StringBuffer sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, StringBuilder sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, StringBuilder sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-
-	// ********** separating **********
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static String separate(String string, char separator, int segmentSize) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		int len = string.length();
-		return (len <= segmentSize) ? string : new String(separate(string.toCharArray(), separator, segmentSize, len));
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(String string, char separator, int segmentSize, Writer writer) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length() <= segmentSize) {
-			writeStringOn(string, writer);
-		} else {
-			separateOn_(string.toCharArray(), separator, segmentSize, writer);
-		}
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(String string, char separator, int segmentSize, StringBuffer sb) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length() <= segmentSize) {
-			sb.append(string);
-		} else {
-			separateOn_(string.toCharArray(), separator, segmentSize, sb);
-		}
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(String string, char separator, int segmentSize, StringBuilder sb) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length() <= segmentSize) {
-			sb.append(string);
-		} else {
-			separateOn_(string.toCharArray(), separator, segmentSize, sb);
-		}
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static char[] separate(char[] string, char separator, int segmentSize) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		int len = string.length;
-		return (len <= segmentSize) ? string : separate(string, separator, segmentSize, len);
-	}
-
-	/**
-	 * pre-conditions: string is longer than segment size; segment size is positive
-	 */
-	private static char[] separate(char[] string, char separator, int segmentSize, int len) {
-		int resultLen = len + (len / segmentSize);
-		if ((len % segmentSize) == 0) {
-			resultLen--;  // no separator after the final segment if nothing following it
-		}
-		char[] result = new char[resultLen];
-		int j = 0;
-		int segCount = 0;
-		for (char c : string) {
-			if (segCount == segmentSize) {
-				result[j++] = separator;
-				segCount = 0;
-			}
-			segCount++;
-			result[j++] = c;
-		}
-		return result;
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(char[] string, char separator, int segmentSize, Writer writer) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length <= segmentSize) {
-			writeStringOn(string, writer);
-		} else {
-			separateOn_(string, separator, segmentSize, writer);
-		}
-	}
-
-	/**
-	 * pre-conditions: string is longer than segment size; segment size is positive
-	 */
-	private static void separateOn_(char[] string, char separator, int segmentSize, Writer writer) {
-		int segCount = 0;
-		for (char c : string) {
-			if (segCount == segmentSize) {
-				writeCharOn(separator, writer);
-				segCount = 0;
-			}
-			segCount++;
-			writeCharOn(c, writer);
-		}
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(char[] string, char separator, int segmentSize, StringBuffer sb) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length <= segmentSize) {
-			sb.append(string);
-		} else {
-			separateOn_(string, separator, segmentSize, sb);
-		}
-	}
-
-	/**
-	 * pre-conditions: string is longer than segment size; segment size is positive
-	 */
-	private static void separateOn_(char[] string, char separator, int segmentSize, StringBuffer sb) {
-		int segCount = 0;
-		for (char c : string) {
-			if (segCount == segmentSize) {
-				sb.append(separator);
-				segCount = 0;
-			}
-			segCount++;
-			sb.append(c);
-		}
-	}
-
-	/**
-	 * Separate the segments of the specified string with the specified
-	 * separator:<pre>
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * </pre>
-	 */
-	public static void separateOn(char[] string, char separator, int segmentSize, StringBuilder sb) {
-		if (segmentSize <= 0) {
-			throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$
-		}
-		if (string.length <= segmentSize) {
-			sb.append(string);
-		} else {
-			separateOn_(string, separator, segmentSize, sb);
-		}
-	}
-
-	/**
-	 * pre-conditions: string is longer than segment size; segment size is positive
-	 */
-	private static void separateOn_(char[] string, char separator, int segmentSize, StringBuilder sb) {
-		int segCount = 0;
-		for (char c : string) {
-			if (segCount == segmentSize) {
-				sb.append(separator);
-				segCount = 0;
-			}
-			segCount++;
-			sb.append(c);
-		}
-	}
-
-
-	// ********** delimiting/quoting **********
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static String quote(String string) {
-		return delimit(string, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, Writer writer) {
-		delimitOn(string, QUOTE, writer);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, StringBuffer sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, StringBuilder sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with double quotes.
-	 * Escape any occurrences of a double quote in a string with another
-	 * double quote.
-	 */
-	public static Iterator<String> quote(Iterator<String> strings) {
-		return delimit(strings, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static String delimit(String string, char delimiter) {
-		return new String(delimit(string.toCharArray(), delimiter));
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, Writer writer) {
-		delimitOn(string.toCharArray(), delimiter, writer);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, StringBuffer sb) {
-		delimitOn(string.toCharArray(), delimiter, sb);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, StringBuilder sb) {
-		delimitOn(string.toCharArray(), delimiter, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	public static Iterable<String> delimit(Iterable<String> strings, char delimiter) {
-		return new TransformationIterable<String, String>(strings, new CharStringDelimiter(delimiter));
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	public static Iterator<String> delimit(Iterator<String> strings, char delimiter) {
-		return new TransformationIterator<String, String>(strings, new CharStringDelimiter(delimiter));
-	}
-
-	private static class CharStringDelimiter implements Transformer<String, String> {
-		private char delimiter;
-		CharStringDelimiter(char delimiter) {
-			super();
-			this.delimiter = delimiter;
-		}
-		public String transform(String string) {
-			return StringTools.delimit(string, this.delimiter);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static String delimit(String string, String delimiter) {
-		if (delimiter.length() == 1) {
-			return delimit(string, delimiter.charAt(0));
-		}
-		return new String(delimit(string.toCharArray(), delimiter.toCharArray()));
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, Writer writer) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), writer);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), writer);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, StringBuffer sb) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), sb);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), sb);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, StringBuilder sb) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), sb);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), sb);
-		}
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	public static Iterable<String> delimit(Iterable<String> strings, String delimiter) {
-		return (delimiter.length() == 1) ?
-				delimit(strings, delimiter.charAt(0)) :
-				new TransformationIterable<String, String>(strings, new StringStringDelimiter(delimiter));
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	public static Iterator<String> delimit(Iterator<String> strings, String delimiter) {
-		return (delimiter.length() == 1) ?
-				delimit(strings, delimiter.charAt(0)) :
-				new TransformationIterator<String, String>(strings, new StringStringDelimiter(delimiter));
-	}
-
-	private static class StringStringDelimiter implements Transformer<String, String> {
-		private String delimiter;
-		StringStringDelimiter(String delimiter) {
-			super();
-			this.delimiter = delimiter;
-		}
-		public String transform(String string) {
-			return StringTools.delimit(string, this.delimiter);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static char[] quote(char[] string) {
-		return delimit(string, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, Writer writer) {
-		delimitOn(string, QUOTE, writer);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, StringBuffer sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, StringBuilder sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with double quotes.
-	 * Escape any occurrences of a double quote in a string with another
-	 * double quote.
-	 */
-	// cannot name method simply 'quote' because of type-erasure...
-	public static Iterator<char[]> quoteCharArrays(Iterator<char[]> strings) {
-		return delimitCharArrays(strings, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static char[] delimit(char[] string, char delimiter) {
-		StringBuilder sb = new StringBuilder(string.length + 2);
-		delimitOn(string, delimiter, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, Writer writer) {
-		writeCharOn(delimiter, writer);
-		writeStringOn(string, delimiter, writer);
-		writeCharOn(delimiter, writer);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, StringBuffer sb) {
-		sb.append(delimiter);
-		for (char c : string) {
-			if (c == delimiter) {
-				sb.append(c);
-			}
-			sb.append(c);
-		}
-		sb.append(delimiter);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, StringBuilder sb) {
-		sb.append(delimiter);
-		for (char c : string) {
-			if (c == delimiter) {
-				sb.append(c);
-			}
-			sb.append(c);
-		}
-		sb.append(delimiter);
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterable<char[]> delimitCharArrays(Iterable<char[]> strings, char delimiter) {
-		return new TransformationIterable<char[], char[]>(strings, new CharCharArrayDelimiter(delimiter));
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterator<char[]> delimitCharArrays(Iterator<char[]> strings, char delimiter) {
-		return new TransformationIterator<char[], char[]>(strings, new CharCharArrayDelimiter(delimiter));
-	}
-
-	private static class CharCharArrayDelimiter implements Transformer<char[], char[]> {
-		private char delimiter;
-		CharCharArrayDelimiter(char delimiter) {
-			super();
-			this.delimiter = delimiter;
-		}
-		public char[] transform(char[] string) {
-			return StringTools.delimit(string, this.delimiter);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static char[] delimit(char[] string, char[] delimiter) {
-		int delimiterLength = delimiter.length;
-		if (delimiterLength == 1) {
-			return delimit(string, delimiter[0]);
-		}
-		int stringLength = string.length;
-		char[] result = new char[stringLength+(2*delimiterLength)];
-		System.arraycopy(delimiter, 0, result, 0, delimiterLength);
-		System.arraycopy(string, 0, result, delimiterLength, stringLength);
-		System.arraycopy(delimiter, 0, result, stringLength+delimiterLength, delimiterLength);
-		return result;
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, Writer writer) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], writer);
-		} else {
-			writeStringOn(delimiter, writer);
-			writeStringOn(string, writer);
-			writeStringOn(delimiter, writer);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, StringBuffer sb) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], sb);
-		} else {
-			sb.append(delimiter);
-			sb.append(string);
-			sb.append(delimiter);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, StringBuilder sb) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], sb);
-		} else {
-			sb.append(delimiter);
-			sb.append(string);
-			sb.append(delimiter);
-		}
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterable<char[]> delimitCharArrays(Iterable<char[]> strings, char[] delimiter) {
-		return new TransformationIterable<char[], char[]>(strings, new CharArrayCharArrayDelimiter(delimiter));
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterator<char[]> delimitCharArrays(Iterator<char[]> strings, char[] delimiter) {
-		return new TransformationIterator<char[], char[]>(strings, new CharArrayCharArrayDelimiter(delimiter));
-	}
-
-	private static class CharArrayCharArrayDelimiter implements Transformer<char[], char[]> {
-		private char[] delimiter;
-		CharArrayCharArrayDelimiter(char[] delimiter) {
-			super();
-			this.delimiter = delimiter;
-		}
-		public char[] transform(char[] string) {
-			return StringTools.delimit(string, this.delimiter);
-		}
-	}
-
-
-	// ********** delimiting queries **********
-
-	/**
-	 * Return whether the specified string is quoted: "\"foo\"".
-	 */
-	public static boolean stringIsQuoted(String string) {
-		return stringIsDelimited(string, QUOTE);
-	}
-
-	/**
-	 * Return whether the specified string is parenthetical: "(foo)".
-	 */
-	public static boolean stringIsParenthetical(String string) {
-		return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS);
-	}
-
-	/**
-	 * Return whether the specified string is bracketed: "[foo]".
-	 */
-	public static boolean stringIsBracketed(String string) {
-		return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET);
-	}
-
-	/**
-	 * Return whether the specified string is braced: "{foo}".
-	 */
-	public static boolean stringIsBraced(String string) {
-		return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE);
-	}
-
-	/**
-	 * Return whether the specified string is chevroned: "<foo>".
-	 */
-	public static boolean stringIsChevroned(String string) {
-		return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * character.
-	 */
-	public static boolean stringIsDelimited(String string, char c) {
-		return stringIsDelimited(string, c, c);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * characters.
-	 */
-	public static boolean stringIsDelimited(String string, char start, char end) {
-		int len = string.length();
-		if (len < 2) {
-			return false;
-		}
-		return stringIsDelimited(string.toCharArray(), start, end, len);
-	}
-
-	/**
-	 * Return whether the specified string is quoted: "\"foo\"".
-	 */
-	public static boolean stringIsQuoted(char[] string) {
-		return stringIsDelimited(string, QUOTE);
-	}
-
-	/**
-	 * Return whether the specified string is parenthetical: "(foo)".
-	 */
-	public static boolean stringIsParenthetical(char[] string) {
-		return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS);
-	}
-
-	/**
-	 * Return whether the specified string is bracketed: "[foo]".
-	 */
-	public static boolean stringIsBracketed(char[] string) {
-		return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET);
-	}
-
-	/**
-	 * Return whether the specified string is braced: "{foo}".
-	 */
-	public static boolean stringIsBraced(char[] string) {
-		return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE);
-	}
-
-	/**
-	 * Return whether the specified string is chevroned: "<foo>".
-	 */
-	public static boolean stringIsChevroned(char[] string) {
-		return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * character.
-	 */
-	public static boolean stringIsDelimited(char[] string, char c) {
-		return stringIsDelimited(string, c, c);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * characters.
-	 */
-	public static boolean stringIsDelimited(char[] string, char start, char end) {
-		int len = string.length;
-		if (len < 2) {
-			return false;
-		}
-		return stringIsDelimited(string, start, end, len);
-	}
-
-	private static boolean stringIsDelimited(char[] s, char start, char end, int len) {
-		return (s[0] == start) && (s[len - 1] == end);
-	}
-
-
-	// ********** undelimiting **********
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static String undelimit(String string) {
-		int len = string.length() - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_STRING;
-		}
-		return new String(undelimit_(string.toCharArray(), len));
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static String undelimit(String string, int count) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_STRING;
-		}
-		return new String(undelimit(string.toCharArray(), len, count));
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static char[] undelimit(char[] string) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		return undelimit_(string, len);
-	}
-
-	private static char[] undelimit_(char[] string, int length) {
-		StringBuilder sb = new StringBuilder(length);
-		undelimitOn_(string, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static char[] undelimit(char[] string, int count) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		return undelimit(string, len, count);
-	}
-
-	private static char[] undelimit(char[] string, int len, int count) {
-		char[] result = new char[len];
-		System.arraycopy(string, count, result, 0, len);
-		return result;
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, Writer writer) {
-		undelimitOn(string.toCharArray(), writer);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, Writer writer) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		writeStringOn(string, count, len, writer);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, StringBuffer sb) {
-		undelimitOn(string.toCharArray(), sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, StringBuffer sb) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, count + len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, StringBuilder sb) {
-		undelimitOn(string.toCharArray(), sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, StringBuilder sb) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, count + len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, Writer writer) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, writer);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, Writer writer) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			writeCharOn(c, writer);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, Writer writer) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		writeStringOn(string, count, len, writer);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, StringBuffer sb) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, sb);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, StringBuffer sb) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			sb.append(c);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, StringBuffer sb) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, StringBuilder sb) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, sb);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, StringBuilder sb) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			sb.append(c);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, StringBuilder sb) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, len);
-	}
-
-
-	// ********** removing characters **********
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and return the result.
-	 * String#removeFirstOccurrence(char)
-	 */
-	public static String removeFirstOccurrence(String string, char c) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			// character not found
-			return string;
-		}
-		if (index == 0) {
-			// character found at the front of string
-			return string.substring(1);
-		}
-		int last = string.length() - 1;
-		if (index == last) {
-			// character found at the end of string
-			return string.substring(0, last);
-		}
-		// character found somewhere in the middle of the string
-		return string.substring(0, index).concat(string.substring(index + 1));
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, Writer)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, Writer writer) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, writer);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuffer)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, StringBuffer sb) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, sb);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuilder)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, StringBuilder sb) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, sb);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and return the result.
-	 * String#removeFirstOccurrence(char)
-	 */
-	public static char[] removeFirstOccurrence(char[] string, char c) {
-		int index = ArrayTools.indexOf(string, c);
-		if (index == -1) {
-			// character not found
-			return string;
-		}
-		int last = string.length - 1;
-		char[] result = new char[last];
-		if (index == 0) {
-			// character found at the front of string
-			System.arraycopy(string, 1, result, 0, last);
-		} else if (index == last) {
-			// character found at the end of string
-			System.arraycopy(string, 0, result, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			System.arraycopy(string, 0, result, 0, index);
-			System.arraycopy(string, index + 1, result, index, last - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, Writer)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, Writer writer) {
-		int index = ArrayTools.indexOf(string, c);
-		if (index == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeCharAtIndexOn(string, index, writer);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, Writer writer) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			writeStringOn(string, 1, last, writer);
-		} else if (index == last) {
-			// character found at the end of string
-			writeStringOn(string, 0, last, writer);
-		} else {
-			// character found somewhere in the middle of the string
-			writeStringOn(string, 0, index, writer);
-			writeStringOn(string, index + 1, last - index, writer);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuffer)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, StringBuffer sb) {
-		int index = ArrayTools.indexOf(string, c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string, index, sb);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, StringBuffer sb) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			sb.append(string, 1, last);
-		} else if (index == last) {
-			// character found at the end of string
-			sb.append(string, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			sb.append(string, 0, index);
-			sb.append(string, index + 1, last - index);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuilder)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, StringBuilder sb) {
-		int index = ArrayTools.indexOf(string, c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string, index, sb);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, StringBuilder sb) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			sb.append(string, 1, last);
-		} else if (index == last) {
-			// character found at the end of string
-			sb.append(string, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			sb.append(string, 0, index);
-			sb.append(string, index + 1, last - index);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and return the result.
-	 * String#removeAllOccurrences(char)
-	 */
-	public static String removeAllOccurrences(String string, char c) {
-		int first = string.indexOf(c);
-		return (first == -1) ? string : new String(removeAllOccurrences_(string.toCharArray(), c, first));
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, Writer)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, Writer writer) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, writer);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, StringBuffer)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, StringBuffer sb) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, StringBuilder)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, StringBuilder sb) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and return the result.
-	 * String#removeAllOccurrences(char)
-	 */
-	public static char[] removeAllOccurrences(char[] string, char c) {
-		int first = ArrayTools.indexOf(string, c);
-		return (first == -1) ? string : removeAllOccurrences_(string, c, first);
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static char[] removeAllOccurrences_(char[] string, char c, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		removeAllOccurrencesOn_(string, c, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the
-	 * specified writer.
-	 * String#removeAllOccurrencesOn(char, Writer)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, Writer writer) {
-		int first = ArrayTools.indexOf(string, c);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				writeCharOn(d, writer);
-			}
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllOccurrencesOn(char, StringBuffer)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, StringBuffer sb) {
-		int first = ArrayTools.indexOf(string, c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				sb.append(d);
-			}
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllOccurrencesOn(char, StringBuilder)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, StringBuilder sb) {
-		int first = ArrayTools.indexOf(string, c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				sb.append(d);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the spaces from the specified string and return the result.
-	 * String#removeAllSpaces()
-	 */
-	public static String removeAllSpaces(String string) {
-		return removeAllOccurrences(string, ' ');
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified writer.
-	 * String#removeAllSpacesOn(Writer)
-	 */
-	public static void removeAllSpacesOn(String string, Writer writer) {
-		removeAllOccurrencesOn(string, ' ', writer);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified
-	 * string buffer.
-	 * String#removeAllSpacesOn(StringBuffer)
-	 */
-	public static void removeAllSpacesOn(String string, StringBuffer sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified
-	 * string builder.
-	 * String#removeAllSpacesOn(StringBuilder)
-	 */
-	public static void removeAllSpacesOn(String string, StringBuilder sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces from the specified string and return the result.
-	 * String#removeAllSpaces()
-	 */
-	public static char[] removeAllSpaces(char[] string) {
-		return removeAllOccurrences(string, ' ');
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the
-	 * specified writer.
-	 * String#removeAllSpacesOn(Writer)
-	 */
-	public static void removeAllSpacesOn(char[] string, Writer writer) {
-		removeAllOccurrencesOn(string, ' ', writer);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllSpacesOn(StringBuffer)
-	 */
-	public static void removeAllSpacesOn(char[] string, StringBuffer sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllSpacesOn(StringBuilder)
-	 */
-	public static void removeAllSpacesOn(char[] string, StringBuilder sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the whitespace from the specified string and return the result.
-	 * String#removeAllWhitespace()
-	 */
-	public static String removeAllWhitespace(String string) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		return (first == -1) ? string : new String(removeAllWhitespace_(string2, first));
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified writer.
-	 * String#removeAllWhitespaceOn(Writer)
-	 */
-	public static void removeAllWhitespaceOn(String string, Writer writer) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllWhitespaceOn_(string2, first, writer);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllWhitespaceOn(StringBuffer)
-	 */
-	public static void removeAllWhitespaceOn(String string, StringBuffer sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllWhitespaceOn(StringBuilder)
-	 */
-	public static void removeAllWhitespaceOn(String string, StringBuilder sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace from the specified string and return the result.
-	 * String#removeAllWhitespace()
-	 */
-	public static char[] removeAllWhitespace(char[] string) {
-		int first = indexOfWhitespace_(string);
-		return (first == -1) ? string : removeAllWhitespace_(string, first);
-	}
-
-	private static int indexOfWhitespace_(char[] string) {
-		int len = string.length;
-		for (int i = 0; i < len; i++) {
-			if (Character.isWhitespace(string[i])) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/*
-	 * The index of the first non-whitespace character is passed in.
-	 */
-	private static char[] removeAllWhitespace_(char[] string, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		removeAllWhitespaceOn_(string, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified writer.
-	 * String#removeAllWhitespaceOn(Writer)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, Writer writer) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllWhitespaceOn_(string, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				writeCharOn(c, writer);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllWhitespaceOn(StringBuffer)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, StringBuffer sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				sb.append(c);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllWhitespaceOn(StringBuilder)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, StringBuilder sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				sb.append(c);
-			}
-		}
-	}
-//===============================
-	/**
-	 * Compress the whitespace in the specified string and return the result.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespace()
-	 */
-	public static String compressWhitespace(String string) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		return (first == -1) ? string : new String(compressWhitespace_(string2, first));
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified writer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(Writer)
-	 */
-	public static void compressWhitespaceOn(String string, Writer writer) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			compressWhitespaceOn_(string2, first, writer);
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string buffer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuffer)
-	 */
-	public static void compressWhitespaceOn(String string, StringBuffer sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string builder.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuilder)
-	 */
-	public static void compressWhitespaceOn(String string, StringBuilder sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Compress the whitespace in the specified string and return the result.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespace()
-	 */
-	public static char[] compressWhitespace(char[] string) {
-		int first = indexOfWhitespace_(string);
-		return (first == -1) ? string : compressWhitespace_(string, first);
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static char[] compressWhitespace_(char[] string, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		compressWhitespaceOn_(string, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified writer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(Writer)
-	 */
-	public static void compressWhitespaceOn(char[] string, Writer writer) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			compressWhitespaceOn_(string, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					writeCharOn(' ', writer);
-				}
-			} else {
-				spaceWritten = false;
-				writeCharOn(c, writer);
-			}
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string buffer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuffer)
-	 */
-	public static void compressWhitespaceOn(char[] string, StringBuffer sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					sb.append(' ');
-				}
-			} else {
-				spaceWritten = false;
-				sb.append(c);
-			}
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string builder.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuilder)
-	 */
-	public static void compressWhitespaceOn(char[] string, StringBuilder sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					sb.append(' ');
-				}
-			} else {
-				spaceWritten = false;
-				sb.append(c);
-			}
-		}
-	}
-
-
-	// ********** common prefix **********
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings.
-	 * String#commonPrefixLength(String)
-	 */
-	public static int commonPrefixLength(String s1, String s2) {
-		return commonPrefixLength(s1.toCharArray(), s2.toCharArray());
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings.
-	 */
-	public static int commonPrefixLength(char[] s1, char[] s2) {
-		return commonPrefixLength_(s1, s2, Math.min(s1.length, s2.length));
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum.
-	 * String#commonPrefixLength(String, int)
-	 */
-	public static int commonPrefixLength(String s1, String s2, int max) {
-		return commonPrefixLength(s1.toCharArray(), s2.toCharArray(), max);
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum.
-	 */
-	public static int commonPrefixLength(char[] s1, char[] s2, int max) {
-		return commonPrefixLength_(s1, s2, Math.min(max, Math.min(s1.length, s2.length)));
-	}
-
-	/*
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum. Assume the specified
-	 * maximum is less than the lengths of the specified strings.
-	 */
-	private static int commonPrefixLength_(char[] s1, char[] s2, int max) {
-		for (int i = 0; i < max; i++) {
-			if (s1[i] != s2[i]) {
-				return i;
-			}
-		}
-		return max;	// all the characters up to 'max' are the same
-	}
-
-
-	// ********** capitalization **********
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static char[] capitalize_(char[] string) {
-		string[0] = Character.toUpperCase(string[0]);
-		return string;
-	}
-
-	/**
-	 * Modify and return the specified string with
-	 * its first letter capitalized.
-	 */
-	public static char[] capitalize(char[] string) {
-		if ((string.length == 0) || Character.isUpperCase(string[0])) {
-			return string;
-		}
-		return capitalize_(string);
-	}
-
-	/**
-	 * Return the specified string with its first letter capitalized.
-	 * String#capitalize()
-	 */
-	public static String capitalize(String string) {
-		if ((string.length() == 0) || Character.isUpperCase(string.charAt(0))) {
-			return string;
-		}
-		return new String(capitalize_(string.toCharArray()));
-	}
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	public static Iterable<String> capitalize(Iterable<String> strings) {
-		return new TransformationIterable<String, String>(strings, STRING_CAPITALIZER);
-	}
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	public static Iterator<String> capitalize(Iterator<String> strings) {
-		return new TransformationIterator<String, String>(strings, STRING_CAPITALIZER);
-	}
-
-	private static final Transformer<String, String> STRING_CAPITALIZER = new Transformer<String, String>() {
-		public String transform(String string) {
-			return StringTools.capitalize(string);
-		}
-	};
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	// cannot name method simply 'capitalize' because of type-erasure...
-	public static Iterable<char[]> capitalizeCharArrays(Iterable<char[]> strings) {
-		return new TransformationIterable<char[], char[]>(strings, CHAR_ARRAY_CAPITALIZER);
-	}
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	// cannot name method simply 'capitalize' because of type-erasure...
-	public static Iterator<char[]> capitalizeCharArrays(Iterator<char[]> strings) {
-		return new TransformationIterator<char[], char[]>(strings, CHAR_ARRAY_CAPITALIZER);
-	}
-
-	private static final Transformer<char[], char[]> CHAR_ARRAY_CAPITALIZER = new Transformer<char[], char[]>() {
-		public char[] transform(char[] string) {
-			return StringTools.capitalize(string);
-		}
-	};
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, StringBuffer sb) {
-		sb.append(Character.toUpperCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, StringBuffer sb) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(StringBuffer)
-	 */
-	public static void capitalizeOn(String string, StringBuffer sb) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, StringBuilder sb) {
-		sb.append(Character.toUpperCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, StringBuilder sb) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(StringBuffer)
-	 */
-	public static void capitalizeOn(String string, StringBuilder sb) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, Writer writer) {
-		writeCharOn(Character.toUpperCase(string[0]), writer);
-		writeStringOn(string, 1, string.length - 1, writer);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, Writer writer) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			writeStringOn(string, writer);
-		} else {
-			capitalizeOn_(string, writer);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(Writer)
-	 */
-	public static void capitalizeOn(String string, Writer writer) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			writeStringOn(string, writer);
-		} else {
-			capitalizeOn_(string.toCharArray(), writer);
-		}
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static char[] uncapitalize_(char[] string) {
-		string[0] = Character.toLowerCase(string[0]);
-		return string;
-	}
-
-	private static boolean stringNeedNotBeUncapitalized_(char[] string) {
-		if (string.length == 0) {
-			return true;
-		}
-		if (Character.isLowerCase(string[0])) {
-			return true;
-		}
-		// if both the first and second characters are capitalized,
-		// return the string unchanged
-		if ((string.length > 1)
-				&& Character.isUpperCase(string[1])
-				&& Character.isUpperCase(string[0])){
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Modify and return the specified string with its
-	 * first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static char[] uncapitalize(char[] string) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			return string;
-		}
-		return uncapitalize_(string);
-	}
-
-	private static boolean stringNeedNotBeUncapitalized_(String string) {
-		if (string.length() == 0) {
-			return true;
-		}
-		if (Character.isLowerCase(string.charAt(0))) {
-			return true;
-		}
-		// if both the first and second characters are capitalized,
-		// return the string unchanged
-		if ((string.length() > 1)
-				&& Character.isUpperCase(string.charAt(1))
-				&& Character.isUpperCase(string.charAt(0))){
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return the specified string with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalize()
-	 */
-	public static String uncapitalize(String string) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			return string;
-		}
-		return new String(uncapitalize_(string.toCharArray()));
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static void uncapitalizeOn_(char[] string, StringBuffer sb) {
-		sb.append(Character.toLowerCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, StringBuffer sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(StringBuffer)
-	 */
-	public static void uncapitalizeOn(String string, StringBuffer sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static void uncapitalizeOn_(char[] string, StringBuilder sb) {
-		sb.append(Character.toLowerCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, StringBuilder sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(StringBuffer)
-	 */
-	public static void uncapitalizeOn(String string, StringBuilder sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void uncapitalizeOn_(char[] string, Writer writer) {
-		writeCharOn(Character.toLowerCase(string[0]), writer);
-		writeStringOn(string, 1, string.length - 1, writer);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, Writer writer) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			writeStringOn(string, writer);
-		} else {
-			uncapitalizeOn_(string, writer);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(Writer)
-	 */
-	public static void uncapitalizeOn(String string, Writer writer) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			writeStringOn(string, writer);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), writer);
-		}
-	}
-
-
-	// ********** #toString() helper methods **********
-
-	/**
-	 * Build a "standard" {@link Object#toString() toString()} result for the
-	 * specified object and additional information:<pre>
-	 *     ClassName[00-F3-EE-42](add'l info)
-	 * </pre>
-	 */
-	public static String buildToStringFor(Object o, Object additionalInfo) {
-		StringBuilder sb = new StringBuilder();
-		buildSimpleToStringOn(o, sb);
-		sb.append('(');
-		sb.append(additionalInfo);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	/**
-	 * Build a "standard" {@link Object#toString() toString()} result for the
-	 * specified object:<pre>
-	 *     ClassName[00-F3-EE-42]
-	 * </pre>
-	 */
-	public static String buildToStringFor(Object o) {
-		StringBuilder sb = new StringBuilder();
-		buildSimpleToStringOn(o, sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Append a "standard" {@link Object#toString() toString()} result for the
-	 * specified object to the specified buffer:<pre>
-	 *     ClassName[00-F3-EE-42]
-	 * </pre>
-	 */
-	public static void buildSimpleToStringOn(Object o, StringBuffer sb) {
-		sb.append(buildToStringClassName(o.getClass()));
-		sb.append('[');
-		separateOn(buildHashCode(o), '-', 2, sb);
-		sb.append(']');
-	}
-
-	private static String buildHashCode(Object o) {
-		// use System#identityHashCode(Object), since Object#hashCode() may be overridden
-		return zeroPad(Integer.toHexString(System.identityHashCode(o)).toUpperCase(), 8);
-	}
-
-	/**
-	 * Append a "standard" {@link Object#toString() toString()} result for the
-	 * specified object to the specified string builder:<pre>
-	 *     ClassName[00-F3-EE-42]
-	 * </pre>
-	 */
-	public static void buildSimpleToStringOn(Object o, StringBuilder sb) {
-		sb.append(buildToStringClassName(o.getClass()));
-		sb.append('[');
-		separateOn(buildHashCode(o), '-', 2, sb);
-		sb.append(']');
-	}
-
-	/**
-	 * Return a name suitable for a {@link Object#toString() toString()} implementation.
-	 * {@link Class#getSimpleName()} isn't quite good enough for anonymous
-	 * classes; since it returns an empty string. This method will return the
-	 * name of the anonymous class's super class, which is a bit more helpful.
-	 */
-	public static String buildToStringClassName(Class<?> javaClass) {
-		String simpleName = javaClass.getSimpleName();
-		return simpleName.equals("") ? //$NON-NLS-1$
-				buildToStringClassName(javaClass.getSuperclass()) :  // recurse
-				simpleName;
-	}
-
-	/**
-	 * Append the string representations of the objects in the specified array
-	 * to the specified string builder:<pre>
-	 *     ["foo", "bar", "baz"]
-	 * </pre>
-	 */
-	public static <T> String append(StringBuilder sb, T[] array) {
-		return append(sb, new ArrayListIterator<T>(array));
-	}
-
-	/**
-	 * Append the string representations of the objects in the specified iterable
-	 * to the specified string builder:<pre>
-	 *     ["foo", "bar", "baz"]
-	 * </pre>
-	 */
-	public static <T> String append(StringBuilder sb, Iterable<T> iterable) {
-		return append(sb, iterable.iterator());
-	}
-
-	/**
-	 * Append the string representations of the objects in the specified iterator
-	 * to the specified string builder:<pre>
-	 *     ["foo", "bar", "baz"]
-	 * </pre>
-	 */
-	public static <T> String append(StringBuilder sb, Iterator<T> iterator) {
-		sb.append('[');
-		while (iterator.hasNext()) {
-			sb.append(iterator.next());
-			if (iterator.hasNext()) {
-				sb.append(", "); //$NON-NLS-1$
-			}
-		}
-		sb.append(']');
-		return sb.toString();
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(String string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length();
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string.toCharArray(), len);
-	}
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(char[] string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length;
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string, len);
-	}
-
-	private static boolean stringIsEmpty_(char[] s, int len) {
-		for (int i = len; i-- > 0; ) {
-			if ( ! Character.isWhitespace(s[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string is non-null, non-empty, and does
-	 * not contain only whitespace characters.
-	 */
-	public static boolean stringIsNotEmpty(String string) {
-		return ! stringIsEmpty(string);
-	}
-
-	/**
-	 * Return whether the specified string is non-null, non-empty, and does
-	 * not contain only whitespace characters.
-	 */
-	public static boolean stringIsNotEmpty(char[] string) {
-		return ! stringIsEmpty(string);
-	}
-
-	/**
-	 * Return whether the specified strings are equal.
-	 * Check for <code>null</code>s.
-	 */
-	public static boolean stringsAreEqual(String s1, String s2) {
-		return Tools.valuesAreEqual(s1, s2);
-	}
-
-	/**
-	 * Return whether the specified strings are equal.
-	 * Check for <code>null</code>s.
-	 */
-	public static boolean stringsAreEqual(char[] s1, char[] s2) {
-		return (s1 == null) ?
-				(s2 == null) :
-				((s2 != null) && stringsAreEqual_(s1, s2));
-	}
-
-	/**
-	 * no <code>null</code> checks
-	 */
-	private static boolean stringsAreEqual_(char[] s1, char[] s2) {
-		int len = s1.length;
-		if (len != s2.length) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if (s1[i] != s2[i]) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified strings are equal, ignoring case.
-	 * Check for <code>null</code>s.
-	 */
-	public static boolean stringsAreEqualIgnoreCase(String s1, String s2) {
-		return (s1 == null) ?
-				(s2 == null) :
-				((s2 != null) && s1.equalsIgnoreCase(s2));
-	}
-
-	/**
-	 * Return whether the specified strings are equal, ignoring case.
-	 * Check for <code>null</code>s.
-	 */
-	public static boolean stringsAreEqualIgnoreCase(char[] s1, char[] s2) {
-		return (s1 == null) ?
-				(s2 == null) :
-				((s2 != null) && stringsAreEqualIgnoreCase_(s1, s2));
-	}
-
-	/**
-	 * no <code>null</code> checks
-	 */
-	private static boolean stringsAreEqualIgnoreCase_(char[] s1, char[] s2) {
-		int len = s1.length;
-		if (len != s2.length) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if ( ! charactersAreEqualIgnoreCase(s1[i], s2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string starts with the specified prefix,
-	 * ignoring case.
-	 */
-	public static boolean stringStartsWithIgnoreCase(char[] string, char[] prefix) {
-		int prefixLength = prefix.length;
-		if (string.length < prefixLength) {
-			return false;
-		}
-		for (int i = prefixLength; i-- > 0; ) {
-			if ( ! charactersAreEqualIgnoreCase(string[i], prefix[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string starts with the specified prefix,
-	 * ignoring case.
-	 */
-	public static boolean stringStartsWithIgnoreCase(String string, String prefix) {
-		return string.regionMatches(true, 0, prefix, 0, prefix.length());
-	}
-
-	/**
-	 * Return whether the specified characters are are equal, ignoring case.
-	 * @see java.lang.String#regionMatches(boolean, int, String, int, int)
-	 */
-	public static boolean charactersAreEqualIgnoreCase(char c1, char c2) {
-		//  something about the Georgian alphabet requires us to check lower case also
-		return (c1 == c2)
-				|| (Character.toUpperCase(c1) == Character.toUpperCase(c2))
-				|| (Character.toLowerCase(c1) == Character.toLowerCase(c2));
-	}
-
-	/**
-	 * Return whether the specified string is uppercase.
-	 */
-	public static boolean stringIsUppercase(String string) {
-		return (string.length() == 0) ? false : stringIsUppercase_(string);
-	}
-
-	/**
-	 * Return whether the specified string is uppercase.
-	 */
-	public static boolean stringIsUppercase(char[] string) {
-		return (string.length == 0) ? false : stringIsUppercase_(new String(string));
-	}
-
-	private static boolean stringIsUppercase_(String string) {
-		return string.equals(string.toUpperCase());
-	}
-
-	/**
-	 * Return whether the specified string is lowercase.
-	 */
-	public static boolean stringIsLowercase(String string) {
-		return (string.length() == 0) ? false : stringIsLowercase_(string);
-	}
-
-	/**
-	 * Return whether the specified string is lowercase.
-	 */
-	public static boolean stringIsLowercase(char[] string) {
-		return (string.length == 0) ? false : stringIsLowercase_(new String(string));
-	}
-
-	private static boolean stringIsLowercase_(String string) {
-		return string.equals(string.toLowerCase());
-	}
-
-
-	// ********** convert camel case to all caps **********
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static String convertCamelCaseToAllCaps(String camelCaseString) {
-		int len = camelCaseString.length();
-		if (len == 0) {
-			return camelCaseString;
-		}
-		return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), len));
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static char[] convertCamelCaseToAllCaps(char[] camelCaseString) {
-		int len = camelCaseString.length;
-		if (len == 0) {
-			return camelCaseString;
-		}
-		return convertCamelCaseToAllCaps_(camelCaseString, len);
-	}
-
-	private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int len) {
-		StringBuilder sb = new StringBuilder(len * 2);
-		convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuffer sb) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuffer sb) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuffer sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-			}
-			sb.append(Character.toUpperCase(c));
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuilder sb) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuilder sb) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuilder sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-			}
-			sb.append(Character.toUpperCase(c));
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, Writer writer) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, Writer writer) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, writer);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, Writer writer) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				writeCharOn('_', writer);
-			}
-			writeCharOn(Character.toUpperCase(c), writer);
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static String convertCamelCaseToAllCaps(String camelCaseString, int maxLength) {
-		int len = camelCaseString.length();
-		if ((len == 0) || (maxLength == 0)) {
-			return camelCaseString;
-		}
-		return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), maxLength, len));
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static char[] convertCamelCaseToAllCaps(char[] camelCaseString, int maxLength) {
-		int len = camelCaseString.length;
-		if ((len == 0) || (maxLength == 0)) {
-			return camelCaseString;
-		}
-		return convertCamelCaseToAllCaps_(camelCaseString, maxLength, len);
-	}
-
-	private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int maxLength, int len) {
-		StringBuilder sb = new StringBuilder(maxLength);
-		convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuffer sb) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuffer sb) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuffer sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-				if (sb.length() == maxLength) {
-					return;
-				}
-			}
-			sb.append(Character.toUpperCase(c));
-			if (sb.length() == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuilder sb) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuilder sb) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuilder sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-				if (sb.length() == maxLength) {
-					return;
-				}
-			}
-			sb.append(Character.toUpperCase(c));
-			if (sb.length() == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, Writer writer) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, Writer writer) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, writer);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, Writer writer) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		int writerLength = 0;
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				writeCharOn('_', writer);
-				if (++writerLength == maxLength) {
-					return;
-				}
-			}
-			writeCharOn(Character.toUpperCase(c), writer);
-			if (++writerLength == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/*
-	 * Return whether the specified series of characters occur at
-	 * a "camel case" work break:
-	 *     "*aa" -> false
-	 *     "*AA" -> false
-	 *     "*Aa" -> false
-	 *     "AaA" -> false
-	 *     "AAA" -> false
-	 *     "aa*" -> false
-	 *     "AaA" -> false
-	 *     "aAa" -> true
-	 *     "AA*" -> false
-	 *     "AAa" -> true
-	 * where '*' == any char
-	 */
-	private static boolean camelCaseWordBreak_(char prev, char c, char next) {
-		if (prev == 0) {	// start of string
-			return false;
-		}
-		if (Character.isLowerCase(c)) {
-			return false;
-		}
-		if (Character.isLowerCase(prev)) {
-			return true;
-		}
-		if (next == 0) {	// end of string
-			return false;
-		}
-		return Character.isLowerCase(next);
-	}
-
-
-	// ********** convert underscores to camel case **********
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "LargeProject"
-	 * Capitalize the first letter.
-	 */
-	public static String convertUnderscoresToCamelCase(String underscoreString) {
-		return convertUnderscoresToCamelCase(underscoreString, true);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "LargeProject"
-	 * Capitalize the first letter.
-	 */
-	public static char[] convertUnderscoresToCamelCase(char[] underscoreString) {
-		return convertUnderscoresToCamelCase(underscoreString, true);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static String convertUnderscoresToCamelCase(String underscoreString, boolean capitalizeFirstLetter) {
-		int len = underscoreString.length();
-		if (len == 0) {
-			return underscoreString;
-		}
-		return new String(convertUnderscoresToCamelCase_(underscoreString.toCharArray(), capitalizeFirstLetter, len));
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static char[] convertUnderscoresToCamelCase(char[] underscoreString, boolean capitalizeFirstLetter) {
-		int len = underscoreString.length;
-		if (len == 0) {
-			return underscoreString;
-		}
-		return convertUnderscoresToCamelCase_(underscoreString, capitalizeFirstLetter, len);
-	}
-
-	private static char[] convertUnderscoresToCamelCase_(char[] underscoreString, boolean capitalizeFirstLetter, int len) {
-		StringBuilder sb = new StringBuilder(len);
-		convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuffer sb) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			} else {
-				sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuilder sb) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			} else {
-				sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, Writer writer) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, Writer writer) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, writer);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, Writer writer) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				writeCharOn(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c), writer);
-			} else {
-				writeCharOn((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c), writer);
-			}
-		}
-	}
-
-
-	// ********** convert to Java string literal **********
-
-	public static final String EMPTY_JAVA_STRING_LITERAL = "\"\"";  //$NON-NLS-1$
-	public static final char[] EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY = EMPTY_JAVA_STRING_LITERAL.toCharArray();
-
-	public static String convertToJavaStringLiteral(String string) {
-		int len = string.length();
-		if (len == 0) {
-			return EMPTY_JAVA_STRING_LITERAL;
-		}
-		StringBuilder sb = new StringBuilder(len + 5);
-		convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		return sb.toString();
-	}
-
-	public static char[] convertToJavaStringLiteral(char[] string) {
-		int len = string.length;
-		if (len == 0) {
-			return EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY;
-		}
-		StringBuilder sb = new StringBuilder(len + 5);
-		convertToJavaStringLiteralOn_(string, sb, len);
-		len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	public static Iterable<String> convertToJavaStringLiterals(Iterable<String> strings) {
-		return new TransformationIterable<String, String>(strings, STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER);
-	}
-
-	public static Iterator<String> convertToJavaStringLiterals(Iterator<String> strings) {
-		return new TransformationIterator<String, String>(strings, STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER);
-	}
-
-	private static final Transformer<String, String> STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER = new Transformer<String, String>() {
-		public String transform(String string) {
-			return StringTools.convertToJavaStringLiteral(string);
-		}
-	};
-
-	// cannot name method simply 'convertToJavaStringLiterals' because of type-erasure...
-	public static Iterable<char[]> convertToJavaCharArrayLiterals(Iterable<char[]> strings) {
-		return new TransformationIterable<char[], char[]>(strings, CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER);
-	}
-
-	// cannot name method simply 'convertToJavaStringLiterals' because of type-erasure...
-	public static Iterator<char[]> convertToJavaCharArrayLiterals(Iterator<char[]> strings) {
-		return new TransformationIterator<char[], char[]>(strings, CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER);
-	}
-
-	private static final Transformer<char[], char[]> CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER = new Transformer<char[], char[]>() {
-		public char[] transform(char[] string) {
-			return StringTools.convertToJavaStringLiteral(string);
-		}
-	};
-
-	public static void convertToJavaStringLiteralOn(String string, StringBuffer sb) {
-		int len = string.length();
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, StringBuffer sb) {
-		int len = string.length;
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string, sb, len);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, StringBuffer sb, int len) {
-		sb.ensureCapacity(sb.length() + len + 5);
-		sb.append(QUOTE);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					sb.append("\\b");  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					sb.append("\\t");  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					sb.append("\\n");  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					sb.append("\\f");  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					sb.append("\\r");  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					sb.append("\\\"");  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					sb.append("\\'");  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					sb.append("\\\\");  //$NON-NLS-1$
-					break;
-				default:
-					sb.append(c);
-					break;
-			}
-		}
-		sb.append(QUOTE);
-	}
-
-	public static void convertToJavaStringLiteralOn(String string, StringBuilder sb) {
-		int len = string.length();
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, StringBuilder sb) {
-		int len = string.length;
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string, sb, len);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, StringBuilder sb, int len) {
-		sb.ensureCapacity(sb.length() + len + 5);
-		sb.append(QUOTE);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					sb.append("\\b");  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					sb.append("\\t");  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					sb.append("\\n");  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					sb.append("\\f");  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					sb.append("\\r");  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					sb.append("\\\"");  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					sb.append("\\'");  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					sb.append("\\\\");  //$NON-NLS-1$
-					break;
-				default:
-					sb.append(c);
-					break;
-			}
-		}
-		sb.append(QUOTE);
-	}
-
-	public static void convertToJavaStringLiteralOn(String string, Writer writer) {
-		if (string.length() == 0) {
-			writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), writer);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, Writer writer) {
-		if (string.length == 0) {
-			writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer);
-		} else {
-			convertToJavaStringLiteralOn_(string, writer);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, Writer writer) {
-		writeCharOn(QUOTE, writer);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					writeStringOn("\\b", writer);  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					writeStringOn("\\t", writer);  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					writeStringOn("\\n", writer);  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					writeStringOn("\\f", writer);  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					writeStringOn("\\r", writer);  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					writeStringOn("\\\"", writer);  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					writeStringOn("\\'", writer);  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					writeStringOn("\\\\", writer);  //$NON-NLS-1$
-					break;
-				default:
-					writeCharOn(c, writer);
-					break;
-			}
-		}
-		writeCharOn(QUOTE, writer);
-	}
-
-
-	// ********** convenience **********
-
-	public static char[] convertToCharArray(StringBuffer sb) {
-		int len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	public static char[] convertToCharArray(StringBuilder sb) {
-		int len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	private static void writeStringOn(char[] string, Writer writer) {
-		try {
-			writer.write(string);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(char[] string, char escape, Writer writer) {
-		try {
-			for (char c : string) {
-				if (c == escape) {
-					writer.write(c);
-				}
-				writer.write(c);
-			}
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(char[] string, int off, int len, Writer writer) {
-		try {
-			writer.write(string, off, len);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(String string, int off, int len, Writer writer) {
-		try {
-			writer.write(string, off, len);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(String string, Writer writer) {
-		try {
-			writer.write(string);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeCharOn(char c, Writer writer) {
-		try {
-			writer.write(c);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-
-	// ********** constructor **********
-
-	/*
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private StringTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java
deleted file mode 100644
index 5bcce38..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Iterator;
-
-/**
- * Thread-safe implementation of the {@link Bag} interface.
- */
-public class SynchronizedBag<E>
-	implements Bag<E>, Serializable
-{
-	/** Backing bag. */
-	private final Bag<E> bag;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a synchronized bag that wraps the
-	 * specified bag and locks on the specified mutex.
-	 */
-	public SynchronizedBag(Bag<E> bag, Object mutex) {
-		super();
-		if (bag == null) {
-			throw new NullPointerException();
-		}
-		this.bag = bag;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Construct a synchronized bag that wraps the
-	 * specified bag and locks on itself.
-	 */
-	public SynchronizedBag(Bag<E> bag) {
-		super();
-		if (bag == null) {
-			throw new NullPointerException();
-		}
-		this.bag = bag;
-		this.mutex = this;
-	}
-
-	/**
-	 * Construct a synchronized bag that locks on the specified mutex.
-	 */
-	public SynchronizedBag(Object mutex) {
-		this(new HashBag<E>(), mutex);
-	}
-
-	/**
-	 * Construct a synchronized bag that locks on itself.
-	 */
-	public SynchronizedBag() {
-		this(new HashBag<E>());
-	}
-
-
-	// ********** Bag implementation **********
-
-	public boolean add(E o, int count) {
-		synchronized (this.mutex) {
-			return this.bag.add(o, count);
-		}
-	}
-
-	public int count(Object o) {
-		synchronized (this.mutex) {
-			return this.bag.count(o);
-		}
-	}
-
-	public Iterator<Bag.Entry<E>> entries() {
-		synchronized (this.mutex) {
-			return this.bag.entries();
-		}
-	}
-
-	public boolean remove(Object o, int count) {
-		synchronized (this.mutex) {
-			return this.bag.remove(o, count);
-		}
-	}
-
-	public int uniqueCount() {
-		synchronized (this.mutex) {
-			return this.bag.uniqueCount();
-		}
-	}
-
-	public Iterator<E> uniqueIterator() {
-		synchronized (this.mutex) {
-			return this.bag.uniqueIterator();
-		}
-	}
-
-
-	// ********** Collection implementation **********
-
-	public boolean add(E e) {
-		synchronized (this.mutex) {
-			return this.bag.add(e);
-		}
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		synchronized (this.mutex) {
-			return this.bag.addAll(c);
-		}
-	}
-
-	public void clear() {
-		synchronized (this.mutex) {
-			this.bag.clear();
-		}
-	}
-
-	public boolean contains(Object o) {
-		synchronized (this.mutex) {
-			return this.bag.contains(o);
-		}
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		synchronized (this.mutex) {
-			return this.bag.containsAll(c);
-		}
-	}
-
-	public boolean isEmpty() {
-		synchronized (this.mutex) {
-			return this.bag.isEmpty();
-		}
-	}
-
-	public Iterator<E> iterator() {
-		synchronized (this.mutex) {
-			return this.bag.iterator();
-		}
-	}
-
-	public boolean remove(Object o) {
-		synchronized (this.mutex) {
-			return this.bag.remove(o);
-		}
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		synchronized (this.mutex) {
-			return this.bag.removeAll(c);
-		}
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		synchronized (this.mutex) {
-			return this.bag.retainAll(c);
-		}
-	}
-
-	public int size() {
-		synchronized (this.mutex) {
-			return this.bag.size();
-		}
-	}
-
-	public Object[] toArray() {
-		synchronized (this.mutex) {
-			return this.bag.toArray();
-		}
-	}
-
-	public <T> T[] toArray(T[] a) {
-		synchronized (this.mutex) {
-			return this.bag.toArray(a);
-		}
-	}
-
-
-	// ********** additional public protocol **********
-
-	/**
-	 * Return the object the stack locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return this.bag.toString();
-		}
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java
deleted file mode 100644
index e42a7e6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java
+++ /dev/null
@@ -1,437 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * This class provides synchronized access to a <code>boolean</code> value.
- * It also provides protocol for suspending a thread until the
- * <code>boolean</code> value is set to <code>true</code> or <code>false</code>,
- * with optional time-outs.
- * 
- * @see SimpleBooleanReference
- */
-public class SynchronizedBoolean
-	implements BooleanReference, Cloneable, Serializable
-{
-	/** Backing <code>boolean</code>. */
-	private boolean value;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a synchronized <code>boolean</code> with the specified
-	 * initial value and mutex.
-	 */
-	public SynchronizedBoolean(boolean value, Object mutex) {
-		super();
-		this.value = value;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Create a synchronized <code>boolean</code> with the
-	 * specified initial value.
-	 * The synchronized <code>boolean</code> itself will be the mutex.
-	 */
-	public SynchronizedBoolean(boolean value) {
-		super();
-		this.value = value;
-		this.mutex = this;
-	}
-
-	/**
-	 * Create a synchronized <code>boolean</code>
-	 * with an initial value of <code>false</code>
-	 * and specified mutex.
-	 */
-	public SynchronizedBoolean(Object mutex) {
-		this(false, mutex);
-	}
-
-	/**
-	 * Create a synchronized <code>boolean</code>
-	 * with an initial value of <code>false</code>.
-	 * The synchronized <code>boolean</code> itself will be the mutex.
-	 */
-	public SynchronizedBoolean() {
-		this(false);
-	}
-
-
-	// ********** accessors **********
-
-	public boolean getValue() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	public boolean is(boolean v) {
-		synchronized (this.mutex) {
-			return this.value == v;
-		}
-	}
-
-	public boolean isNot(boolean v) {
-		synchronized (this.mutex) {
-			return this.value != v;
-		}
-	}
-
-	public boolean isTrue() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	public boolean isFalse() {
-		synchronized (this.mutex) {
-			return ! this.value;
-		}
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public boolean setValue(boolean value) {
-		synchronized (this.mutex) {
-			return this.setValue_(value);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean setValue_(boolean v) {
-		return (v == this.value) ? v : this.setChangedValue_(v);
-	}
-
-	/**
-	 * Pre-condition: synchronized and new value is different
-	 */
-	private boolean setChangedValue_(boolean v) {
-		this.value = v;
-		this.mutex.notifyAll();
-		return ! v;
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public boolean flip() {
-		synchronized (this.mutex) {
-			return ! this.setChangedValue_( ! this.value);
-		}
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public boolean setNot(boolean v) {
-		return this.setValue( ! v);
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public boolean setTrue() {
-		return this.setValue(true);
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public boolean setFalse() {
-		return this.setValue(false);
-	}
-
-	/**
-	 * Return the object this object locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to the specified value. If the <code>boolean</code> value is already the
-	 * specified value, return immediately.
-	 */
-	public void waitUntilValueIs(boolean v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilValueIs_(boolean v) throws InterruptedException {
-		while (this.value != v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to the NOT of the specified value.
-	 * If the <code>boolean</code> value is already the NOT of the specified
-	 * value, return immediately.
-	 */
-	public void waitUntilValueIsNot(boolean v) throws InterruptedException {
-		this.waitUntilValueIs( ! v);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to <code>true</code>.
-	 * If the <code>boolean</code> value is already <code>true</code>,
-	 * return immediately.
-	 */
-	public void waitUntilTrue() throws InterruptedException {
-		this.waitUntilValueIs(true);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to <code>false</code>.
-	 * If the <code>boolean</code> value is already <code>false</code>,
-	 * return immediately.
-	 */
-	public void waitUntilFalse() throws InterruptedException {
-		this.waitUntilValueIs(false);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes to
-	 * <em>not</em> the specified value, then change it back to the specified
-	 * value and continue executing. If the <code>boolean</code> value is already
-	 * <em>not</em> the specified value, set the value to the specified value
-	 * immediately.
-	 */
-	public void waitToSetValue(boolean v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs_( ! v);
-			this.setChangedValue_(v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to <code>false</code>,
-	 * then change it back to <code>true</code> and continue executing.
-	 * If the <code>boolean</code> value is already <code>false</code>,
-	 * set the value to <code>true</code> immediately.
-	 */
-	public void waitToSetTrue() throws InterruptedException {
-		this.waitToSetValue(true);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to <code>true</code>,
-	 * then change it back to <code>false</code> and continue executing.
-	 * If the <code>boolean</code> value is already <code>true</code>,
-	 * set the value to <code>false</code> immediately.
-	 */
-	public void waitToSetFalse() throws InterruptedException {
-		this.waitToSetValue(false);
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the specified value was achieved;
-	 * return <code>false</code> if a time-out occurred.
-	 * If the <code>boolean</code> value is already the specified value,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilValueIs(boolean v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIs_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilValueIs_(boolean v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilValueIs_(v);	// wait indefinitely until notified
-			return true;	// if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value != v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value == v);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value
-	 * changes to the NOT of the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the NOT of the specified value was achieved;
-	 * return <code>false</code> if a time-out occurred.
-	 * If the <code>boolean</code> value is already the NOT of the specified
-	 * value, return immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public void waitUntilValueIsNot(boolean v, long timeout) throws InterruptedException {
-		this.waitUntilValueIs( ! v, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to <code>true</code> or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * <code>true</code> was achieved;
-	 * return <code>false</code> if a time-out occurred.
-	 * If the <code>boolean</code> value is already <code>true</code>,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilTrue(long timeout) throws InterruptedException {
-		return this.waitUntilValueIs(true, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to <code>false</code> or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * <code>false</code> was achieved;
-	 * return <code>false</code> if a time-out occurred.
-	 * If the <code>boolean</code> value is already <code>true</code>,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilFalse(long timeout) throws InterruptedException {
-		return this.waitUntilValueIs(false, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to <em>not</em> the specified value, then change it back to the specified
-	 * value and continue executing. If the <code>boolean</code> value does not
-	 * change to <code>false</code> before the time-out, simply continue
-	 * executing without changing the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to the specified value; return <code>false</code>
-	 * if a time-out occurred. If the <code>boolean</code> value is already
-	 * <em>not</em> the specified value, set the value to the specified value
-	 * immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetValue(boolean v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilValueIs_( ! v, timeout);
-			if (success) {
-				this.setChangedValue_(v);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to <code>false</code>, then change it back to <code>true</code> and
-	 * continue executing. If the <code>boolean</code> value does not change to
-	 * <code>false</code> before the time-out, simply continue executing without
-	 * changing the value. The time-out is specified in milliseconds. Return
-	 * <code>true</code> if the value was set to <code>true</code>;
-	 * return <code>false</code> if a time-out occurred. If the
-	 * <code>boolean</code> value is already <code>false</code>, set the
-	 * value to <code>true</code> immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetTrue(long timeout) throws InterruptedException {
-		return this.waitToSetValue(true, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the <code>boolean</code> value changes
-	 * to <code>true</code>, then change it back to <code>false</code> and
-	 * continue executing. If the <code>boolean</code> value does not change to
-	 * <code>true</code> before the time-out, simply continue executing without
-	 * changing the value. The time-out is specified in milliseconds. Return
-	 * <code>true</code> if the value was set to <code>false</code>;
-	 * return <code>false</code> if a time-out occurred. If the
-	 * <code>boolean</code> value is already <code>true</code>, set the
-	 * value to <code>false</code> immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetFalse(long timeout) throws InterruptedException {
-		return this.waitToSetValue(false, timeout);
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If the current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the value from another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SynchronizedBoolean clone() {
-		try {
-			synchronized (this.mutex) {
-				return (SynchronizedBoolean) super.clone();
-			}
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.getValue()) + ']';
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java
deleted file mode 100644
index 999aa44..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java
+++ /dev/null
@@ -1,914 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * This class provides synchronized access to an <code>int</code>.
- * It also provides protocol for suspending a thread until the
- * value is set to a specified value, with optional time-outs.
- * 
- * @see SimpleIntReference
- */
-public class SynchronizedInt
-	implements IntReference, Cloneable, Serializable
-{
-	/** Backing <code>int</code>. */
-	private int value;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a synchronized integer with the specified initial value
-	 * and mutex.
-	 */
-	public SynchronizedInt(int value, Object mutex) {
-		super();
-		this.value = value;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Create a synchronized integer with the specified initial value.
-	 * The synchronized integer itself will be the mutex.
-	 */
-	public SynchronizedInt(int value) {
-		super();
-		this.value = value;
-		this.mutex = this;
-	}
-
-	/**
-	 * Create a synchronized integer with an initial value of zero
-	 * and the specified mutex.
-	 */
-	public SynchronizedInt(Object mutex) {
-		this(0, mutex);
-	}
-
-	/**
-	 * Create a synchronized object with an initial value of zero.
-	 * The synchronized integer itself will be the mutex.
-	 */
-	public SynchronizedInt() {
-		this(0);
-	}
-
-
-	// ********** methods **********
-
-	public int getValue() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	public boolean equals(int v) {
-		synchronized (this.mutex) {
-			return this.value == v;
-		}
-	}
-
-	public boolean notEqual(int v) {
-		synchronized (this.mutex) {
-			return this.value != v;
-		}
-	}
-
-	public boolean isZero() {
-		synchronized (this.mutex) {
-			return this.value == 0;
-		}
-	}
-
-	public boolean isNotZero() {
-		synchronized (this.mutex) {
-			return this.value != 0;
-		}
-	}
-
-	public boolean isGreaterThan(int v) {
-		synchronized (this.mutex) {
-			return this.value > v;
-		}
-	}
-
-	public boolean isGreaterThanOrEqual(int v) {
-		synchronized (this.mutex) {
-			return this.value >= v;
-		}
-	}
-
-	public boolean isLessThan(int v) {
-		synchronized (this.mutex) {
-			return this.value < v;
-		}
-	}
-
-	public boolean isLessThanOrEqual(int v) {
-		synchronized (this.mutex) {
-			return this.value <= v;
-		}
-	}
-
-	public boolean isPositive() {
-		return this.isGreaterThan(0);
-	}
-
-	public boolean isNotPositive() {
-		return this.isLessThanOrEqual(0);
-	}
-
-	public boolean isNegative() {
-		return this.isLessThan(0);
-	}
-
-	public boolean isNotNegative() {
-		return this.isGreaterThanOrEqual(0);
-	}
-
-	public int abs() {
-		synchronized (this.mutex) {
-			return Math.abs(this.value);
-		}
-	}
-
-	public int neg() {
-		synchronized (this.mutex) {
-			return -this.value;
-		}
-	}
-
-	public int add(int v) {
-		synchronized (this.mutex) {
-			return this.value + v;
-		}
-	}
-
-	public int subtract(int v) {
-		synchronized (this.mutex) {
-			return this.value - v;
-		}
-	}
-
-	public int multiply(int v) {
-		synchronized (this.mutex) {
-			return this.value * v;
-		}
-	}
-
-	public int divide(int v) {
-		synchronized (this.mutex) {
-			return this.value / v;
-		}
-	}
-
-	public int remainder(int v) {
-		synchronized (this.mutex) {
-			return this.value % v;
-		}
-	}
-
-	public int min(int v) {
-		synchronized (this.mutex) {
-			return Math.min(this.value, v);
-		}
-	}
-
-	public int max(int v) {
-		synchronized (this.mutex) {
-			return Math.max(this.value, v);
-		}
-	}
-
-	public double pow(int v) {
-		synchronized (this.mutex) {
-			return Math.pow(this.value, v);
-		}
-	}
-
-	/**
-	 * If the value changes, all waiting threads are notified.
-	 */
-	public int setValue(int value) {
-		synchronized (this.mutex) {
-			return this.setValue_(value);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private int setValue_(int v) {
-		int old = this.value;
-		return (old == v) ? old : this.setValue_(v, old);
-	}
-
-	/**
-	 * Pre-condition: synchronized and new value is different
-	 */
-	private int setChangedValue_(int v) {
-		return this.setValue_(v, this.value);
-	}
-
-	/**
-	 * Pre-condition: synchronized and new value is different
-	 */
-	private int setValue_(int v, int old) {
-		this.value = v;
-		this.mutex.notifyAll();
-		return old;
-	}
-
-	/**
-	 * Set the value to zero. If the value changes, all waiting
-	 * threads are notified. Return the previous value.
-	 */
-	public int setZero() {
-		return this.setValue(0);
-	}
-
-	/**
-	 * Increment the value by one.
-	 * Return the new value.
-	 */
-	public int increment() {
-		synchronized (this.mutex) {
-			this.value++;
-			this.mutex.notifyAll();
-			return this.value;
-		}
-	}
-
-	/**
-	 * Decrement the value by one.
-	 * Return the new value.
-	 */
-	public int decrement() {
-		synchronized (this.mutex) {
-			this.value--;
-			this.mutex.notifyAll();
-			return this.value;
-		}
-	}
-
-	/**
-	 * If the current value is the specified expected value, set it to the
-	 * specified new value. Return the previous value.
-	 */
-	public int compareAndSwap(int expectedValue, int newValue) {
-		synchronized (this.mutex) {
-			return this.compareAndSwap_(expectedValue, newValue);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private int compareAndSwap_(int expectedValue, int newValue) {
-		return (this.value == expectedValue) ? this.setValue_(newValue) : this.value;
-	}
-
-	/**
-	 * Return the object the synchronized integer locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value. If the value is already the
-	 * specified value, return immediately.
-	 */
-	public void waitUntilEqual(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEqual_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilEqual_(int v) throws InterruptedException {
-		while (this.value != v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than the specified value. If the
-	 * value is already <em>not</em> the specified value,
-	 * return immediately.
-	 */
-	public void waitUntilNotEqual(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilNotEqual_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilNotEqual_(int v) throws InterruptedException {
-		while (this.value == v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to zero.
-	 * If the value is already zero, return immediately.
-	 */
-	public void waitUntilZero() throws InterruptedException {
-		this.waitUntilEqual(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than zero.
-	 * If the value is already <em>not</em> zero,
-	 * return immediately.
-	 */
-	public void waitUntilNotZero() throws InterruptedException {
-		this.waitUntilNotEqual(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to a value greater than the specified value. If the value is already
-	 * greater than the specified value, return immediately.
-	 */
-	public void waitUntilGreaterThan(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilGreaterThan_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilGreaterThan_(int v) throws InterruptedException {
-		while (this.value <= v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to a value greater than or equal to the specified value. If the value is already
-	 * greater than or equal the specified value, return immediately.
-	 */
-	public void waitUntilGreaterThanOrEqual(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilGreaterThanOrEqual_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilGreaterThanOrEqual_(int v) throws InterruptedException {
-		while (this.value < v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to a value less than the specified value. If the value is already
-	 * less than the specified value, return immediately.
-	 */
-	public void waitUntilLessThan(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilLessThan_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilLessThan_(int v) throws InterruptedException {
-		while (this.value >= v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to a value less than or equal to the specified value. If the value is already
-	 * less than or equal the specified value, return immediately.
-	 */
-	public void waitUntilLessThanOrEqual(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilLessThanOrEqual_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilLessThanOrEqual_(int v) throws InterruptedException {
-		while (this.value > v) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value is positive.
-	 * If the value is already positive, return immediately.
-	 */
-	public void waitUntilPositive() throws InterruptedException {
-		this.waitUntilGreaterThan(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value is not positive
-	 * (i.e. negative or zero).
-	 * If the value is already <em>not</em> positive,
-	 * return immediately.
-	 */
-	public void waitUntilNotPositive() throws InterruptedException {
-		this.waitUntilLessThanOrEqual(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value is negative.
-	 * If the value is already negative, return immediately.
-	 */
-	public void waitUntilNegative() throws InterruptedException {
-		this.waitUntilLessThan(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value is not negative
-	 * (i.e. zero or positive).
-	 * If the value is already <em>not</em> negative,
-	 * return immediately.
-	 */
-	public void waitUntilNotNegative() throws InterruptedException {
-		this.waitUntilGreaterThanOrEqual(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value is already <em>not</em> the specified value, set
-	 * the value immediately.
-	 * Return the previous value.
-	 */
-	public int waitToSetValue(int v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilNotEqual_(v);
-			return this.setChangedValue_(v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than zero, then change it
-	 * back to zero and continue executing.
-	 * If the value is already <em>not</em> zero,
-	 * set the value to zero immediately.
-	 * Return the previous value.
-	 */
-	public int waitToSetZero() throws InterruptedException {
-		return this.waitToSetValue(0);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * the specified expected value, then change it
-	 * to the specified new value and continue executing.
-	 * If the value is already the specified expected value,
-	 * set the value to the specified new value immediately.
-	 * Return the previous value.
-	 */
-	public int waitToSwap(int expectedValue, int newValue) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEqual_(expectedValue);
-			return this.setValue_(newValue);
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already the specified value, return true immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilEqual(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilEqual_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilEqual_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilEqual_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value != v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value == v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was removed; return <code>false</code> if a
-	 * time-out occurred. If the value is already <em>not</em> the specified
-	 * value, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotEqual(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilNotEqual_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilNotEqual_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilNotEqual_(v);	// wait indefinitely until notified
-			return true;	// if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value == v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value != v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to zero or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now zero; return <code>false</code>
-	 * if a time-out occurred. If the value is already zero,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilZero(long timeout) throws InterruptedException {
-		return this.waitUntilEqual(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than zero or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now not zero; return <code>false</code>
-	 * if a time-out occurred. If the value is already <em>not</em>
-	 * zero, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotZero(long timeout) throws InterruptedException {
-		return this.waitUntilNotEqual(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to a value greater
-	 * than the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already greater than the specified value, return immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilGreaterThan(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilGreaterThan_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilGreaterThan_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilGreaterThan_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value <= v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value > v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to a value greater
-	 * than or equal to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already greater than or equal to the specified value,
-	 * return immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilGreaterThanOrEqual(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilGreaterThanOrEqual_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilGreaterThanOrEqual_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilGreaterThanOrEqual_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value < v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value >= v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to a value less
-	 * than the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already less than the specified value, return immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilLessThan(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilLessThan_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilLessThan_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilLessThan_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value >= v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value < v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to a value less
-	 * than or equal to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already less than or equal to the specified value,
-	 * return immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilLessThanOrEqual(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilLessThanOrEqual_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilLessThanOrEqual_(int v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilLessThanOrEqual_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.value > v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.value <= v);
-	}
-
-	/**
-	 * Suspend the current thread until the value is positive
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now positive; return <code>false</code>
-	 * if a time-out occurred. If the value is already positive,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilPositive(long timeout) throws InterruptedException {
-		return this.waitUntilGreaterThan(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value is not positive
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now not positive; return <code>false</code>
-	 * if a time-out occurred. If the value is already not positive,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotPositive(long timeout) throws InterruptedException {
-		return this.waitUntilLessThanOrEqual(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value is negative
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now negative; return <code>false</code>
-	 * if a time-out occurred. If the value is already negative,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNegative(long timeout) throws InterruptedException {
-		return this.waitUntilLessThan(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value is not negative
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value is now not negative; return <code>false</code>
-	 * if a time-out occurred. If the value is already not negative,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotNegative(long timeout) throws InterruptedException {
-		return this.waitUntilGreaterThanOrEqual(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value does not change to something other than the
-	 * specified value before the time-out, simply continue executing
-	 * without changing the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to the specified value; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already something other than the specified value, set
-	 * the value immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetValue(int v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilNotEqual_(v, timeout);
-			if (success) {
-				this.setChangedValue_(v);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than zero, then change it back to zero
-	 * and continue executing. If the value does not change to something
-	 * other than zero before the time-out, simply continue
-	 * executing without changing the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to zero; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already something other than zero, set
-	 * the value to zero immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetZero(long timeout) throws InterruptedException {
-		return this.waitToSetValue(0, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * the specified expected value, then change it
-	 * to the specified new value and continue executing.
-	 * If the value does not change to the specified expected value
-	 * before the time-out, simply continue executing without changing
-	 * the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to the specified new value; return
-	 * <code>false</code> if a time-out occurred.
-	 * If the value is already the specified expected value,
-	 * set the value to the specified new value immediately.
-	 * Return the previous value.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSwap(int expectedValue, int newValue, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEqual_(expectedValue, timeout);
-			if (success) {
-				this.setValue_(newValue);
-			}
-			return success;
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the value from another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** Comparable implementation **********
-
-	public int compareTo(ReadOnlyIntReference ref) {
-		int thisValue = this.getValue();
-		int otherValue = ref.getValue();
-		return (thisValue < otherValue) ? -1 : ((thisValue == otherValue) ? 0 : 1);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SynchronizedInt clone() {
-		try {
-			synchronized (this.mutex) {
-				return (SynchronizedInt) super.clone();
-			}
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.getValue()) + ']';
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java
deleted file mode 100644
index f3f2048..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.ObjectReference;
-
-/**
- * This class provides synchronized access to an object of type <code>V</code>.
- * It also provides protocol for suspending a thread until the
- * value is set to <code>null</code> or a non-<code>null</code> value,
- * with optional time-outs.
- * 
- * @parm V the type of the synchronized object's value
- * @see SimpleObjectReference
- */
-public class SynchronizedObject<V>
-	implements ObjectReference<V>, Cloneable, Serializable
-{
-	/** Backing value. */
-	private V value;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a synchronized object with the specified initial value
-	 * and mutex.
-	 */
-	public SynchronizedObject(V value, Object mutex) {
-		super();
-		this.value = value;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Create a synchronized object with the specified initial value.
-	 * The synchronized object itself will be the mutex.
-	 */
-	public SynchronizedObject(V value) {
-		super();
-		this.value = value;
-		this.mutex = this;
-	}
-
-	/**
-	 * Create a synchronized object with an initial value of <code>null</code>.
-	 * The synchronized object itself will be the mutex.
-	 */
-	public SynchronizedObject() {
-		this(null);
-	}
-
-
-	// ********** accessors **********
-
-	public V getValue() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	public boolean valueEquals(Object object) {
-		return Tools.valuesAreEqual(this.getValue(), object);
-	}
-
-	public boolean valueNotEqual(Object object) {
-		return Tools.valuesAreDifferent(this.getValue(), object);
-	}
-
-	public boolean isNull() {
-		synchronized (this.mutex) {
-			return this.value == null;
-		}
-	}
-
-	public boolean isNotNull() {
-		synchronized (this.mutex) {
-			return this.value != null;
-		}
-	}
-
-	/**
-	 * Set the value. If the value changes, all waiting
-	 * threads are notified. Return the previous value.
-	 */
-	public V setValue(V value) {
-		synchronized (this.mutex) {
-			return this.setValue_(value);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private V setValue_(V v) {
-		V old = this.value;
-		return Tools.valuesAreEqual(old, v) ? old : this.setValue_(v, old);
-	}
-
-	/**
-	 * Pre-condition: synchronized and new value is different
-	 */
-	private V setChangedValue_(V v) {
-		return this.setValue_(v, this.value);
-	}
-
-	/**
-	 * Pre-condition: synchronized and new value is different
-	 */
-	private V setValue_(V v, V old) {
-		this.value = v;
-		this.mutex.notifyAll();
-		return old;
-	}
-
-	/**
-	 * Set the value to <code>null</code>. If the value changes, all waiting
-	 * threads are notified. Return the previous value.
-	 */
-	public V setNull() {
-		return this.setValue(null);
-	}
-
-	/**
-	 * If the current value is the specified expected value, set it to the
-	 * specified new value. Return the previous value.
-	 */
-	public V compareAndSwap(V expectedValue, V newValue) {
-		synchronized (this.mutex) {
-			return this.compareAndSwap_(expectedValue, newValue);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private V compareAndSwap_(V expectedValue, V newValue) {
-		return Tools.valuesAreEqual(this.value, expectedValue) ? this.setValue_(newValue) : this.value;
-	}
-
-	/**
-	 * Return the object the synchronized object locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value. If the value is already the
-	 * specified value, return immediately.
-	 */
-	public void waitUntilValueIs(V v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilValueIs_(V v) throws InterruptedException {
-		while (Tools.valuesAreDifferent(this.value, v)) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than the specified value. If the
-	 * value is already <em>not</em> the specified value,
-	 * return immediately.
-	 */
-	public void waitUntilValueIsNot(V v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIsNot_(v);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilValueIsNot_(V v) throws InterruptedException {
-		while (Tools.valuesAreEqual(this.value, v)) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to <code>null</code>.
-	 * If the value is already <code>null</code>, return immediately.
-	 */
-	public void waitUntilNull() throws InterruptedException {
-		this.waitUntilValueIs(null);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than <code>null</code>.
-	 * If the value is already <em>not</em> <code>null</code>,
-	 * return immediately.
-	 */
-	public void waitUntilNotNull() throws InterruptedException {
-		this.waitUntilValueIsNot(null);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value is already <em>not</em> the specified value, set
-	 * the value immediately.
-	 * Return the previous value.
-	 */
-	public V waitToSetValue(V v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIsNot_(v);
-			return this.setChangedValue_(v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than <code>null</code>, then change it
-	 * back to <code>null</code> and continue executing.
-	 * If the value is already <em>not</em> <code>null</code>,
-	 * set the value to <code>null</code> immediately.
-	 * Return the previous value.
-	 */
-	public V waitToSetNull() throws InterruptedException {
-		return this.waitToSetValue(null);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * the specified expected value, then change it
-	 * to the specified new value and continue executing.
-	 * If the value is already the specified expected value,
-	 * set the value to the specified new value immediately.
-	 * Return the previous value.
-	 */
-	public V waitToSwap(V expectedValue, V newValue) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs_(expectedValue);
-			return this.setValue_(newValue);
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already the specified value, return true immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilValueIs(V v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIs_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilValueIs_(V v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilValueIs_(v);  // wait indefinitely until notified
-			return true;  // if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while (Tools.valuesAreDifferent(this.value, v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return Tools.valuesAreEqual(this.value, v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was removed; return <code>false</code> if a
-	 * time-out occurred. If the value is already <em>not</em> the specified
-	 * value, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilValueIsNot(V v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIsNot_(v, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilValueIsNot_(V v, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilValueIsNot_(v);	// wait indefinitely until notified
-			return true;	// if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while (Tools.valuesAreEqual(this.value, v) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return Tools.valuesAreDifferent(this.value, v);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to <code>null</code> or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred. If the value is already <code>null</code>,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNull(long timeout) throws InterruptedException {
-		return this.waitUntilValueIs(null, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than <code>null</code> or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the specified value was achieved; return <code>false</code>
-	 * if a time-out occurred. If the value is already <em>not</em>
-	 * <code>null</code>, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotNull(long timeout) throws InterruptedException {
-		return this.waitUntilValueIsNot(null, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value does not change to something other than the
-	 * specified value before the time-out, simply continue executing
-	 * without changing the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to the specified value; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already something other than the specified value, set
-	 * the value immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetValue(V v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilValueIsNot_(v, timeout);
-			if (success) {
-				this.setChangedValue_(v);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than <code>null</code>, then change it back to <code>null</code>
-	 * and continue executing. If the value does not change to something
-	 * other than <code>null</code> before the time-out, simply continue
-	 * executing without changing the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to <code>null</code>; return <code>false</code>
-	 * if a time-out occurred.
-	 * If the value is already something other than <code>null</code>, set
-	 * the value to <code>null</code> immediately and return <code>true</code>.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSetNull(long timeout) throws InterruptedException {
-		return this.waitToSetValue(null, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * the specified expected value, then change it
-	 * to the specified new value and continue executing.
-	 * If the value does not change to the specified expected value
-	 * before the time-out, simply continue executing without changing
-	 * the value.
-	 * The time-out is specified in milliseconds. Return <code>true</code>
-	 * if the value was set to the specified new value; return
-	 * <code>false</code> if a time-out occurred.
-	 * If the value is already the specified expected value,
-	 * set the value to the specified new value immediately.
-	 * Return the previous value.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToSwap(V expectedValue, V newValue, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilValueIs_(expectedValue, timeout);
-			if (success) {
-				this.setValue_(newValue);
-			}
-			return success;
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the value from another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SynchronizedObject<V> clone() {
-		try {
-			synchronized (this.mutex) {
-				@SuppressWarnings("unchecked")
-				SynchronizedObject<V> clone = (SynchronizedObject<V>) super.clone();
-				return clone;
-			}
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.getValue()) + ']';
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java
deleted file mode 100644
index 5abb326..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Thread-safe implementation of the {@link Queue} interface.
- * This also provides protocol for suspending a thread until the
- * queue is empty or not empty, with optional time-outs.
- */
-public class SynchronizedQueue<E>
-	implements Queue<E>, Serializable
-{
-	/** Backing queue. */
-	private final Queue<E> queue;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a synchronized queue that wraps the
-	 * specified queue and locks on the specified mutex.
-	 */
-	public SynchronizedQueue(Queue<E> queue, Object mutex) {
-		super();
-		if (queue == null) {
-			throw new NullPointerException();
-		}
-		this.queue = queue;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Construct a synchronized queue that wraps the
-	 * specified queue and locks on itself.
-	 */
-	public SynchronizedQueue(Queue<E> queue) {
-		super();
-		if (queue == null) {
-			throw new NullPointerException();
-		}
-		this.queue = queue;
-		this.mutex = this;
-	}
-
-	/**
-	 * Construct an empty synchronized queue that locks on the specified mutex.
-	 */
-	public SynchronizedQueue(Object mutex) {
-		this(new SimpleQueue<E>(), mutex);
-	}
-
-	/**
-	 * Construct an empty synchronized queue that locks on itself.
-	 */
-	public SynchronizedQueue() {
-		this(new SimpleQueue<E>());
-	}
-
-
-	// ********** Queue implementation **********
-
-	public void enqueue(E element) {
-		synchronized (this.mutex) {
-			this.enqueue_(element);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void enqueue_(E element) {
-		this.queue.enqueue(element);
-		this.mutex.notifyAll();
-	}
-
-	public E dequeue() {
-		synchronized (this.mutex) {
-			return this.dequeue_();
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private E dequeue_() {
-		E element = this.queue.dequeue();
-		this.mutex.notifyAll();
-		return element;
-	}
-
-	public E peek() {
-		synchronized (this.mutex) {
-			return this.queue.peek();
-		}
-	}
-
-	public boolean isEmpty() {
-		synchronized (this.mutex) {
-			return this.queue.isEmpty();
-		}
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the queue's empty status changes
-	 * to the specified value.
-	 */
-	public void waitUntilEmptyIs(boolean empty) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(empty);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilEmptyIs_(boolean empty) throws InterruptedException {
-		while (this.queue.isEmpty() != empty) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the queue is empty.
-	 */
-	public void waitUntilEmpty() throws InterruptedException {
-		this.waitUntilEmptyIs(true);
-	}
-
-	/**
-	 * Suspend the current thread until the queue has something on it.
-	 */
-	public void waitUntilNotEmpty() throws InterruptedException {
-		this.waitUntilEmptyIs(false);
-	}
-
-	/**
-	 * Suspend the current thread until the queue is empty,
-	 * then "enqueue" the specified item to the tail of the queue
-	 * and continue executing.
-	 */
-	public void waitToEnqueue(E element) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(true);
-			this.enqueue_(element);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the queue has something on it,
-	 * then "dequeue" an item from the head of the queue and return it.
-	 */
-	public Object waitToDequeue() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(false);
-			return this.dequeue_();
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the queue's empty status changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if the specified
-	 * empty status was achieved; return <code>false</code> if a time-out occurred.
-	 * If the queue's empty status is already the specified value,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilEmptyIs(boolean empty, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilEmptyIs_(empty, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilEmptyIs_(boolean empty, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilEmptyIs_(empty);	// wait indefinitely until notified
-			return true;	// if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.queue.isEmpty() != empty) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.queue.isEmpty() == empty);
-	}
-
-	/**
-	 * Suspend the current thread until the queue is empty
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the queue is empty; return <code>false</code> if a time-out occurred.
-	 * If the queue is already empty, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilEmpty(long timeout) throws InterruptedException {
-		return this.waitUntilEmptyIs(true, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the queue has something on it.
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the queue is not empty; return <code>false</code> if a time-out occurred.
-	 * If the queue already has something on it, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotEmpty(long timeout) throws InterruptedException {
-		return this.waitUntilEmptyIs(false, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the queue is empty,
-	 * then "enqueue" the specified item to the tail of the queue
-	 * and continue executing. If the queue is not emptied out
-	 * before the time-out, simply continue executing without
-	 * "enqueueing" the item.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if the
-	 * item was enqueued; return <code>false</code> if a time-out occurred.
-	 * If the queue is already empty, "enqueue" the specified item and
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToEnqueue(E element, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEmptyIs_(true, timeout);
-			if (success) {
-				this.enqueue_(element);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the queue has something on it,
-	 * then "dequeue" an item from the head of the queue and return it.
-	 * If the queue is empty and nothing is "enqueued" on to it before the
-	 * time-out, throw a no such element exception.
-	 * The time-out is specified in milliseconds.
-	 * If the queue is not empty, "dequeue" an item and
-	 * return it immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public Object waitToDequeue(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEmptyIs_(false, timeout);
-			if (success) {
-				return this.dequeue_();
-			}
-			throw new NoSuchElementException();
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If the current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the queue in another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** additional public protocol **********
-
-	/**
-	 * "Drain" all the current items from the queue into specified queue.
-	 */
-	public void drainTo(Queue<E> q) {
-		synchronized (this.mutex) {
-			this.drainTo_(q);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void drainTo_(Queue<E> q) {
-		boolean changed = false;
-		while ( ! this.queue.isEmpty()) {
-			q.enqueue(this.queue.dequeue());
-			changed = true;
-		}
-		if (changed) {
-			this.mutex.notifyAll();
-		}
-	}
-
-	/**
-	 * Return the object the queue locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return '[' + this.queue.toString() + ']';
-		}
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java
deleted file mode 100644
index 17033fc..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-import java.util.EmptyStackException;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Thread-safe implementation of the {@link Stack} interface.
- * This also provides protocol for suspending a thread until the
- * stack is empty or not empty, with optional time-outs.
- */
-public class SynchronizedStack<E>
-	implements Stack<E>, Serializable
-{
-	/** Backing stack. */
-	private final Stack<E> stack;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a synchronized stack that wraps the
-	 * specified stack and locks on the specified mutex.
-	 */
-	public SynchronizedStack(Stack<E> stack, Object mutex) {
-		super();
-		if (stack == null) {
-			throw new NullPointerException();
-		}
-		this.stack = stack;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Construct a synchronized stack that wraps the
-	 * specified stack and locks on itself.
-	 */
-	public SynchronizedStack(Stack<E> stack) {
-		super();
-		if (stack == null) {
-			throw new NullPointerException();
-		}
-		this.stack = stack;
-		this.mutex = this;
-	}
-
-	/**
-	 * Construct an empty synchronized stack that locks on the specified mutex.
-	 */
-	public SynchronizedStack(Object mutex) {
-		this(new SimpleStack<E>(), mutex);
-	}
-
-	/**
-	 * Construct an empty synchronized stack that locks on itself.
-	 */
-	public SynchronizedStack() {
-		this(new SimpleStack<E>());
-	}
-
-
-	// ********** Stack implementation **********
-
-	public void push(E element) {
-		synchronized (this.mutex) {
-			this.push_(element);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void push_(E element) {
-		this.stack.push(element);
-		this.mutex.notifyAll();
-	}
-
-	public E pop() {
-		synchronized (this.mutex) {
-			return this.pop_();
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private E pop_() {
-		E o = this.stack.pop();
-		this.mutex.notifyAll();
-		return o;
-	}
-
-	public E peek() {
-		synchronized (this.mutex) {
-			return this.stack.peek();
-		}
-	}
-
-	public boolean isEmpty() {
-		synchronized (this.mutex) {
-			return this.stack.isEmpty();
-		}
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the stack's empty status changes
-	 * to the specified value.
-	 */
-	public void waitUntilEmptyIs(boolean empty) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(empty);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private void waitUntilEmptyIs_(boolean empty) throws InterruptedException {
-		while (this.stack.isEmpty() != empty) {
-			this.mutex.wait();
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty.
-	 */
-	public void waitUntilEmpty() throws InterruptedException {
-		this.waitUntilEmptyIs(true);
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it.
-	 */
-	public void waitUntilNotEmpty() throws InterruptedException {
-		this.waitUntilEmptyIs(false);
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty,
-	 * then "push" the specified item on to the top of the stack
-	 * and continue executing.
-	 */
-	public void waitToPush(E element) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(true);
-			this.push_(element);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it,
-	 * then "pop" an item from the top of the stack and return it.
-	 */
-	public Object waitToPop() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs_(false);
-			return this.pop_();
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the stack's empty status changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if the specified
-	 * empty status was achieved; return <code>false</code> if a time-out occurred.
-	 * If the stack's empty status is already the specified value,
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilEmptyIs(boolean empty, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilEmptyIs_(empty, timeout);
-		}
-	}
-
-	/**
-	 * Pre-condition: synchronized
-	 */
-	private boolean waitUntilEmptyIs_(boolean empty, long timeout) throws InterruptedException {
-		if (timeout == 0L) {
-			this.waitUntilEmptyIs_(empty);	// wait indefinitely until notified
-			return true;	// if it ever comes back, the condition was met
-		}
-
-		long stop = System.currentTimeMillis() + timeout;
-		long remaining = timeout;
-		while ((this.stack.isEmpty() != empty) && (remaining > 0L)) {
-			this.mutex.wait(remaining);
-			remaining = stop - System.currentTimeMillis();
-		}
-		return (this.stack.isEmpty() == empty);
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the stack is empty; return <code>false</code> if a time-out occurred.
-	 * If the stack is already empty, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilEmpty(long timeout) throws InterruptedException {
-		return this.waitUntilEmptyIs(true, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it.
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if
-	 * the stack is not empty; return <code>false</code> if a time-out occurred.
-	 * If the stack already has something on it, return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitUntilNotEmpty(long timeout) throws InterruptedException {
-		return this.waitUntilEmptyIs(false, timeout);
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty,
-	 * then "push" the specified item on to the top of the stack
-	 * and continue executing. If the stack is not emptied out
-	 * before the time-out, simply continue executing without
-	 * "pushing" the item.
-	 * The time-out is specified in milliseconds. Return <code>true</code> if the
-	 * item was pushed; return <code>false</code> if a time-out occurred.
-	 * If the stack is already empty, "push" the specified item and
-	 * return <code>true</code> immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public boolean waitToPush(E element, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEmptyIs_(true, timeout);
-			if (success) {
-				this.push_(element);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it,
-	 * then "pop" an item from the top of the stack and return it.
-	 * If the stack is empty and nothing is "pushed" on to it before the
-	 * time-out, throw an empty stack exception.
-	 * The time-out is specified in milliseconds.
-	 * If the stack is not empty, "pop" an item and
-	 * return it immediately.
-	 * If the time-out is zero, wait indefinitely.
-	 */
-	public Object waitToPop(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEmptyIs_(false, timeout);
-			if (success) {
-				return this.pop_();
-			}
-			throw new EmptyStackException();
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If the current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the stack in another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** additional public protocol **********
-
-	/**
-	 * Return the object the stack locks on while performing
-	 * its operations.
-	 */
-	public Object getMutex() {
-		return this.mutex;
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return '[' + this.stack.toString() + ']';
-		}
-	}
-
-	private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
-		synchronized (this.mutex) {
-			s.defaultWriteObject();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java
deleted file mode 100644
index 02168fc..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * This implementation of the Command interface allows the client to
- * specify a different Command for each thread.
- */
-public class ThreadLocalCommand implements Command {
-	protected final ThreadLocal<Command> threadLocal;
-	protected final Command defaultCommand;
-
-	/**
-	 * The default command does nothing.
-	 */
-	public ThreadLocalCommand() {
-		this(Command.Null.instance());
-	}
-
-	public ThreadLocalCommand(Command defaultCommand) {
-		super();
-		this.defaultCommand = defaultCommand;
-		this.threadLocal = this.buildThreadLocal();
-	}
-
-	protected ThreadLocal<Command> buildThreadLocal() {
-		return new ThreadLocal<Command>();
-	}
-
-	public void execute() {
-		this.get().execute();
-	}
-
-	protected Command get() {
-		Command command = this.threadLocal.get();
-		return (command != null) ? command : this.defaultCommand;
-	}
-
-	/**
-	 * Set the current thread's command to the specified value.
-	 */
-	public void set(Command command) {
-		this.threadLocal.set(command);
-	}
-
-	/**
-	 * Return the string representation of the current thread's command.
-	 */
-	@Override
-	public String toString() {
-		return this.get().toString();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java
deleted file mode 100644
index e8e5064..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.CommandExecutor;
-
-/**
- * This implementation of the CommandExecutor interface allows the client to
- * specify a different Command Executor for each thread.
- */
-public class ThreadLocalCommandExecutor implements CommandExecutor {
-	protected final ThreadLocal<CommandExecutor> threadLocal;
-	protected final CommandExecutor defaultCommandExecutor;
-
-	/**
-	 * The default command executor simply executes the command directly.
-	 */
-	public ThreadLocalCommandExecutor() {
-		this(CommandExecutor.Default.instance());
-	}
-
-	public ThreadLocalCommandExecutor(CommandExecutor defaultCommandExecutor) {
-		super();
-		this.defaultCommandExecutor = defaultCommandExecutor;
-		this.threadLocal = this.buildThreadLocal();
-	}
-
-	protected ThreadLocal<CommandExecutor> buildThreadLocal() {
-		return new ThreadLocal<CommandExecutor>();
-	}
-
-	public void execute(Command command) {
-		this.getThreadLocalCommandExecutor().execute(command);
-	}
-
-	protected CommandExecutor getThreadLocalCommandExecutor() {
-		CommandExecutor ce = this.threadLocal.get();
-		return (ce != null) ? ce : this.defaultCommandExecutor;
-	}
-
-	/**
-	 * Set the current thread's command executor to the specified value.
-	 */
-	public void set(CommandExecutor commandExecutor) {
-		this.threadLocal.set(commandExecutor);
-	}
-
-	/**
-	 * Return the string representation of the current thread's command
-	 * executor.
-	 */
-	@Override
-	public String toString() {
-		return this.getThreadLocalCommandExecutor().toString();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java
deleted file mode 100644
index e3c238d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-/**
- * Various utility methods.
- */
-@SuppressWarnings("nls")
-public final class Tools {
-
-	// ********** object comparison **********
-
-	/**
-	 * Return whether the specified values are equal, with the appropriate
-	 * <code>null</code> checks.
-	 */
-	public static boolean valuesAreEqual(Object value1, Object value2) {
-		return (value1 == null) ?
-				(value2 == null) :
-				((value2 != null) && value1.equals(value2));
-	}
-
-	/**
-	 * Return whether the specified values are different, with the appropriate
-	 * <code>null</code> checks.
-	 */
-	public static boolean valuesAreDifferent(Object value1, Object value2) {
-		return (value1 == null) ?
-				(value2 != null) :
-				((value2 == null) || ! value1.equals(value2));
-	}
-
-
-	// ********** System properties **********
-
-	/**
-	 * Return whether the current JVM is Sun's (or Oracle's).
-	 */
-	public static boolean jvmIsSun() {
-		return jvmIs("Sun") || jvmIs("Oracle");
-	}
-
-	/**
-	 * Return whether the current JVM is IBM's.
-	 */
-	public static boolean jvmIsIBM() {
-		return jvmIs("IBM");
-	}
-
-	private static boolean jvmIs(String jvmVendorName) {
-		return System.getProperty("java.vendor").startsWith(jvmVendorName);
-	}
-
-	/**
-	 * Return whether the current operating system is Microsoft Windows.
-	 */
-	public static boolean osIsWindows() {
-		return osIs("Windows");
-	}
-
-	/**
-	 * Return whether the current operating system is Linux.
-	 */
-	public static boolean osIsLinux() {
-		return osIs("Linux");
-	}
-
-	private static boolean osIs(String osName) {
-		return System.getProperty("os.name").indexOf(osName) != -1;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private Tools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java
deleted file mode 100644
index d95534e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Used by various "pluggable" classes to transform objects.
- * Transform an object of type <code>T1</code> to an object of type
- * <code>T2</code>.
- * 
- * @param <T1> the type of the object passed to the transformer
- * @param <T2> the type of the object returned by the transformer
- */
-public interface Transformer<T1, T2> {
-
-	/**
-	 * Return the transformed object.
-	 * The semantics of "transform" is determined by the
-	 * contract between the client and the server.
-	 */
-	T2 transform(T1 o);
-
-
-	/**
-	 * A "null" transformer will perform no transformation at all;
-	 * it will simply return the object "untransformed".
-	 */
-	final class Null<S1, S2> implements Transformer<S1, S2>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Transformer INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> Transformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S2 transform(S1 o) {
-			return (S2) o;
-		}
-		@Override
-		public String toString() {
-			return "Transformer.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-	/**
-	 * A "disabled" transformer will throw an exception if
-	 * {@link #transform(Object)} is called. This is useful in situations
-	 * where a transformer is optional and the default transformer should
-	 * not be used.
-	 */
-	final class Disabled<S1, S2> implements Transformer<S1, S2>, Serializable {
-		@SuppressWarnings("rawtypes")
-		public static final Transformer INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> Transformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public S2 transform(S1 o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Transformer.Disabled"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java
deleted file mode 100644
index baf7d30..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-
-/**
- * This encoder will replace any of a specified set of characters with an XML
- * "character reference": '/' => "&#x2f;"
- */
-public final class XMLStringEncoder {
-
-	/** The set of characters to be converted into XML character references. */
-	private final char[] chars;
-
-	/** Cache the value of the highest character in the set above. */
-	private final char maxChar;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct an encoder that converts the specified set of characters
-	 * into XML character references.
-	 */
-	public XMLStringEncoder(char[] chars) {
-		super();
-		if (chars == null) {
-			throw new NullPointerException();
-		}
-		// the ampersand must be included since it is the escape character
-		if (ArrayTools.contains(chars, '&')) {
-			this.chars = chars;
-		} else {
-			this.chars = ArrayTools.add(chars, '&');
-		}
-		this.maxChar = this.calculateMaxInvalidFileNameChar();
-	}
-
-	/**
-	 * Calculate the maximum value of the set of characters to be converted
-	 * into XML character references. This will be used to short-circuit the
-	 * search for a character in the set.
-	 * @see #charIsToBeEncoded(char)
-	 */
-	private char calculateMaxInvalidFileNameChar() {
-		char[] localChars = this.chars;
-		char max = 0;
-		for (int i = localChars.length; i-- > 0; ) {
-			char c = localChars[i];
-			if (max < c) {
-				max = c;
-			}
-		}
-		return max;
-	}
-
-
-	// ********** API **********
-
-	/**
-	 * Return the specified string with any characters in the set
-	 * replaced with XML character references.
-	 */
-	public String encode(String s) {
-		int len = s.length();
-		// allow for a few encoded characters
-		StringBuilder sb = new StringBuilder(len + 20);
-		for (int i = 0; i < len; i++) {
-			this.appendCharacterTo(s.charAt(i), sb);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Return the specified string with any XML character references
-	 * replaced by the characters themselves.
-	 */
-	public String decode(String s) {
-		StringBuilder sb = new StringBuilder(s.length());
-		StringBuilder temp = new StringBuilder();	// performance tweak
-		this.decodeTo(new StringReader(s), sb, temp);
-		return sb.toString();
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Append the specified character to the string buffer,
-	 * converting it to an XML character reference if necessary.
-	 */
-	private void appendCharacterTo(char c, StringBuilder sb) {
-		if (this.charIsToBeEncoded(c)) {
-			this.appendCharacterReferenceTo(c, sb);
-		} else {
-			sb.append(c);
-		}
-	}
-
-	/**
-	 * Return whether the specified character is one of the characters
-	 * to be converted to XML character references.
-	 */
-	private boolean charIsToBeEncoded(char c) {
-		return (c <= this.maxChar) && ArrayTools.contains(this.chars, c);
-	}
-
-	/**
-	 * Append the specified character's XML character reference to the
-	 * specified string buffer (e.g. '/' => "&#x2f;").
-	 */
-	private void appendCharacterReferenceTo(char c, StringBuilder sb) {
-		sb.append("&#x"); //$NON-NLS-1$
-		sb.append(Integer.toString(c, 16));
-		sb.append(';');
-	}
-
-	private void decodeTo(Reader reader, StringBuilder sb, StringBuilder temp) {
-		try {
-			this.decodeTo_(reader, sb, temp);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private void decodeTo_(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException {
-		int c = reader.read();
-		while (c != -1) {
-			if (c == '&') {
-				this.decodeCharacterReferenceTo(reader, sb, temp);
-			} else {
-				sb.append((char) c);
-			}
-			c = reader.read();
-		}
-		reader.close();
-	}
-
-	private void decodeCharacterReferenceTo(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException {
-		int c = reader.read();
-		this.checkChar(c, '#');
-		c = reader.read();
-		this.checkChar(c, 'x');
-
-		temp.setLength(0);  // re-use temp
-		c = reader.read();
-		while (c != ';') {
-			this.checkEndOfStream(c);
-			temp.append((char) c);
-			c = reader.read();
-		}
-		String charValue = temp.toString();
-		if (charValue.length() == 0) {
-			throw new IllegalStateException("missing numeric string"); //$NON-NLS-1$
-		}
-		sb.append((char) Integer.parseInt(charValue, 16));
-	}
-
-	private void checkChar(int c, int expected) {
-		this.checkEndOfStream(c);
-		if (c != expected) {
-			throw new IllegalStateException("expected '" + (char) expected + "', but encountered '" + (char) c + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	private void checkEndOfStream(int c) {
-		if (c == -1) {
-			throw new IllegalStateException("unexpected end of string"); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java
deleted file mode 100644
index 7cd0c02..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-
-/**
- * An <code>EmptyEnumeration</code> is just that.
- * 
- * @param <E> the type of elements returned by the enumeration
- */
-public final class EmptyEnumeration<E>
-	implements Enumeration<E>
-{
-
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final EmptyEnumeration INSTANCE = new EmptyEnumeration();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Enumeration<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyEnumeration() {
-		super();
-	}
-
-	public boolean hasMoreElements() {
-		return false;
-	}
-
-	public E nextElement() {
-		throw new NoSuchElementException();
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java
deleted file mode 100644
index ee6000c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * An <code>IteratorEnumeration</code> wraps an
- * {@link Iterator} so that it can be treated like an
- * {@link Enumeration}.
- * Hopefully we don't have much need for this....
- * 
- * @param <E> the type of elements returned by the enumeration
- */
-public class IteratorEnumeration<E>
-	implements Enumeration<E>
-{
-	private final Iterator<? extends E> iterator;
-
-	/**
-	 * Construct an enumeration that wraps the specified iterable.
-	 */
-	public IteratorEnumeration(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an enumeration that wraps the specified iterator.
-	 */
-	public IteratorEnumeration(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasMoreElements() {
-		return this.iterator.hasNext();
-	}
-
-	public E nextElement() {
-		return this.iterator.next();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-	
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java
deleted file mode 100644
index 5f67e72..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-
-/**
- * An <code>ArrayIterable</code> provides an {@link Iterable}
- * for an array of objects of type <code>E</code>.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see ArrayIterator
- * @see ArrayListIterable
- */
-public class ArrayIterable<E>
-	implements Iterable<E>
-{
-	final E[] array;
-	final int start;
-	final int length;
-
-	/**
-	 * Construct an iterable for the specified array.
-	 */
-	public ArrayIterable(E... array) {
-		this(array, 0, array.length);
-	}
-
-	/**
-	 * Construct an iterable for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the rest of the array.
-	 */
-	public ArrayIterable(E[] array, int start) {
-		this(array, start, array.length - start);
-	}
-
-	/**
-	 * Construct an iterable for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayIterable(E[] array, int start, int length) {
-		super();
-		if ((start < 0) || (start > array.length)) {
-			throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$
-		}
-		if ((length < 0) || (length > array.length - start)) {
-			throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$
-		}
-		this.array = array;
-		this.start = start;
-		this.length = length;
-	}
-
-	public Iterator<E> iterator() {
-		return new ArrayIterator<E>(this.array, this.start, this.length);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java
deleted file mode 100644
index 78ceb0e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator;
-
-/**
- * An <code>ArrayListIterable</code> provides a {@link ListIterable}
- * for an array of objects of type <code>E</code>.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see ArrayIterable
- * @see ArrayListIterator
- */
-public class ArrayListIterable<E>
-	extends ArrayIterable<E>
-	implements ListIterable<E>
-{
-	/**
-	 * Construct a list iterable for the specified array.
-	 */
-	public ArrayListIterable(E... array) {
-		this(array, 0, array.length);
-	}
-
-	/**
-	 * Construct a list iterable for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the rest of the array.
-	 */
-	public ArrayListIterable(E[] array, int start) {
-		this(array, start, array.length - start);
-	}
-
-	/**
-	 * Construct a list iterable for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayListIterable(E[] array, int start, int length) {
-		super(array, start, length);
-	}
-
-	@Override
-	public ListIterator<E> iterator() {
-		return new ArrayListIterator<E>(this.array, this.start, this.length);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java
deleted file mode 100644
index 12dcc76..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator;
-
-/**
- * A <code>ChainIterable</code> provides a pluggable {@link Iterable}
- * that loops over a chain of arbitrarily linked objects. The chain
- * should be null-terminated (i.e. a call to the {@link #nextLink(Object)}
- * method should return <code>null</code> when it is passed the last
- * link of the chain).
- * To use, supply a starting link and supply a {@link ChainIterator.Linker} or
- * subclass <code>ChainIterable</code> and override the
- * {@link #nextLink(Object)} method.
- * The starting link will be the first object returned by the iterable's iterator.
- * If the starting link is <code>null</code>, the iterable will be empty.
- * Note this iterable does not support <code>null</code> elements.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see ChainIterator
- */
-public class ChainIterable<E>
-	implements Iterable<E>
-{
-	private final E startLink;
-	private final ChainIterator.Linker<E> linker;
-
-
-	/**
-	 * Construct an iterable with the specified starting link
-	 * and a default linker that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #nextLink(Object)} method instead of building
-	 * a {@link ChainIterator.Linker}.
-	 */
-	public ChainIterable(E startLink) {
-		super();
-		this.startLink = startLink;
-		this.linker = this.buildDefaultLinker();
-	}
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and linker.
-	 */
-	public ChainIterable(E startLink, ChainIterator.Linker<E> linker) {
-		super();
-		this.startLink = startLink;
-		this.linker = linker;
-	}
-
-	protected ChainIterator.Linker<E> buildDefaultLinker() {
-		return new DefaultLinker();
-	}
-
-	public Iterator<E> iterator() {
-		return new ChainIterator<E>(this.startLink, this.linker);
-	}
-
-	/**
-	 * Return the next link in the chain; null if there are no more links.
-	 * <p>
-	 * This method can be overridden by a subclass as an alternative to
-	 * building a {@link ChainIterator.Linker}.
-	 */
-	protected E nextLink(@SuppressWarnings("unused") E currentLink) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.startLink);
-	}
-
-
-	//********** default linker **********
-
-	protected class DefaultLinker implements ChainIterator.Linker<E> {
-		public E nextLink(E currentLink) {
-			return ChainIterable.this.nextLink(currentLink);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java
deleted file mode 100644
index 22a21a4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator;
-
-/**
- * Pull together remover state and behavior for subclasses.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see SnapshotCloneIterable
- * @see LiveCloneIterable
- */
-public abstract class CloneIterable<E>
-	implements Iterable<E>
-{
-	final CloneIterator.Remover<E> remover;
-
-
-	// ********** constructors **********
-
-	protected CloneIterable() {
-		super();
-		this.remover = this.buildDefaultRemover();
-	}
-
-	protected CloneIterable(CloneIterator.Remover<E> remover) {
-		super();
-		this.remover = remover;
-	}
-
-	protected CloneIterator.Remover<E> buildDefaultRemover() {
-		return new DefaultRemover();
-	}
-
-
-	// ********** default removal **********
-
-	/**
-	 * Remove the specified element from the original collection.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link CloneIterator.Remover}.
-	 */
-	protected void remove(@SuppressWarnings("unused") E element) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-
-	//********** default mutator **********
-
-	protected class DefaultRemover implements CloneIterator.Remover<E> {
-		public void remove(E element) {
-			CloneIterable.this.remove(element);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java
deleted file mode 100644
index b98c423..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-
-/**
- * Pull together mutator state and behavior for subclasses.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see SnapshotCloneListIterable
- * @see LiveCloneListIterable
- */
-public abstract class CloneListIterable<E>
-	implements ListIterable<E>
-{
-	final CloneListIterator.Mutator<E> mutator;
-
-
-	// ********** constructors **********
-
-	protected CloneListIterable() {
-		super();
-		this.mutator = this.buildDefaultMutator();
-	}
-
-	protected CloneListIterable(CloneListIterator.Mutator<E> mutator) {
-		super();
-		this.mutator = mutator;
-	}
-
-	protected CloneListIterator.Mutator<E> buildDefaultMutator() {
-		return new DefaultMutator();
-	}
-
-
-	// ********** default mutations **********
-
-	/**
-	 * At the specified index, add the specified element to the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link CloneListIterator.Mutator}.
-	 */
-	protected void add(@SuppressWarnings("unused") int index, @SuppressWarnings("unused") E element) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * Remove the element at the specified index from the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link CloneListIterator.Mutator}.
-	 */
-	protected void remove(@SuppressWarnings("unused") int index) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * At the specified index, set the specified element in the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link CloneListIterator.Mutator}.
-	 */
-	protected void set(@SuppressWarnings("unused") int index, @SuppressWarnings("unused") E element) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-
-	//********** default mutator **********
-
-	protected class DefaultMutator implements CloneListIterator.Mutator<E> {
-		public void add(int index, E element) {
-			CloneListIterable.this.add(index, element);
-		}
-		public void remove(int index) {
-			CloneListIterable.this.remove(index);
-		}
-		public void set(int index, E element) {
-			CloneListIterable.this.set(index, element);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java
deleted file mode 100644
index 442737e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-
-/**
- * A <code>CompositeIterable</code> wraps an {@link Iterable}
- * of {@link Iterable}s and makes them appear to be a single
- * {@link Iterable}.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see CompositeIterator
- * @see CompositeListIterable
- */
-public class CompositeIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends Iterable<? extends E>> iterables;
-
-
-	/**
-	 * Construct an iterable with the specified collection of iterables.
-	 */
-	public CompositeIterable(Iterable<? extends Iterable<? extends E>> iterables) {
-		super();
-		this.iterables = iterables;
-	}
-
-	/**
-	 * Construct an iterable with the specified object prepended
-	 * to the specified iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterable(E object, Iterable<? extends E> iterable) {
-		this(new SingleElementIterable<E>(object), iterable);
-	}
-
-	/**
-	 * Construct an iterable with the specified object appended
-	 * to the specified iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterable(Iterable<? extends E> iterable, E object) {
-		this(iterable, new SingleElementIterable<E>(object));
-	}
-
-	/**
-	 * Construct an iterable with the specified iterables.
-	 */
-	public CompositeIterable(Iterable<? extends E>... iterables) {
-		this(new ArrayIterable<Iterable<? extends E>>(iterables));
-	}
-
-	/**
-	 * combined iterators
-	 */
-	public Iterator<E> iterator() {
-		return new CompositeIterator<E>(this.iterators());
-	}
-
-	/**
-	 * iterator of iterators
-	 */
-	protected Iterator<? extends Iterator<? extends E>> iterators() {
-		return new TransformationIterator<Iterable<? extends E>, Iterator<? extends E>>(this.iterables()) {
-			@Override
-			protected Iterator<? extends E> transform(Iterable<? extends E> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	/**
-	 * iterator of iterables
-	 */
-	protected Iterator<? extends Iterable<? extends E>> iterables() {
-		return this.iterables.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterables);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java
deleted file mode 100644
index 66f7562..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CompositeListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator;
-
-/**
- * A <code>CompositeListIterable</code> wraps a {@link ListIterable}
- * of {@link ListIterable}s and makes them appear to be a single
- * {@link ListIterable}.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see CompositeListIterator
- * @see CompositeIterable
- * @see ReadOnlyCompositeListIterable
- */
-public class CompositeListIterable<E>
-	implements ListIterable<E>
-{
-	private final ListIterable<? extends ListIterable<E>> iterables;
-
-
-	/**
-	 * Construct a list iterable with the specified list of list iterables.
-	 */
-	public CompositeListIterable(List<ListIterable<E>> iterables) {
-		this(new ListListIterable<ListIterable<E>>(iterables));
-	}
-
-	/**
-	 * Construct a list iterable with the specified list of list iterables.
-	 */
-	public CompositeListIterable(ListIterable<? extends ListIterable<E>> iterables) {
-		super();
-		this.iterables = iterables;
-	}
-
-	/**
-	 * Construct a list iterable with the specified object prepended
-	 * to the specified list.
-	 */
-	public CompositeListIterable(E object, List<E> list) {
-		this(object, new ListListIterable<E>(list));
-	}
-
-	/**
-	 * Construct a list iterable with the specified object prepended
-	 * to the specified list iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterable(E object, ListIterable<E> iterable) {
-		this(new SingleElementListIterable<E>(object), iterable);
-	}
-
-	/**
-	 * Construct a list iterable with the specified object appended
-	 * to the specified list.
-	 */
-	public CompositeListIterable(List<E> list, E object) {
-		this(new ListListIterable<E>(list), object);
-	}
-
-	/**
-	 * Construct a list iterable with the specified object appended
-	 * to the specified list iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterable(ListIterable<E> iterable, E object) {
-		this(iterable, new SingleElementListIterable<E>(object));
-	}
-
-	/**
-	 * Construct a list iterable with the specified list iterables.
-	 */
-	public CompositeListIterable(ListIterable<E>... iterables) {
-		this(new ArrayListIterable<ListIterable<E>>(iterables));
-	}
-
-	/**
-	 * Construct a list iterable with the specified lists.
-	 */
-	public CompositeListIterable(List<E>... lists) {
-		this(new TransformationListIterable<List<E>, ListIterable<E>>(new ArrayListIterable<List<E>>(lists)) {
-			@Override
-			protected ListIterable<E> transform(List<E> list) {
-				return new ListListIterable<E>(list);
-			}
-		});
-	}
-
-	/**
-	 * combined list iterators
-	 */
-	public ListIterator<E> iterator() {
-		return new CompositeListIterator<E>(this.iterators());
-	}
-
-	/**
-	 * list iterator of list iterators
-	 */
-	protected ListIterator<? extends ListIterator<E>> iterators() {
-		return new TransformationListIterator<ListIterable<E>, ListIterator<E>>(this.iterables()) {
-			@Override
-			protected ListIterator<E> transform(ListIterable<E> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	/**
-	 * list iterator of list iterables
-	 */
-	protected ListIterator<? extends ListIterable<E>> iterables() {
-		return this.iterables.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterables);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java
deleted file mode 100644
index c3ed1c4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.io.Serializable;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-
-/**
- * An <code>EmptyIterable</code> is just that.
- * Maybe just a touch better-performing than {@link java.util.Collections#EMPTY_SET}
- * since we don't create a new {@link Iterator} every time {@link #iterator()} is called.
- * (Not sure why they do that....)
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see EmptyIterator
- * @see EmptyListIterable
- */
-public final class EmptyIterable<E>
-	implements Iterable<E>, Serializable
-{
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final Iterable INSTANCE = new EmptyIterable();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Iterable<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyIterable() {
-		super();
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java
deleted file mode 100644
index eb6613c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.io.Serializable;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator;
-
-/**
- * An <code>EmptyListIterable</code> is just that.
- * Maybe just a touch better-performing than {@link java.util.Collections#EMPTY_LIST}
- * since we don't create a new {@link Iterator} every time {@link #iterator()} is called.
- * (Not sure why they do that....)
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see EmptyListIterator
- * @see EmptyIterable
- */
-public final class EmptyListIterable<E>
-	implements ListIterable<E>, Serializable
-{
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final ListIterable INSTANCE = new EmptyListIterable();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> ListIterable<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyListIterable() {
-		super();
-	}
-
-	public ListIterator<E> iterator() {
-		return EmptyListIterator.instance();
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java
deleted file mode 100644
index 897f0d9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator;
-
-/**
- * A <code>FilteringIterable</code> wraps another {@link Iterable}
- * and uses a {@link Filter} to determine which elements in the
- * nested iterable are to be returned by the iterable's iterator.
- * <p>
- * As an alternative to building a {@link Filter}, a subclass
- * of <code>FilteringIterable</code> can override the
- * {@link #accept(Object)} method.
- * 
- * @param <E> the type of elements to be filtered
- * 
- * @see FilteringIterator
- */
-public class FilteringIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> iterable;
-	private final Filter<E> filter;
-
-
-	/**
-	 * Construct an iterable with the specified nested
-	 * iterable and a default filter that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #accept(Object)} method instead of building
-	 * a {@link Filter}.
-	 */
-	public FilteringIterable(Iterable<? extends E> iterable) {
-		super();
-		this.iterable = iterable;
-		this.filter = this.buildDefaultFilter();
-	}
-
-	/**
-	 * Construct an iterable with the specified nested
-	 * iterable and filter.
-	 */
-	public FilteringIterable(Iterable<? extends E> iterable, Filter<E> filter) {
-		super();
-		this.iterable = iterable;
-		this.filter = filter;
-	}
-
-	protected Filter<E> buildDefaultFilter() {
-		return new DefaultFilter();
-	}
-
-	public Iterator<E> iterator() {
-		return new FilteringIterator<E>(this.iterable.iterator(), this.filter);
-	}
-
-	/**
-	 * Return whether the iterable's iterator
-	 * should return the specified next element from a call to the
-	 * {@link Iterator#next()} method.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Filter}.
-	 */
-	protected boolean accept(@SuppressWarnings("unused") E o) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-
-	//********** default filter **********
-
-	protected class DefaultFilter implements Filter<E> {
-		public boolean accept(E o) {
-			return FilteringIterable.this.accept(o);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java
deleted file mode 100644
index 01912a4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.GraphIterator;
-
-/**
- * A <code>GraphIterable</code> is similar to a {@link TreeIterable}
- * except that it cannot be assumed that all nodes assume a strict tree
- * structure. For instance, in a tree, a node cannot be a descendent of
- * itself, but a graph may have a cyclical structure.
- * 
- * A <code>GraphIterable</code> simplifies the traversal of a
- * graph of objects, where the objects' protocol(s) provides
- * a method for getting the next collection of nodes in the graph,
- * (or <em>neighbors</em>), but does not provide a method for
- * getting <em>all</em> of the nodes in the graph.
- * (e.g. a neighbor can return his neighbors, and those neighbors
- * can return their neighbors, which might also include the original
- * neighbor, but you only want to visit the original neighbor once.)
- * <p>
- * If a neighbor has already been visited (determined by using 
- * {@link #equals(Object)}), that neighbor is not visited again,
- * nor are the neighbors of that object.
- * <p>
- * It is up to the user of this class to ensure a <em>complete</em> graph.
- * <p>
- * To use, supply:<ul>
- * <li> either the initial node of the graph or an {@link Iterable}
- * of the initial collection of graph nodes
- * <li> a {@link GraphIterator.MisterRogers} that tells who the neighbors are
- * of each node
- * (alternatively, subclass <code>GraphIterable</code>
- * and override the {@link #neighbors(Object)} method)
- * </ul>
- * The {@link Iterator#remove()} operation is not supported. This behavior, if 
- * desired, must be implemented by the user of this class.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see GraphIterator
- */
-public class GraphIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> roots;
-	private final GraphIterator.MisterRogers<E> misterRogers;
-
-
-	/**
-	 * Construct an iterable containing the nodes of a graph with the specified root
-	 * and a default Mr. Rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link GraphIterator.MisterRogers}.
-	 */
-	public GraphIterable(E root) {
-		this(new SingleElementIterable<E>(root));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified root and Mr. Rogers.
-	 */
-	public GraphIterable(E root, GraphIterator.MisterRogers<E> misterRogers) {
-		this(new SingleElementIterable<E>(root), misterRogers);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified collection of roots
-	 * and a default Mr. Rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link GraphIterator.MisterRogers}.
-	 */
-	public GraphIterable(E... roots) {
-		this(Arrays.asList(roots));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified roots and Mr. Rogers.
-	 */
-	public GraphIterable(E[] roots, GraphIterator.MisterRogers<E> misterRogers) {
-		this(Arrays.asList(roots), misterRogers);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified collection of roots
-	 * and a default Mr. Rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link GraphIterator.MisterRogers}.
-	 */
-	public GraphIterable(Iterable<? extends E> roots) {
-		super();
-		this.roots = roots;
-		this.misterRogers = this.buildDefaultMisterRogers();
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified roots and Mr. Rogers.
-	 */
-	public GraphIterable(Iterable<? extends E> roots, GraphIterator.MisterRogers<E> misterRogers) {
-		super();
-		this.roots = roots;
-		this.misterRogers = misterRogers;
-	}
-
-	protected GraphIterator.MisterRogers<E> buildDefaultMisterRogers() {
-		return new DefaultMisterRogers();
-	}
-
-	public Iterator<E> iterator() {
-		return new GraphIterator<E>(this.roots, this.misterRogers);
-	}
-
-	/**
-	 * Return the immediate neighbors of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link GraphIterator.MisterRogers}.
-	 */
-	protected Iterator<? extends E> neighbors(@SuppressWarnings("unused") E next) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.roots);
-	}
-
-
-	//********** default Mr. Rogers **********
-
-	protected class DefaultMisterRogers implements GraphIterator.MisterRogers<E> {
-		public Iterator<? extends E> neighbors(E node) {
-			return GraphIterable.this.neighbors(node);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java
deleted file mode 100644
index 91bab82..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.ListIterator;
-
-/**
- * A <code>ListIterable</code> simply extends {@link Iterable}
- * to return a {@link ListIterator} of type <code>E</code>.
- * 
- * @param <E> the type of elements returned by the iterable's iterators
- */
-public interface ListIterable<E>
-	extends Iterable<E>
-{
-	/**
-	 * Return a list iterator over a set of elements of type E.
-	 */
-	ListIterator<E> iterator();
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java
deleted file mode 100644
index ad5a5d7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-/**
- * A <code>ListListIterable</code> adapts a {@link List}
- * to the {@link ListIterable} interface.
- * 
- * @param <E> the type of elements returned by the iterable's iterators
- */
-public class ListListIterable<E>
-	implements ListIterable<E>
-{
-	private final List<E> list;
-
-	public ListListIterable(List<E> list) {
-		super();
-		this.list = list;
-	}
-
-	public ListIterator<E> iterator() {
-		return this.list.listIterator();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java
deleted file mode 100644
index e8aaccf..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator;
-
-/**
- * A <code>LiveCloneIterable</code> returns an iterator on a current copy of a
- * collection, allowing for concurrent access to the original collection. A
- * copy of the collection is created every time {@link #iterator()} is
- * called. As a result, the contents of the collection can be different with
- * each call to {@link #iterator()} (i.e. it is "live").
- * <p>
- * The original collection passed to the <code>LiveCloneIterable</code>'s
- * constructor should be thread-safe (e.g. {@link java.util.Vector});
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, the iterator returned by a <code>LiveCloneIterable</code> does not
- * support the {@link Iterator#remove()} operation; this is because it does not
- * have access to the original collection. But if the <code>LiveCloneIterable</code>
- * is supplied with an {@link CloneIterator.Remover} it will delegate the
- * {@link Iterator#remove()} operation to the <code>Remover</code>.
- * Alternatively, a subclass can override the iterable's {@link #remove(Object)}
- * method.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see CloneIterator
- * @see SnapshotCloneIterable
- * @see LiveCloneListIterable
- */
-public class LiveCloneIterable<E>
-	extends CloneIterable<E>
-{
-	private final Collection<? extends E> collection;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a "live" iterable for the specified collection.
-	 * The {@link Iterator#remove()} operation will not be supported
-	 * by the iterator returned by {@link #iterator()}
-	 * unless a subclass overrides the iterable's {@link #remove(Object)}
-	 * method.
-	 */
-	public LiveCloneIterable(Collection<? extends E> collection) {
-		super();
-		this.collection = collection;
-	}
-
-	/**
-	 * Construct a "live" iterable for the specified collection.
-	 * The specified remover will be used by any generated iterators to
-	 * remove objects from the original collection.
-	 */
-	public LiveCloneIterable(Collection<? extends E> collection, CloneIterator.Remover<E> remover) {
-		super(remover);
-		this.collection = collection;
-	}
-
-
-	// ********** Iterable implementation **********
-
-	public Iterator<E> iterator() {
-		return new CloneIterator<E>(this.collection, this.remover);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.collection);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java
deleted file mode 100644
index 9d26554..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-
-/**
- * A <code>LiveCloneListIterable</code> returns a list iterator on a current
- * copy of a list, allowing for concurrent access to the original list. A
- * copy of the list is created every time {@link #iterator()} is
- * called. As a result, the contents of the list can be different with
- * each call to {@link #iterator()} (i.e. it is "live").
- * <p>
- * The original list passed to the <code>LiveCloneListIterable</code>'s
- * constructor should be thread-safe (e.g. {@link java.util.Vector});
- * otherwise you run the risk of a corrupted list.
- * <p>
- * By default, the list iterator returned by a <code>LiveCloneListIterable</code>
- * does not support the modify operations; this is because it does not
- * have access to the original list. But if the <code>LiveCloneListIterable</code>
- * is supplied with an {@link CloneListIterator.Mutator} it will delegate the
- * modify operations to the <code>Mutator</code>.
- * Alternatively, a subclass can override the list iterable's mutation
- * methods.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see CloneListIterator
- * @see SnapshotCloneListIterable
- * @see LiveCloneIterable
- */
-public class LiveCloneListIterable<E>
-	extends CloneListIterable<E>
-{
-	private final List<? extends E> list;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a "live" list iterable for the specified list.
-	 * The {@link ListIterator} mutation operations will not be supported
-	 * by the list iterator returned by {@link #iterator()}
-	 * unless a subclass overrides the iterable's mutation
-	 * methods.
-	 */
-	public LiveCloneListIterable(List<? extends E> list) {
-		super();
-		this.list = list;
-	}
-
-	/**
-	 * Construct a "live" list iterable for the specified list.
-	 * The specified mutator will be used by any generated list iterators to
-	 * modify the original list.
-	 */
-	public LiveCloneListIterable(List<? extends E> list, CloneListIterator.Mutator<E> mutator) {
-		super(mutator);
-		this.list = list;
-	}
-
-
-	// ********** ListIterable implementation **********
-
-	public ListIterator<E> iterator() {
-		return new CloneListIterator<E>(this.list, this.mutator);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.list);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java
deleted file mode 100644
index ad381ee..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.PeekableIterator;
-
-/**
- * A <code>PeekableIterable</code> wraps another {@link Iterable}
- * and returns an {@link PeekableIterator} that allows a
- * {@link PeekableIterator#peek() peek} at the next element to be 
- * returned by {@link Iterator#next()}.
- * <p>
- * One, possibly undesirable, side-effect of using this iterator is that
- * the nested iterator's <code>next()</code> method will be invoked
- * <em>before</em> the peekable iterator's {@link Iterator#next()}
- * method is invoked. This is because the "next" element must be
- * pre-loaded for the {@link PeekableIterator#peek()} method.
- * This also prevents a peekable iterator from supporting the optional
- * {@link Iterator#remove()} method.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see PeekableIterator
- */
-public class PeekableIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> iterable;
-
-	/**
-	 * Construct a peekable iterable that wraps the specified
-	 * iterable.
-	 */
-	public PeekableIterable(Iterable<? extends E> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public PeekableIterator<E> iterator() {
-		return new PeekableIterator<E>(this.iterable);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java
deleted file mode 100644
index 5b2aa6d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.Queue;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.QueueIterator;
-
-/**
- * A <code>QueueIterable</code> provides an {@link Iterable}
- * for a {@link Queue} of objects of type <code>E</code>. The queue's elements
- * are {@link Queue#dequeue() dequeue}d" as the iterable's iterator returns
- * them with calls to {@link Iterator#next()}.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see Queue
- * @see QueueIterator
- */
-public class QueueIterable<E>
-	implements Iterable<E>
-{
-	private final Queue<E> queue;
-
-	/**
-	 * Construct an iterable for the specified queue.
-	 */
-	public QueueIterable(Queue<E> queue) {
-		super();
-		this.queue = queue;
-	}
-
-	public Iterator<E> iterator() {
-		return new QueueIterator<E>(this.queue);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.queue);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java
deleted file mode 100644
index ff2810f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator;
-
-/**
- * A <code>ReadOnlyCompositeListIterable</code> wraps a {@link ListIterable}
- * of {@link ListIterable}s and makes them appear to be a single
- * read-only {@link ListIterable}. A read-only composite list
- * iterable is more flexible than a normal composite list iterable when it
- * comes to the element types of the nested list iterables.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see ReadOnlyCompositeListIterator
- * @see CompositeListIterable
- */
-public class ReadOnlyCompositeListIterable<E>
-	implements ListIterable<E>
-{
-	private final ListIterable<? extends ListIterable<? extends E>> iterables;
-
-
-	/**
-	 * Construct a list iterable with the specified list of list iterables.
-	 */
-	public ReadOnlyCompositeListIterable(ListIterable<? extends ListIterable<? extends E>> iterables) {
-		super();
-		this.iterables = iterables;
-	}
-
-	/**
-	 * Construct a list iterable with the specified object prepended
-	 * to the specified list iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterable(E object, ListIterable<? extends E> iterable) {
-		this(new SingleElementListIterable<E>(object), iterable);
-	}
-
-	/**
-	 * Construct a list iterable with the specified object appended
-	 * to the specified list iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterable(ListIterable<? extends E> iterable, E object) {
-		this(iterable, new SingleElementListIterable<E>(object));
-	}
-
-	/**
-	 * Construct a list iterable with the specified list iterables.
-	 */
-	public ReadOnlyCompositeListIterable(ListIterable<? extends E>... iterables) {
-		this(new ArrayListIterable<ListIterable<? extends E>>(iterables));
-	}
-
-	/**
-	 * combined list iterators
-	 */
-	public ListIterator<E> iterator() {
-		return new ReadOnlyCompositeListIterator<E>(this.iterators());
-	}
-
-	/**
-	 * list iterator of list iterators
-	 */
-	protected ListIterator<? extends ListIterator<? extends E>> iterators() {
-		return new TransformationListIterator<ListIterable<? extends E>, ListIterator<? extends E>>(this.iterables()) {
-			@Override
-			protected ListIterator<? extends E> transform(ListIterable<? extends E> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	/**
-	 * list iterator of list iterables
-	 */
-	protected ListIterator<? extends ListIterable<? extends E>> iterables() {
-		return this.iterables.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterables);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java
deleted file mode 100644
index 0483928..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator;
-
-/**
- * A <code>ReadOnlyIterable</code> wraps another {@link Iterable}
- * and returns a read-only {@link Iterator}.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see ReadOnlyIterator
- * @see ReadOnlyListIterable
- */
-public class ReadOnlyIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> iterable;
-
-
-	/**
-	 * Construct an iterable the returns a read-only iterator on the elements
-	 * in the specified iterable.
-	 */
-	public ReadOnlyIterable(Iterable<? extends E> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.iterable);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java
deleted file mode 100644
index 1efde41..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-
-/**
- * A <code>ReadOnlyListIterable</code> wraps another {@link ListIterable}
- * and returns a read-only {@link ListIterator}.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see ReadOnlyListIterator
- * @see ReadOnlyIterable
- */
-public class ReadOnlyListIterable<E>
-	implements ListIterable<E>
-{
-	private final ListIterable<? extends E> listIterable;
-
-
-	/**
-	 * Construct a list iterable the returns a read-only list iterator on the elements
-	 * in the specified list iterable.
-	 */
-	public ReadOnlyListIterable(ListIterable<? extends E> iterable) {
-		super();
-		this.listIterable = iterable;
-	}
-
-	public ListIterator<E> iterator() {
-		return new ReadOnlyListIterator<E>(this.listIterable);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java
deleted file mode 100644
index 34ea3a7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator;
-
-/**
- * A <code>SingleElementIterable</code> returns an {@link Iterator}
- * that holds a single element
- * and returns it with the first call to {@link Iterator#next()}, at
- * which point it will return <code>false</code> to any subsequent
- * call to {@link Iterator#hasNext()}.
- * <p>
- * A <code>SingleElementIterable</code> is equivalent to the
- * {@link Iterable} returned by:
- * 	{@link java.util.Collections#singleton(Object)}.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see SingleElementIterator
- * @see SingleElementListIterable
- */
-public class SingleElementIterable<E>
-	implements Iterable<E>
-{
-	private final E element;
-
-	/**
-	 * Construct an iterable that contains only the specified element.
-	 */
-	public SingleElementIterable(E element) {
-		super();
-		this.element = element;
-	}
-
-	public Iterator<E> iterator() {
-		return new SingleElementIterator<E>(this.element);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java
deleted file mode 100644
index c6e2100..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator;
-
-/**
- * A <code>SingleElementListIterable</code> returns a {@link ListIterator}
- * that holds a single element
- * and returns it with the first call to {@link ListIterator#next()}, at
- * which point it will return <code>false</code> to any subsequent
- * call to {@link ListIterator#hasNext()}. Likewise, it will return <code>false</code>
- * to a call to {@link ListIterator#hasPrevious()} until a call to {@link ListIterator#next()},
- * at which point a call to {@link ListIterator#previous()} will return the
- * single element.
- * <p>
- * A <code>SingleElementListIterable</code> is equivalent to the
- * {@link Iterable} returned by:
- * 	{@link java.util.Collections#singletonList(Object)}.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see SingleElementListIterator
- * @see SingleElementIterable
- */
-public class SingleElementListIterable<E>
-	implements ListIterable<E>
-{
-	private final E element;
-
-	/**
-	 * Construct a list iterable that contains only the specified element.
-	 */
-	public SingleElementListIterable(E element) {
-		super();
-		this.element = element;
-	}
-
-	public ListIterator<E> iterator() {
-		return new SingleElementListIterator<E>(this.element);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java
deleted file mode 100644
index 72beebe..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator;
-
-/**
- * A <code>SnapshotCloneIterable</code> returns an iterator on a "snapshot" of a
- * collection, allowing for concurrent access to the original collection. A
- * copy of the collection is created when the iterable is constructed.
- * As a result, the contents of the collection will be the same with
- * every call to {@link #iterator()}.
- * <p>
- * The original collection passed to the <code>SnapshotCloneIterable</code>'s
- * constructor should be thread-safe (e.g. {@link java.util.Vector});
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, the iterator returned by a <code>SnapshotCloneIterable</code> does not
- * support the {@link Iterator#remove()} operation; this is because it does not
- * have access to the original collection. But if the <code>SnapshotCloneIterable</code>
- * is supplied with a {@link CloneIterator.Remover} it will delegate the
- * {@link Iterator#remove()} operation to the <code>Remover</code>.
- * Alternatively, a subclass can override the iterable's {@link #remove(Object)}
- * method.
- * <p>
- * This iterable is useful for multiple passes over a collection that should not
- * be changed (e.g. by another thread) between passes.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see CloneIterator
- * @see LiveCloneIterable
- * @see SnapshotCloneListIterable
- */
-public class SnapshotCloneIterable<E>
-	extends CloneIterable<E>
-{
-	private final Object[] array;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a "snapshot" iterable for the specified iterator.
-	 * The {@link Iterator#remove()} operation will not be supported
-	 * by the iterator returned by {@link #iterator()}
-	 * unless a subclass overrides the iterable's {@link #remove(Object)}
-	 * method.
-	 */
-	public SnapshotCloneIterable(Iterator<? extends E> iterator) {
-		super();
-		this.array = ArrayTools.array(iterator);
-	}
-
-	/**
-	 * Construct a "snapshot" iterable for the specified iterator.
-	 * The specified remover will be used by any generated iterators to
-	 * remove objects from the original collection.
-	 */
-	public SnapshotCloneIterable(Iterator<? extends E> iterator, CloneIterator.Remover<E> remover) {
-		super(remover);
-		this.array = ArrayTools.array(iterator);
-	}
-
-	/**
-	 * Construct a "snapshot" iterable for the specified collection.
-	 * The {@link Iterator#remove()} operation will not be supported
-	 * by the iterator returned by {@link #iterator()}
-	 * unless a subclass overrides the iterable's {@link #remove(Object)}
-	 * method.
-	 */
-	public SnapshotCloneIterable(Collection<? extends E> collection) {
-		super();
-		this.array = collection.toArray();
-	}
-
-	/**
-	 * Construct a "snapshot" iterable for the specified collection.
-	 * The specified remover will be used by any generated iterators to
-	 * remove objects from the original collection.
-	 */
-	public SnapshotCloneIterable(Collection<? extends E> collection, CloneIterator.Remover<E> remover) {
-		super(remover);
-		this.array = collection.toArray();
-	}
-
-
-	// ********** Iterable implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalCloneIterator<E>(this.remover, this.array);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-
-
-	// ********** clone iterator **********
-
-	/**
-	 * provide access to "internal" constructor
-	 */
-	protected static class LocalCloneIterator<E> extends CloneIterator<E> {
-		protected LocalCloneIterator(Remover<E> remover, Object[] array) {
-			super(remover, array);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java
deleted file mode 100644
index f242ab7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-
-/**
- * A <code>SnapshotCloneListIterable</code> returns a list iterator on a
- * "snapshot" of a list, allowing for concurrent access to the original list.
- * A copy of the list is created when the list iterable is constructed.
- * As a result, the contents of the list will be the same with
- * every call to {@link #iterator()}, even if the original list is modified via
- * the list iterator's mutation methods.
- * <p>
- * The original list passed to the <code>SnapshotCloneListIterable</code>'s
- * constructor should be thread-safe (e.g. {@link java.util.Vector});
- * otherwise you run the risk of a corrupted list.
- * <p>
- * By default, the list iterator returned by a <code>SnapshotCloneListIterable</code> does not
- * support the {@link ListIterator} mutation operations; this is because it does not
- * have access to the original list. But if the <code>SnapshotCloneListIterable</code>
- * is supplied with a {@link CloneListIterator.Mutator} it will delegate the
- * {@link ListIterator} mutation operations to the <code>Mutator</code>.
- * Alternatively, a subclass can override the list iterable's mutation
- * methods.
- * <p>
- * This list iterable is useful for multiple passes over a list that should not
- * be changed (e.g. by another thread) between passes.
- * 
- * @param <E> the type of elements returned by the list iterable's list iterator
- * 
- * @see CloneListIterator
- * @see LiveCloneListIterable
- * @see SnapshotCloneIterable
- */
-public class SnapshotCloneListIterable<E>
-	extends CloneListIterable<E>
-{
-	private final Object[] array;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a "snapshot" list iterable for the specified list.
-	 * The {@link ListIterator} modify operations will not be supported
-	 * by the list iterator returned by {@link #iterator()}
-	 * unless a subclass overrides the list iterable's modify
-	 * method.
-	 */
-	public SnapshotCloneListIterable(List<? extends E> list) {
-		super();
-		this.array = list.toArray();
-	}
-
-	/**
-	 * Construct a "snapshot" list iterable for the specified list.
-	 * The specified mutator will be used by any generated list iterators to
-	 * modify the original list.
-	 */
-	public SnapshotCloneListIterable(List<? extends E> list, CloneListIterator.Mutator<E> mutator) {
-		super(mutator);
-		this.array = list.toArray();
-	}
-
-
-	// ********** ListIterable implementation **********
-
-	public ListIterator<E> iterator() {
-		return new LocalCloneListIterator<E>(this.mutator, this.array);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-
-
-	// ********** clone iterator **********
-
-	/**
-	 * provide access to "internal" constructor
-	 */
-	protected static class LocalCloneListIterator<E> extends CloneListIterator<E> {
-		protected LocalCloneListIterator(Mutator<E> mutator, Object[] array) {
-			super(mutator, array);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java
deleted file mode 100644
index 211fe3f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.Stack;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.StackIterator;
-
-/**
- * A <code>StackIterable</code> provides an {@link Iterable}
- * for a {@link Stack} of objects of type <code>E</code>. The stack's elements
- * are {@link Stack#pop() "popped"} as the iterable's iterator returns
- * them with calls to {@link Iterator#next()}.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see Stack
- * @see StackIterator
- */
-public class StackIterable<E>
-	implements Iterable<E>
-{
-	private final Stack<E> stack;
-
-	/**
-	 * Construct an iterable for the specified stack.
-	 */
-	public StackIterable(Stack<E> stack) {
-		super();
-		this.stack = stack;
-	}
-
-	public Iterator<E> iterator() {
-		return new StackIterator<E>(this.stack);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.stack);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java
deleted file mode 100644
index c6108d5..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.SubIteratorWrapper;
-
-/**
- * Wrap an iterable of elements of type <code>E1</code>, converting it into an
- * iterable of elements of type <code>E2</code>. <em>Assume</em> the wrapped
- * iterable contains only elements of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements contained by the wrapped iterable
- * @param <E2> output: the type of elements returned by the iterable's iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterators.SubIteratorWrapper
- */
-public class SubIterableWrapper<E1, E2>
-	implements Iterable<E2>
-{
-	private final Iterable<E1> iterable;
-
-
-	public SubIterableWrapper(Iterable<E1> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public Iterator<E2> iterator() {
-		return new SubIteratorWrapper<E1, E2>(this.iterable.iterator());
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java
deleted file mode 100644
index 2213ce0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.SubListIteratorWrapper;
-
-/**
- * Wrap a list iterable of elements of type <code>E1</code>, converting it into
- * a list iterable of elements of type <code>E2</code>. Assume the wrapped
- * iterable contains only elements of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements contained by the wrapped list iterable
- * @param <E2> output: the type of elements returned by the iterable's list iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterators.SubListIteratorWrapper
- */
-public class SubListIterableWrapper<E1, E2>
-	implements ListIterable<E2>
-{
-	private final ListIterable<E1> iterable;
-
-
-	public SubListIterableWrapper(List<E1> list) {
-		this(new ListListIterable<E1>(list));
-	}
-
-	public SubListIterableWrapper(ListIterable<E1> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public ListIterator<E2> iterator() {
-		return new SubListIteratorWrapper<E1, E2>(this.iterable.iterator());
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java
deleted file mode 100644
index bae5e1e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Wrap an iterable of elements of any sub-type of <code>E</code>, converting it into an
- * iterable of elements of type <code>E</code>. This shouldn't be a problem since there
- * is no way to add invalid elements to the iterable.
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterators.SuperIteratorWrapper
- */
-public class SuperIterableWrapper<E>
-	implements Iterable<E>
-{
-	private final Iterable<E> iterable;
-
-
-	@SuppressWarnings("unchecked")
-	public SuperIterableWrapper(Iterable<? extends E> iterable) {
-		super();
-		// this should be a safe cast - the iterator will only ever
-		// return E (or a sub-type) from #next()
-		this.iterable = (Iterable<E>) iterable;
-	}
-
-	public Iterator<E> iterator() {
-		return this.iterable.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java
deleted file mode 100644
index 2d5fa24..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.SuperListIteratorWrapper;
-
-/**
- * Wrap a list iterable of elements of any sub-type of <code>E</code>,
- * converting it into a list iterable of elements of type <code>E</code>.
- * This shouldn't be a problem since the resulting list iterable's list
- * iterator disables the methods that would put invalid elements in the list
- * iterator's backing list (i.e. {@link SuperListIteratorWrapper#set(Object)}
- * and {@link SuperListIteratorWrapper#add(Object)}).
- * 
- * @param <E> the type of elements returned by the iterable's iterators
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterators.SuperListIteratorWrapper
- */
-public class SuperListIterableWrapper<E>
-	implements ListIterable<E>
-{
-	private final ListIterable<? extends E> iterable;
-
-
-	public <T extends E> SuperListIterableWrapper(List<T> list) {
-		this(new ListListIterable<T>(list));
-	}
-
-	public SuperListIterableWrapper(ListIterable<? extends E> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public ListIterator<E> iterator() {
-		return new SuperListIteratorWrapper<E>(this.iterable.iterator());
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java
deleted file mode 100644
index 124c15d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-
-/**
- * A <code>TransformationIterable</code> wraps another {@link Iterable}
- * and transforms its elements for client consumption. To use, supply a 
- * {@link Transformer} or subclass <code>TransformationIterable</code>
- * and override the {@link #transform(Object)} method.
- * Objects of type <code>E1</code> are transformed into objects of type <code>E2</code>;
- * i.e. the iterable's iterator returns objects of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements to be transformed
- * @param <E2> output: the type of elements returned by the iterable's iterator
- * 
- * @see TransformationIterator
- * @see TransformationListIterable
- */
-public class TransformationIterable<E1, E2>
-	implements Iterable<E2>
-{
-	private final Iterable<? extends E1> iterable;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterable with the specified nested iterable
-	 * and a default transformer that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationIterable(Iterable<? extends E1> iterable) {
-		super();
-		this.iterable = iterable;
-		this.transformer = this.buildDefaultTransformer();
-	}
-
-	/**
-	 * Construct an iterable with the specified nested iterable
-	 * and transformer.
-	 */
-	public TransformationIterable(Iterable<? extends E1> iterable, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.iterable = iterable;
-		this.transformer = transformer;
-	}
-
-	protected Transformer<E1, ? extends E2> buildDefaultTransformer() {
-		return new DefaultTransformer();
-	}
-
-	public Iterator<E2> iterator() {
-		return new TransformationIterator<E1, E2>(this.iterable.iterator(), this.transformer);
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(@SuppressWarnings("unused") E1 o) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-
-	//********** default linker **********
-
-	protected class DefaultTransformer implements Transformer<E1, E2> {
-		public E2 transform(E1 o) {
-			return TransformationIterable.this.transform(o);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java
deleted file mode 100644
index 0f2d058..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator;
-
-/**
- * A <code>TransformationListIterable</code> wraps another {@link ListIterable}
- * and transforms its elements for client consumption. To use, supply a 
- * {@link Transformer} or subclass <code>TransformationListIterable</code>
- * and override the {@link #transform(Object)} method.
- * Objects of type <code>E1</code> are transformed into objects of type <code>E2</code>;
- * i.e. the list iterable's list iterator returns objects of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements to be transformed
- * @param <E2> output: the type of elements returned by the iterable's iterator
- * 
- * @see TransformationListIterator
- * @see TransformationIterable
- */
-public class TransformationListIterable<E1, E2>
-	implements ListIterable<E2>
-{
-	private final ListIterable<? extends E1> iterable;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct a list iterable with the specified nested list
-	 * and a default transformer that calls back to the list iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationListIterable(List<E1> list) {
-		this(new ListListIterable<E1>(list));
-	}
-
-	/**
-	 * Construct a list iterable with the specified nested list iterable
-	 * and a default transformer that calls back to the list iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationListIterable(ListIterable<? extends E1> iterable) {
-		super();
-		this.iterable = iterable;
-		this.transformer = this.buildDefaultTransformer();
-	}
-
-	/**
-	 * Construct a list iterable with the specified nested list
-	 * and transformer.
-	 */
-	public TransformationListIterable(List<E1> list, Transformer<E1, ? extends E2> transformer) {
-		this(new ListListIterable<E1>(list), transformer);
-	}
-
-	/**
-	 * Construct a list iterable with the specified nested list iterable
-	 * and transformer.
-	 */
-	public TransformationListIterable(ListIterable<? extends E1> iterable, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.iterable = iterable;
-		this.transformer = transformer;
-	}
-
-	protected Transformer<E1, ? extends E2> buildDefaultTransformer() {
-		return new DefaultTransformer();
-	}
-
-	public ListIterator<E2> iterator() {
-		return new TransformationListIterator<E1, E2>(this.iterable.iterator(), this.transformer);
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(@SuppressWarnings("unused") E1 o) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-
-	//********** default linker **********
-
-	protected class DefaultTransformer implements Transformer<E1, E2> {
-		public E2 transform(E1 o) {
-			return TransformationListIterable.this.transform(o);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java
deleted file mode 100644
index 8e3e1ff..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.TreeIterator;
-
-/**
- * A <code>TreeIterable</code> simplifies the traversal of a
- * tree of objects, where the objects' protocol(s) provides
- * a method for getting the immediate children of the given
- * node but does not provide a method for getting all the
- * descendants (children, grandchildren, etc.) of the given node.
- * <p>
- * To use, supply:<ul>
- * <li> either the root element of the tree or, if the tree has
- * multiple roots, an {@link Iterable} of the set of roots
- * <li> a {@link TreeIterator.Midwife} that delivers the children of each child
- * (alternatively, subclass <code>TreeIterable</code>
- * and override the {@link #children(Object)} method)
- * </ul>
- * 
- * @param <E> the type of elements returned by the iterable's iterator
- * 
- * @see TreeIterator
- */
-public class TreeIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> roots;
-	private final TreeIterator.Midwife<E> midwife;
-
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified root
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link TreeIterator.Midwife}.
-	 */
-	public TreeIterable(E root) {
-		this(new SingleElementIterable<E>(root));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified root
-	 * and midwife.
-	 */
-	public TreeIterable(E root, TreeIterator.Midwife<E> midwife) {
-		this(new SingleElementIterable<E>(root), midwife);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link TreeIterator.Midwife}.
-	 */
-	public TreeIterable(E... roots) {
-		this(Arrays.asList(roots));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and midwife.
-	 */
-	public TreeIterable(E[] roots, TreeIterator.Midwife<E> midwife) {
-		this(Arrays.asList(roots), midwife);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link TreeIterator.Midwife}.
-	 */
-	public TreeIterable(Iterable<? extends E> roots) {
-		super();
-		this.roots = roots;
-		this.midwife = this.buildDefaultMidwife();
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and midwife.
-	 */
-	public TreeIterable(Iterable<? extends E> roots, TreeIterator.Midwife<E> midwife) {
-		super();
-		this.roots = roots;
-		this.midwife = midwife;
-	}
-
-	protected TreeIterator.Midwife<E> buildDefaultMidwife() {
-		return new DefaultMidwife();
-	}
-
-	public Iterator<E> iterator() {
-		return new TreeIterator<E>(this.roots, this.midwife);
-	}
-
-	/**
-	 * Return the immediate children of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link TreeIterator.Midwife}.
-	 */
-	protected Iterator<? extends E> children(@SuppressWarnings("unused") E next) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.roots);
-	}
-
-
-	//********** default midwife **********
-
-	protected class DefaultMidwife implements TreeIterator.Midwife<E> {
-		public Iterator<? extends E> children(E node) {
-			return TreeIterable.this.children(node);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java
deleted file mode 100644
index 4b0e277..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * An <code>ArrayIterator</code> provides an {@link Iterator}
- * for an array of objects of type <code>E</code>.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable
- */
-public class ArrayIterator<E>
-	implements Iterator<E>
-{
-	final E[] array;	// private-protected
-	int cursor;		// private-protected
-	private final int max;
-
-
-	/**
-	 * Construct an iterator for the specified array.
-	 */
-	public ArrayIterator(E... array) {
-		this(array, 0, array.length);
-	}
-
-	/**
-	 * Construct an iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the rest of the array.
-	 */
-	public ArrayIterator(E[] array, int start) {
-		this(array, start, array.length - start);
-	}
-
-	/**
-	 * Construct an iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayIterator(E[] array, int start, int length) {
-		super();
-		if ((start < 0) || (start > array.length)) {
-			throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$
-		}
-		if ((length < 0) || (length > array.length - start)) {
-			throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$
-		}
-		this.array = array;
-		this.cursor = start;
-		this.max = start + length;
-	}
-
-	public boolean hasNext() {
-		return this.cursor != this.max;
-	}
-
-	public E next() {
-		if (this.hasNext()) {
-			return this.array[this.cursor++];
-		}
-		throw new NoSuchElementException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java
deleted file mode 100644
index b08cfe9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-/**
- * An <code>ArrayListIterator</code> provides a {@link ListIterator}
- * for an array of objects.
- * <p>
- * The name might be a bit confusing:
- * This is a {@link ListIterator} for an <code>Array</code>;
- * <em>not</em> an {@link java.util.Iterator Iterator} for an
- * {@link java.util.ArrayList ArrayList}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable
- */
-public class ArrayListIterator<E>
-	extends ArrayIterator<E>
-	implements ListIterator<E>
-{
-	private final int min;
-
-
-	/**
-	 * Construct a list iterator for the specified array.
-	 */
-	public ArrayListIterator(E... array) {
-		this(array, 0, array.length);
-	}
-	
-	/**
-	 * Construct a list iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the rest of the array.
-	 */
-	public ArrayListIterator(E[] array, int start) {
-		this(array, start, array.length - start);
-	}
-
-	/**
-	 * Construct a list iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayListIterator(E[] array, int start, int length) {
-		super(array, start, length);
-		this.min = start;
-	}
-	
-	public int nextIndex() {
-		return this.cursor;
-	}
-	
-	public int previousIndex() {
-		return this.cursor - 1;
-	}
-	
-	public boolean hasPrevious() {
-		return this.cursor != this.min;
-	}
-	
-	public E previous() {
-		if (this.hasPrevious()) {
-			return this.array[--this.cursor];
-		}
-		throw new NoSuchElementException();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	@Override
-	public String toString() {
-		return super.toString();
-	}
-	
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java
deleted file mode 100644
index baf6710..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>ChainIterator</code> provides a pluggable {@link Iterator}
- * that loops over a chain of arbitrarily linked objects. The chain
- * should be null-terminated (i.e. a call to the {@link #nextLink(Object)}
- * method should return <code>null</code> when it is passed the last
- * link of the chain).
- * To use, supply a starting link and supply a {@link Linker} or 
- * subclass <code>ChainIterator</code> and override the
- * {@link #nextLink(Object)} method.
- * The starting link will be the first object returned by the iterator.
- * If the starting link is <code>null</code>, the iterator will be empty.
- * Note this iterator does not support <code>null</code> elements.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ChainIterable
- */
-public class ChainIterator<E>
-	implements Iterator<E>
-{
-	private E nextLink;
-	private final Linker<E> linker;
-
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and a disabled linker.
-	 * Use this constructor if you want to override the
-	 * {@link #nextLink(Object)} method instead of building
-	 * a {@link Linker}.
-	 */
-	public ChainIterator(E startLink) {
-		this(startLink, Linker.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and linker.
-	 */
-	public ChainIterator(E startLink, Linker<E> linker) {
-		super();
-		this.nextLink = startLink;
-		this.linker = linker;
-	}
-
-	public boolean hasNext() {
-		return this.nextLink != null;
-	}
-
-	public E next() {
-		if (this.nextLink == null) {
-			throw new NoSuchElementException();
-		}
-		E result = this.nextLink;
-		this.nextLink = this.nextLink(this.nextLink);
-		return result;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the next link in the chain; null if there are no more links.
-	 */
-	protected E nextLink(E currentLink) {
-		return this.linker.nextLink(currentLink);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.nextLink);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by {@link ChainIterator} to link
-	 * the elements in the chain.
-	 */
-	public interface Linker<T> {
-
-		/**
-		 * Return the next link in the chain; null if there are no more links.
-		 */
-		T nextLink(T currentLink);
-
-
-		final class Null<S> implements Linker<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Linker INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> Linker<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// simply return null, indicating the chain is ended
-			public S nextLink(S currentLink) {
-				return null;
-			}
-			@Override
-			public String toString() {
-				return "ChainIterator.Linker.Null"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-		final class Disabled<S> implements Linker<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Linker INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> Linker<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public S nextLink(S currentLink) {
-				throw new UnsupportedOperationException();  // ChainIterator.nextLink(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "ChainIterator.Linker.Disabled"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java
deleted file mode 100644
index 8e31dde..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>CloneIterator</code> iterates over a copy of a collection,
- * allowing for concurrent access to the original collection.
- * <p>
- * The original collection passed to the <code>CloneIterator</code>'s
- * constructor should be synchronized (e.g. {@link java.util.Vector});
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, a <code>CloneIterator</code> does not support the
- * {@link #remove()} operation; this is because it does not have
- * access to the original collection. But if the <code>CloneIterator</code>
- * is supplied with an {@link Remover} it will delegate the
- * {@link #remove()} operation to the {@link Remover}.
- * Alternatively, a subclass can override the {@link #remove(Object)}
- * method.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable
- * @see org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable
- */
-public class CloneIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<Object> iterator;
-	private E current;
-	private final Remover<E> remover;
-	private boolean removeAllowed;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an iterator on a copy of the specified collection.
-	 * The {@link #remove()} method will not be supported,
-	 * unless a subclass overrides the {@link #remove(Object)}.
-	 */
-	public CloneIterator(Collection<? extends E> collection) {
-		this(collection, Remover.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified array.
-	 * The {@link #remove()} method will not be supported,
-	 * unless a subclass overrides the {@link #remove(Object)}.
-	 */
-	public CloneIterator(E[] array) {
-		this(array, Remover.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified collection.
-	 * Use the specified remover to remove objects from the
-	 * original collection.
-	 */
-	public CloneIterator(Collection<? extends E> collection, Remover<E> remover) {
-		this(remover, collection.toArray());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified array.
-	 * Use the specified remover to remove objects from the
-	 * original array.
-	 */
-	public CloneIterator(E[] array, Remover<E> remover) {
-		this(remover, array.clone());
-	}
-
-	/**
-	 * Internal constructor used by subclasses.
-	 * Swap order of arguments to prevent collision with other constructor.
-	 * The passed in array will *not* be cloned.
-	 */
-	protected CloneIterator(Remover<E> remover, Object... array) {
-		super();
-		this.iterator = new ArrayIterator<Object>(array);
-		this.current = null;
-		this.remover = remover;
-		this.removeAllowed = false;
-	}
-
-
-	// ********** Iterator implementation **********
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		this.current = this.nestedNext();
-		this.removeAllowed = true;
-		return this.current;
-	}
-
-	public void remove() {
-		if ( ! this.removeAllowed) {
-			throw new IllegalStateException();
-		}
-		this.remove(this.current);
-		this.removeAllowed = false;
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * The collection passed in during construction held elements of type <code>E</code>,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (<code>Object[]</code>).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedNext() {
-		return (E) this.iterator.next();
-	}
-
-	/**
-	 * Remove the specified element from the original collection.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Remover}.
-	 */
-	protected void remove(E e) {
-		this.remover.remove(e);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by {@link CloneIterator} to remove
-	 * elements from the original collection; since the iterator
-	 * does not have direct access to the original collection.
-	 */
-	public interface Remover<T> {
-
-		/**
-		 * Remove the specified object from the original collection.
-		 */
-		void remove(T element);
-
-
-		final class ReadOnly<S> implements Remover<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Remover INSTANCE = new ReadOnly();
-			@SuppressWarnings("unchecked")
-			public static <R> Remover<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private ReadOnly() {
-				super();
-			}
-			// remove is not supported
-			public void remove(Object element) {
-				throw new UnsupportedOperationException();
-			}
-			@Override
-			public String toString() {
-				return "CloneIterator.Remover.ReadOnly"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java
deleted file mode 100644
index 91536a0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>CloneListIterator</code> iterates over a copy of a list,
- * allowing for concurrent access to the original list.
- * <p>
- * The original list passed to the <code>CloneListIterator</code>'s
- * constructor should be synchronized; otherwise you run the risk of
- * a corrupted list (e.g. {@link java.util.Vector}.
- * <p>
- * By default, a <code>CloneListIterator</code> does not support the
- * modification operations; this is because it does not have
- * access to the original list. But if the <code>CloneListIterator</code>
- * is supplied with a {@link Mutator} it will delegate the
- * modification operations to the {@link Mutator}.
- * Alternatively, a subclass can override the modification methods.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable
- * @see org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneListIterable
- */
-public class CloneListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<Object> listIterator;
-	private int cursor;
-	private State state;
-	private final Mutator<E> mutator;
-
-	private enum State {
-		UNKNOWN,
-		PREVIOUS,
-		NEXT
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list iterator on a copy of the specified list.
-	 * The modification methods will not be supported,
-	 * unless a subclass overrides them.
-	 */
-	public CloneListIterator(List<? extends E> list) {
-		this(list, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified array.
-	 * The modification methods will not be supported,
-	 * unless a subclass overrides them.
-	 */
-	public CloneListIterator(E[] array) {
-		this(array, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified list.
-	 * Use the specified list mutator to modify the original list.
-	 */
-	public CloneListIterator(List<? extends E> list, Mutator<E> mutator) {
-		this(mutator, list.toArray());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified array.
-	 * Use the specified list mutator to modify the original list.
-	 */
-	public CloneListIterator(E[] array, Mutator<E> mutator) {
-		this(mutator, array.clone());
-	}
-
-	/**
-	 * Internal constructor used by subclasses.
-	 * Swap order of arguments to prevent collision with other constructor.
-	 * The passed in array will *not* be cloned.
-	 */
-	protected CloneListIterator(Mutator<E> mutator, Object... array) {
-		super();
-		// build a copy of the list and keep it in synch with original (if the mutator allows changes)
-		// that way the nested list iterator will maintain some of our state
-		this.listIterator = CollectionTools.list(array).listIterator();
-		this.mutator = mutator;
-		this.cursor = 0;
-		this.state = State.UNKNOWN;
-	}
-
-
-	// ********** ListIterator implementation **********
-
-	public boolean hasNext() {
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		// allow the nested iterator to throw an exception before we modify the index
-		E next = this.nestedNext();
-		this.cursor++;
-		this.state = State.NEXT;
-		return next;
-	}
-
-	public void remove() {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.remove();
-		if (this.state == State.PREVIOUS) {
-			this.remove(this.cursor);
-		} else {
-			this.cursor--;
-			this.remove(this.cursor);
-		}
-	}
-
-	public int nextIndex() {
-		return this.listIterator.nextIndex();
-	}
-
-	public int previousIndex() {
-		return this.listIterator.previousIndex();
-	}
-
-	public boolean hasPrevious() {
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		// allow the nested iterator to throw an exception before we modify the index
-		E previous = this.nestedPrevious();
-		this.cursor--;
-		this.state = State.PREVIOUS;
-		return previous;
-	}
-
-	public void add(E o) {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.add(o);
-		this.add(this.cursor, o);
-		this.cursor++;
-	}
-
-	public void set(E o) {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.set(o);
-		if (this.state == State.PREVIOUS) {
-			this.set(this.cursor, o);
-		} else {
-			this.set(this.cursor - 1, o);
-		}
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * The list passed in during construction held elements of type <code>E</code>,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (<code>Object[]</code>).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedNext() {
-		return (E) this.listIterator.next();
-	}
-
-	/**
-	 * The list passed in during construction held elements of type <code>E</code>,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (<code>Object[]</code>).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedPrevious() {
-		return (E) this.listIterator.previous();
-	}
-
-	/**
-	 * Add the specified element to the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Mutator}.
-	 */
-	protected void add(int index, E o) {
-		this.mutator.add(index, o);
-	}
-
-	/**
-	 * Remove the specified element from the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Mutator}.
-	 */
-	protected void remove(int index) {
-		this.mutator.remove(index);
-	}
-
-	/**
-	 * Set the specified element in the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Mutator}.
-	 */
-	protected void set(int index, E o) {
-		this.mutator.set(index, o);
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by {@link CloneListIterator} to remove
-	 * elements from the original list; since the list iterator
-	 * does not have direct access to the original list.
-	 */
-	public interface Mutator<T> {
-
-		/**
-		 * Add the specified object to the original list.
-		 */
-		void add(int index, T o);
-
-		/**
-		 * Remove the specified object from the original list.
-		 */
-		void remove(int index);
-
-		/**
-		 * Set the specified object in the original list.
-		 */
-		void set(int index, T o);
-
-
-		final class ReadOnly<S> implements Mutator<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Mutator INSTANCE = new ReadOnly();
-			@SuppressWarnings("unchecked")
-			public static <R> Mutator<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private ReadOnly() {
-				super();
-			}
-			// add is not supported
-			public void add(int index, Object o) {
-				throw new UnsupportedOperationException();
-			}
-			// remove is not supported
-			public void remove(int index) {
-				throw new UnsupportedOperationException();
-			}
-			// set is not supported
-			public void set(int index, Object o) {
-				throw new UnsupportedOperationException();
-			}
-			@Override
-			public String toString() {
-				return "CloneListIterator.Mutator.ReadOnly"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java
deleted file mode 100644
index 02ad76d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-
-/**
- * A <code>CompositeIterator</code> wraps a collection
- * of {@link Iterator}s and makes them appear to be a single
- * {@link Iterator}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable
- */
-public class CompositeIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends Iterator<? extends E>> iterators;
-	private Iterator<? extends E> currentIterator;
-	private Iterator<? extends E> lastIteratorToReturnNext;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an iterator that returns all the elements held by the
-	 * specified iterables.
-	 */
-	public CompositeIterator(Iterable<? extends Iterable<? extends E>> iterables) {
-		this(
-			new TransformationIterator<Iterable<? extends E>, Iterator<? extends E>>(iterables.iterator()) {
-				@Override
-				protected Iterator<? extends E> transform(Iterable<? extends E> iterable) {
-					return iterable.iterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct an iterator with the specified collection of iterators.
-	 */
-	public CompositeIterator(Iterator<? extends Iterator<? extends E>> iterators) {
-		super();
-		this.iterators = iterators;
-	}
-
-	/**
-	 * Construct an iterator with the specified object prepended
-	 * to the specified iterable.
-	 */
-	public CompositeIterator(E object, Iterable<? extends E> iterable) {
-		this(object, iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterator(E object, Iterator<? extends E> iterator) {
-		this(new SingleElementIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct an iterator with the specified object appended
-	 * to the specified iterable.
-	 */
-	public CompositeIterator(Iterable<? extends E> iterable, E object) {
-		this(iterable.iterator(), object);
-	}
-
-	/**
-	 * Construct an iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterator(Iterator<? extends E> iterator, E object) {
-		this(iterator, new SingleElementIterator<E>(object));
-	}
-
-	/**
-	 * Construct an iterator with the specified iterables.
-	 */
-	public CompositeIterator(Iterable<? extends E>... iterables) {
-		this(new ArrayIterable<Iterable<? extends E>>(iterables));
-	}
-
-	/**
-	 * Construct an iterator with the specified iterators.
-	 */
-	public CompositeIterator(Iterator<? extends E>... iterators) {
-		this(new ArrayIterator<Iterator<? extends E>>(iterators));
-	}
-
-
-	// ********** Iterator implementation **********
-
-	public boolean hasNext() {
-		try {
-			this.loadCurrentIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.currentIterator.hasNext();
-	}
-
-	public E next() {
-		this.loadCurrentIterator();
-		E result = this.currentIterator.next();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set 'lastIteratorToReturnNext'
-		this.lastIteratorToReturnNext = this.currentIterator;
-
-		return result;
-	}
-
-	public void remove() {
-		if (this.lastIteratorToReturnNext == null) {
-			// CompositeIterator#next() has never been called
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnNext.remove();
-	}
-
-	/**
-	 * Load {@link #currentIterator} with the first iterator that {@link Iterator#hasNext()}
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadCurrentIterator() {
-		if (this.currentIterator == null) {
-			this.currentIterator = this.iterators.next();
-		}
-		while (( ! this.currentIterator.hasNext()) && this.iterators.hasNext()) {
-			this.currentIterator = this.iterators.next();
-		}
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java
deleted file mode 100644
index 3111451..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * A <code>CompositeListIterator</code> wraps a list
- * of {@link ListIterator}s and makes them appear to be a single
- * {@link ListIterator}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.CompositeListIterable
- */
-public class CompositeListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends ListIterator<E>> iterators;
-	private ListIterator<E> nextIterator;
-	private int nextIndex;
- 	/**
- 	 * <code>true</code> if "next" was last returned;
- 	 * <code>false</code> if "previous" was last returned;
- 	 * this determines the effect of {@link #remove()} on {@link #nextIndex}
- 	 */
-	private boolean nextReturned;
-	private ListIterator<E> lastIteratorToReturnElement;
-
-
-	/**
-	 * Construct a list iterator on the elements in the specified list of lists.
-	 */
-	public CompositeListIterator(List<? extends List<E>> lists) {
-		this(
-			new TransformationListIterator<List<E>, ListIterator<E>>(lists.listIterator()) {
-				@Override
-				protected ListIterator<E> transform(List<E> list) {
-					return list.listIterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a list iterator on the elements in the specified list of lists.
-	 */
-	public CompositeListIterator(ListIterable<? extends ListIterable<E>> listIterables) {
-		this(
-			new TransformationListIterator<ListIterable<E>, ListIterator<E>>(listIterables.iterator()) {
-				@Override
-				protected ListIterator<E> transform(ListIterable<E> list) {
-					return list.iterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a list iterator with the specified list of list iterators.
-	 */
-	public CompositeListIterator(ListIterator<? extends ListIterator<E>> iterators) {
-		super();
-		this.iterators = iterators;
-		this.nextIndex = 0;
-		this.nextReturned = false;
-	}
-
-	/**
-	 * Construct a list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(E object, List<E> list) {
-		this(object, list.listIterator());
-	}
-
-	/**
-	 * Construct a list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(E object, ListIterable<E> listIterable) {
-		this(object, listIterable.iterator());
-	}
-
-	/**
-	 * Construct a list iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterator(E object, ListIterator<E> iterator) {
-		this(new SingleElementListIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct a list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(List<E> list, E object) {
-		this(list.listIterator(), object);
-	}
-
-	/**
-	 * Construct a list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(ListIterable<E> listIterable, E object) {
-		this(listIterable.iterator(), object);
-	}
-
-	/**
-	 * Construct a list iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterator(ListIterator<E> iterator, E object) {
-		this(iterator, new SingleElementListIterator<E>(object));
-	}
-
-	/**
-	 * Construct a list iterator with the specified lists.
-	 */
-	public CompositeListIterator(List<E>... lists) {
-		this(Arrays.asList(lists));
-	}
-
-	/**
-	 * Construct a list iterator with the specified lists.
-	 */
-	public CompositeListIterator(ListIterable<E>... listIterables) {
-		this(new ArrayListIterable<ListIterable<E>>(listIterables));
-	}
-
-	/**
-	 * Construct a list iterator with the specified list iterators.
-	 */
-	public CompositeListIterator(ListIterator<E>... iterators) {
-		this(new ArrayListIterator<ListIterator<E>>(iterators));
-	}
-
-	public void add(E o) {
-		this.checkNextIterator();
-		this.nextIterator.add(o);
-		this.nextIndex++;
-	}
-
-	public boolean hasNext() {
-		try {
-			this.loadNextIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasNext();
-	}
-
-	public boolean hasPrevious() {
-		try {
-			this.loadPreviousIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasPrevious();
-	}
-
-	public E next() {
-		this.loadNextIterator();
-		E result = this.nextIterator.next();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set the 'lastIteratorToReturnElement'
-		this.lastIteratorToReturnElement = this.nextIterator;
-		this.nextIndex++;
-		this.nextReturned = true;
-
-		return result;
-	}
-
-	public int nextIndex() {
-		return this.nextIndex;
-	}
-
-	public E previous() {
-		this.loadPreviousIterator();
-		E result = this.nextIterator.previous();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set the 'lastIteratorToReturnElement'
-		this.lastIteratorToReturnElement = this.nextIterator;
-		this.nextIndex--;
-		this.nextReturned = false;
-
-		return result;
-	}
-
-	public int previousIndex() {
-		return this.nextIndex  - 1;
-	}
-
-	public void remove() {
-		if (this.lastIteratorToReturnElement == null) {
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnElement.remove();
-		if (this.nextReturned) {
-			// decrement the index because the "next" element has moved forward in the list
-			this.nextIndex--;
-		}
-	}
-
-	public void set(E e) {
-		if (this.lastIteratorToReturnElement == null) {
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnElement.set(e);
-	}
-
-	/**
-	 * Load 'nextIterator' with the first iterator that <code>hasNext()</code>
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadNextIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	/**
-	 * Load 'nextIterator' with the first iterator that <code>hasPrevious()</code>
-	 * or the first iterator if all the elements have already been retrieved.
-	 */
-	private void loadPreviousIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) {
-			this.nextIterator = this.iterators.previous();
-		}
-	}
-
-	/**
-	 * If 'nextIterator' is null, load it with the first iterator.
-	 */
-	private void checkNextIterator() {
-		if (this.nextIterator == null) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java
deleted file mode 100644
index f06e2e0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * An <code>EmptyIterator</code> is just that.
- * 
- * @param <E> the type of elements (not) returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable
- */
-public final class EmptyIterator<E>
-	implements Iterator<E>
-{
-
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final EmptyIterator INSTANCE = new EmptyIterator();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Iterator<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyIterator() {
-		super();
-	}
-
-	public boolean hasNext() {
-		return false;
-	}
-
-	public E next() {
-		throw new NoSuchElementException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java
deleted file mode 100644
index 73e2376..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * An <code>EmptyListIterator</code> is just that.
- * 
- * @param <E> the type of elements (not) returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.EmptyListIterable
- */
-public final class EmptyListIterator<E>
-	implements ListIterator<E>
-{
-
-	// singleton
-	@SuppressWarnings("rawtypes")
-	private static final EmptyListIterator INSTANCE = new EmptyListIterator();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> ListIterator<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyListIterator() {
-		super();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean hasNext() {
-		return false;
-	}
-
-	public boolean hasPrevious() {
-		return false;
-	}
-
-	public E next() {
-		throw new NoSuchElementException();
-	}
-
-	public int nextIndex() {
-		return 0;
-	}
-
-	public E previous() {
-		throw new NoSuchElementException();
-	}
-
-	public int previousIndex() {
-		return -1;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-	
-	private static final long serialVersionUID = 1L;
-	private Object readResolve() {
-		// replace this object with the singleton
-		return INSTANCE;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java
deleted file mode 100644
index d8e9d38..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * An <code>EnumerationIterator</code> wraps an
- * {@link Enumeration} so that it can be treated like an
- * {@link Iterator}.
- * 
- * @param <E> the type of elements returned by the iterator
- */
-public class EnumerationIterator<E>
-	implements Iterator<E>
-{
-	private final Enumeration<? extends E> enumeration;
-
-	/**
-	 * Construct an iterator that wraps the specified enumeration.
-	 */
-	public EnumerationIterator(Enumeration<? extends E> enumeration) {
-		this.enumeration = enumeration;
-	}
-	
-	public boolean hasNext() {
-		return this.enumeration.hasMoreElements();
-	}
-	
-	public E next() {
-		return this.enumeration.nextElement();
-	}
-	
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-	
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.enumeration);
-	}
-	
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java
deleted file mode 100644
index 4c3176c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>FilteringIterator</code> wraps another {@link Iterator}
- * and uses a {@link Filter} to determine which elements in the
- * nested iterator are to be returned by calls to {@link #next()}.
- * <p>
- * As an alternative to building a {@link Filter}, a subclass
- * of <code>FilteringIterator</code> can override the
- * {@link #accept(Object)} method.
- * <p>
- * One, possibly undesirable, side-effect of using this iterator is that
- * the nested iterator's <code>next()</code> method will be invoked
- * <em>before</em> the filtered iterator's {@link #next()}
- * method is invoked. This is because the "next" element must be
- * checked for whether it is to be accepted before the filtered iterator
- * can determine whether it has a "next" element (i.e. that the
- * {@link #hasNext()} method should return <code>true</code>).
- * This also prevents a filtered iterator from supporting the optional
- * <code>remove()</code> method.
- * 
- * @param <E> the type of elements to be filtered
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable
- */
-public class FilteringIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-	private final Filter<E> filter;
-	private E next;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator with the specified
-	 * iterable and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * {@link #accept(Object)} method instead of building
-	 * a {@link Filter}.
-	 */
-	public FilteringIterator(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested
-	 * iterator and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * {@link #accept(Object)} method instead of building
-	 * a {@link Filter}.
-	 */
-	public FilteringIterator(Iterator<? extends E> iterator) {
-		this(iterator, Filter.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified
-	 * iterable and filter.
-	 */
-	public FilteringIterator(Iterable<? extends E> iterable, Filter<E> filter) {
-		this(iterable.iterator(), filter);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested
-	 * iterator and filter.
-	 */
-	public FilteringIterator(Iterator<? extends E> iterator, Filter<E> filter) {
-		super();
-		this.iterator = iterator;
-		this.filter = filter;
-		this.loadNext();
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E result = this.next;
-		this.loadNext();
-		return result;
-	}
-
-	/**
-	 * Because we need to pre-load the next element
-	 * to be returned, we cannot support the <code>remove()</code>
-	 * method.
-	 */
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load next with the next valid entry from the nested
-	 * iterator. If there are none, next is set to <code>END</code>.
-	 */
-	private void loadNext() {
-		this.done = true;
-		while (this.iterator.hasNext() && (this.done)) {
-			E temp = this.iterator.next();
-			if (this.accept(temp)) {
-				// assume that if the object was accepted it is of type E
-				this.next = temp;
-				this.done = false;
-			} else {
-				this.next = null;
-				this.done = true;
-			}
-		}
-	}
-
-	/**
-	 * Return whether the {@link FilteringIterator}
-	 * should return the specified next element from a call to the
-	 * {@link #next()} method.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Filter}.
-	 */
-	protected boolean accept(E o) {
-		return this.filter.accept(o);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java
deleted file mode 100644
index ff50f16..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>GraphIterator</code> is similar to a {@link TreeIterator}
- * except that it cannot be assumed that all nodes assume a strict tree
- * structure. For instance, in a tree, a node cannot be a descendent of
- * itself, but a graph may have a cyclical structure.
- * 
- * A <code>GraphIterator</code> simplifies the traversal of a
- * graph of objects, where the objects' protocol(s) provides
- * a method for getting the next collection of nodes in the graph,
- * (or <em>neighbors</em>), but does not provide a method for
- * getting <em>all</em> of the nodes in the graph.
- * (e.g. a neighbor can return his neighbors, and those neighbors
- * can return their neighbors, which might also include the original
- * neighbor, but you only want to visit the original neighbor once.)
- * <p>
- * If a neighbor has already been visited (determined by using 
- * {@link #equals(Object)}), that neighbor is not visited again,
- * nor are the neighbors of that object.
- * <p>
- * It is up to the user of this class to ensure a <em>complete</em> graph.
- * <p>
- * To use, supply:<ul>
- * <li> either the initial node of the graph or an {@link Iterator}
- * over an initial collection of graph nodes
- * <li> a {@link MisterRogers} that tells who the neighbors are
- * of each node
- * (alternatively, subclass <code>GraphIterator</code>
- * and override the {@link #neighbors(Object)} method)
- * </ul>
- * {@link #remove()} is not supported. This behavior, if 
- * desired, must be implemented by the user of this class.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.GraphIterable
- */
-public class GraphIterator<E>
-	implements Iterator<E>
-{
-	// use a LinkedList since we will be pulling off the front and adding to the end
-	private final LinkedList<Iterator<? extends E>> iterators = new LinkedList<Iterator<? extends E>>();
-	private final HashSet<E> visitedNeighbors = new HashSet<E>();
-	private final MisterRogers<E> misterRogers;
-	
-	private Iterator<? extends E> currentIterator;
-	
-	private E nextNeighbor;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled Mr. Rogers.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link MisterRogers}.
-	 */
-	public GraphIterator(E... roots) {
-		this(new ArrayIterator<E>(roots));
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled Mr. Rogers.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link MisterRogers}.
-	 */
-	public GraphIterator(Iterable<? extends E> roots) {
-		this(roots.iterator());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled Mr. Rogers.
-	 * Use this constructor if you want to override the
-	 * {@link #neighbors(Object)} method instead of building
-	 * a {@link MisterRogers}.
-	 */
-	public GraphIterator(Iterator<? extends E> roots) {
-		this(roots, MisterRogers.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified root
-	 * and a disabled Mr. Rogers.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>MisterRogers</code>.
-	 */
-	public GraphIterator(E root) {
-		this(root, MisterRogers.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified root and Mr. Rogers.
-	 */
-	public GraphIterator(E root, MisterRogers<E> misterRogers) {
-		this(new SingleElementIterator<E>(root), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots and Mr. Rogers.
-	 */
-	public GraphIterator(E[] roots, MisterRogers<E> misterRogers) {
-		this(new ArrayIterator<E>(roots), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified roots and Mr. Rogers.
-	 */
-	public GraphIterator(Iterable<? extends E> roots, MisterRogers<E> misterRogers) {
-		this(roots.iterator(), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified roots and Mr. Rogers.
-	 */
-	public GraphIterator(Iterator<? extends E> roots, MisterRogers<E> misterRogers) {
-		super();
-		this.currentIterator = roots;
-		this.misterRogers = misterRogers;
-		this.loadNextNeighbor();
-	}
-
-	/**
-	 * Load next neighbor with the next entry from the current iterator.
-	 * If the current iterator has none, load the next iterator.
-	 * If there are no more, the {@link #done} flag is set.
-	 */
-	private void loadNextNeighbor() {
-		if (this.currentIterator == EmptyIterator.instance()) {
-			this.done = true;
-		}
-		else if (this.currentIterator.hasNext()) {
-			E nextPossibleNeighbor = this.currentIterator.next();
-			if (this.visitedNeighbors.contains(nextPossibleNeighbor)) {
-				this.loadNextNeighbor();  // recurse
-			} else {
-				this.nextNeighbor = nextPossibleNeighbor;
-				this.visitedNeighbors.add(nextPossibleNeighbor);
-				this.iterators.add(this.neighbors(nextPossibleNeighbor));
-			}
-		} 
-		else {
-			for (Iterator<? extends Iterator<? extends E>> stream = this.iterators.iterator(); ! this.currentIterator.hasNext() && stream.hasNext(); ) {
-				this.currentIterator = stream.next();
-				stream.remove();
-			}
-			if ( ! this.currentIterator.hasNext()) {
-				this.currentIterator = EmptyIterator.instance();
-			}
-			this.loadNextNeighbor();  // recurse
-		}
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E next = this.nextNeighbor;
-		this.loadNextNeighbor();
-		return next;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the immediate neighbors of the specified object.
-	 */
-	protected Iterator<? extends E> neighbors(E next) {
-		return this.misterRogers.neighbors(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.currentIterator);
-	}
-	
-	
-	//********** inner classes **********
-	
-	/**
-	 * Used by {@link GraphIterator} to retrieve
-	 * the immediate neighbors of a node in the graph.
-	 * "These are the people in your neighborhood..."
-	 */
-	public interface MisterRogers<T> {
-
-		/**
-		 * Return the immediate neighbors of the specified object.
-		 */
-		Iterator<? extends T> neighbors(T next);
-		
-		
-		final class Null<S> implements MisterRogers<S> {
-			@SuppressWarnings("rawtypes")
-			public static final MisterRogers INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> MisterRogers<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// return no neighbors
-			public Iterator<S> neighbors(S next) {
-				return EmptyIterator.instance();
-			}
-			@Override
-			public String toString() {
-				return "GraphIterator.MisterRogers.Null"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-		/** The Mr. Rogers used when the {@link GraphIterator#neighbors(Object)} method is overridden. */
-		final class Disabled<S> implements MisterRogers<S> {
-			@SuppressWarnings("rawtypes")
-			public static final MisterRogers INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> MisterRogers<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public Iterator<S> neighbors(S next) {
-				throw new UnsupportedOperationException();  // GraphIterator.neighbors(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "GraphIterator.MisterRogers.Disabled"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java
deleted file mode 100644
index 1a1f628..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>PeekableIterator</code> wraps another {@link Iterator}
- * and allows a {@link #peek()} at the next element to be 
- * returned by {@link #next()}.
- * <p>
- * One, possibly undesirable, side-effect of using this iterator is that
- * the nested iterator's <code>next()</code> method will be invoked
- * <em>before</em> the peekable iterator's {@link #next()}
- * method is invoked. This is because the "next" element must be
- * pre-loaded for the {@link #peek()} method.
- * This also prevents a peekable iterator from supporting the optional
- * {@link #remove()} method.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.PeekableIterable
- */
-public class PeekableIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-	private E next;
-	private boolean done;
-
-
-	/**
-	 * Construct a peekable iterator that wraps the specified
-	 * iterable.
-	 */
-	public PeekableIterator(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct a peekable iterator that wraps the specified nested
-	 * iterator.
-	 */
-	public PeekableIterator(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-		this.done = false;
-		this.loadNext();
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E result = this.next;
-		this.loadNext();
-		return result;
-	}
-
-	/**
-	 * Return the element that will be returned by the next call to the
-	 * {@link #next()} method, without advancing past it.
-	 */
-	public E peek() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		return this.next;
-	}
-
-	/**
-	 * Because we need to pre-load the next element
-	 * to be returned, we cannot support the {@link #remove()}
-	 * method.
-	 */
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load next with the next entry from the nested
-	 * iterator. If there are none, {@link #next} is set to <code>null</code>
-	 * and {@link #done} is set to <code>true</code>.
-	 */
-	private void loadNext() {
-		if (this.iterator.hasNext()) {
-			this.next = this.iterator.next();
-		} else {
-			this.next = null;
-			this.done = true;
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java
deleted file mode 100644
index 4f94623..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.Queue;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>QueueIterator</code> provides an {@link Iterator}
- * for a {@link Queue} of objects of type <code>E</code>. The queue's elements
- * are {@link Queue#dequeue() dequeue}d" as the iterator returns them with
- * calls to {@link #next()}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see Queue
- * @see org.eclipse.jpt.common.utility.internal.iterables.QueueIterable
- */
-public class QueueIterator<E>
-	implements Iterator<E>
-{
-	private final Queue<E> queue;
-
-
-	/**
-	 * Construct an iterator for the specified queue.
-	 */
-	public QueueIterator(Queue<E> queue) {
-		super();
-		this.queue = queue;
-	}
-
-	public boolean hasNext() {
-		return ! this.queue.isEmpty();
-	}
-
-	public E next() {
-		return this.queue.dequeue();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.queue);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java
deleted file mode 100644
index 4257885..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * A <code>ReadOnlyCompositeListIterator</code> wraps a list
- * of {@link ListIterator}s and makes them appear to be a single
- * read-only {@link ListIterator}. A read-only composite list
- * iterator is more flexible than a normal composite list iterator when it
- * comes to the element types of the nested iterators.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyCompositeListIterable
- */
-public class ReadOnlyCompositeListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends ListIterator<? extends E>> iterators;
-	private ListIterator<? extends E> nextIterator;
-	private int nextIndex;
-
-
-	/**
-	 * Construct a read-only list iterator with the specified list of lists.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends List<? extends E>> lists) {
-		this(
-			new TransformationListIterator<List<? extends E>, ListIterator<? extends E>>(lists.listIterator()) {
-				@Override
-				protected ListIterator<? extends E> transform(List<? extends E> list) {
-					return list.listIterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified list of lists.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterable<? extends ListIterable<? extends E>> listIterables) {
-		this(
-			new TransformationListIterator<ListIterable<? extends E>, ListIterator<? extends E>>(listIterables.iterator()) {
-				@Override
-				protected ListIterator<? extends E> transform(ListIterable<? extends E> listIterable) {
-					return listIterable.iterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified list of
-	 * list iterators.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterator<? extends ListIterator<? extends E>> iterators) {
-		super();
-		this.iterators = iterators;
-		this.nextIndex = 0;
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(E object, List<? extends E> list) {
-		this(object, list.listIterator());
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(E object, ListIterable<? extends E> listIterable) {
-		this(object, listIterable.iterator());
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterator(E object, ListIterator<? extends E> iterator) {
-		this(new SingleElementListIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends E> list, E object) {
-		this(list.listIterator(), object);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterable<? extends E> listIterable, E object) {
-		this(listIterable.iterator(), object);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterator(ListIterator<? extends E> iterator, E object) {
-		this(iterator, new SingleElementListIterator<E>(object));
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified lists.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends E>... lists) {
-		this(Arrays.asList(lists));
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified lists.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterable<? extends E>... listIterables) {
-		this(new ArrayListIterable<ListIterable<? extends E>>(listIterables));
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified list iterators.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterator<? extends E>... iterators) {
-		this(new ArrayListIterator<ListIterator<? extends E>>(iterators));
-	}
-
-	public boolean hasNext() {
-		try {
-			this.loadNextIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasNext();
-	}
-
-	public boolean hasPrevious() {
-		try {
-			this.loadPreviousIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasPrevious();
-	}
-
-	public E next() {
-		this.loadNextIterator();
-		E result = this.nextIterator.next();
-	
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can increment 'nextIndex'
-		this.nextIndex++;
-	
-		return result;
-	}
-
-	public int nextIndex() {
-		return this.nextIndex;
-	}
-
-	public E previous() {
-		this.loadPreviousIterator();
-		E result = this.nextIterator.previous();
-	
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can decrement 'nextIndex'
-		this.nextIndex--;
-	
-		return result;
-	}
-
-	public int previousIndex() {
-		return this.nextIndex  - 1;
-	}
-
-	public void add(E o) {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load {@link #nextIterator} with the first iterator that {@link #hasNext()}
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadNextIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	/**
-	 * Load {@link #nextIterator} with the first iterator that {@link #hasPrevious()}
-	 * or the first iterator if all the elements have already been retrieved.
-	 */
-	private void loadPreviousIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) {
-			this.nextIterator = this.iterators.previous();
-		}
-	}
-
-	/**
-	 * If {@link #nextIterator} is null, load it with the first iterator.
-	 */
-	private void checkNextIterator() {
-		if (this.nextIterator == null) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java
deleted file mode 100644
index 5673d3d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>ReadOnlyIterator</code> wraps another {@link Iterator}
- * and removes support for {@link #remove()}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyIterable
- */
-public class ReadOnlyIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-
-	/**
-	 * Construct an iterator on the specified collection that
-	 * disallows removes.
-	 */
-	public ReadOnlyIterator(Iterable<? extends E> c) {
-		this(c.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and disallow removes.
-	 */
-	public ReadOnlyIterator(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		// delegate to the nested iterator
-		return this.iterator.next();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-	
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java
deleted file mode 100644
index ac09133..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * A <code>ReadOnlyListIterator</code> wraps another
- * {@link ListIterator} and removes support for:<ul>
- * <li>{@link #remove()}
- * 	<li>{@link #set(Object)}
- * 	<li>{@link #add(Object)}
- * </ul>
- * 
- * @param <E> the type of elements returned by the list iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyListIterable
- */
-public class ReadOnlyListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends E> listIterator;
-
-
-	/**
-	 * Construct a list iterator on the specified list that
-	 * disallows removes, sets, and adds.
-	 */
-	public ReadOnlyListIterator(List<? extends E> list) {
-		this(list.listIterator());
-	}
-
-	/**
-	 * Construct a list iterator on the specified list that
-	 * disallows removes, sets, and adds.
-	 */
-	public ReadOnlyListIterator(ListIterable<? extends E> listIterable) {
-		this(listIterable.iterator());
-	}
-
-	/**
-	 * Construct a list iterator on the specified list iterator that
-	 * disallows removes, sets, and adds.
-	 */
-	public ReadOnlyListIterator(ListIterator<? extends E> listIterator) {
-		super();
-		this.listIterator = listIterator;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		// delegate to the nested iterator
-		return this.listIterator.next();
-	}
-
-	public boolean hasPrevious() {
-		// delegate to the nested iterator
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		// delegate to the nested iterator
-		return this.listIterator.previous();
-	}
-
-	public int nextIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.nextIndex();
-	}
-
-	public int previousIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.previousIndex();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void add(E o) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-	
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java
deleted file mode 100644
index 03cf8c8..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>ResultSetIterator</code> wraps an SQL {@link ResultSet}
- * and transforms its rows for client consumption. Subclasses can override
- * {@link #buildNext(ResultSet)} to build the expected object from
- * the current row of the result set.
- * <p>
- * To use, supply:<ul>
- * <li> a {@link ResultSet}
- * <li> an {@link Adapter} that converts a row in the {@link ResultSet}
- * into the desired object
- * (alternatively, subclass <code>ResultSetIterator</code>
- * and override the {@link #buildNext(ResultSet)} method)
- * </ul>
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see java.sql.ResultSet
- */
-public class ResultSetIterator<E>
-	implements Iterator<E>
-{
-	private final ResultSet resultSet;
-	private final Adapter<E> adapter;
-	private E next;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator on the specified result set that returns
-	 * the objects produced by the specified adapter.
-	 */
-	public ResultSetIterator(ResultSet resultSet, Adapter<E> adapter) {
-		super();
-		this.resultSet = resultSet;
-		this.adapter = adapter;
-		this.done = false;
-		this.next = this.buildNext();
-	}
-
-	/**
-	 * Construct an iterator on the specified result set that returns
-	 * the first object in each row of the result set.
-	 */
-	public ResultSetIterator(ResultSet resultSet) {
-		this(resultSet, Adapter.Default.<E>instance());
-	}
-
-	/**
-	 * Build the next object for the iterator to return.
-	 * Close the result set when we reach the end.
-	 */
-	private E buildNext() {
-		try {
-			if (this.resultSet.next()) {
-				return this.buildNext(this.resultSet);
-			}
-			this.resultSet.close();
-			this.done = true;
-			return null;
-		} catch (SQLException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	/**
-	 * By default, return the first object in the current row
-	 * of the result set. Any {@link SQLException}s will
-	 * be caught and wrapped in a {@link RuntimeException}.
-	 */
-	protected E buildNext(ResultSet rs) throws SQLException {
-		return this.adapter.buildNext(rs);
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E temp = this.next;
-		this.next = this.buildNext();
-		return temp;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.resultSet);
-	}
-
-
-	// ********** interface **********
-
-	/**
-	 * Used by {@link ResultSetIterator} to convert a
-	 * {@link ResultSet}'s current row into the next object
-	 * to be returned by the {@link Iterator}.
-	 */
-	public interface Adapter<T> {
-
-		/**
-		 * Return an object corresponding to the result set's
-		 * "current" row. Any {@link SQLException}s will
-		 * be caught and wrapped in a {@link RuntimeException}.
-		 * @see java.sql.ResultSet
-		 */
-		T buildNext(ResultSet rs) throws SQLException;
-
-
-		final class Default<S> implements Adapter<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Adapter INSTANCE = new Default();
-			@SuppressWarnings("unchecked")
-			public static <R> Adapter<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Default() {
-				super();
-			}
-			// return the first object in the current row of the result set
-			@SuppressWarnings("unchecked")
-			public S buildNext(ResultSet rs) throws SQLException {
-				// result set columns are indexed starting with 1
-				return (S) rs.getObject(1);
-			}
-			@Override
-			public String toString() {
-				return "ResultSetIterator.Adapter.Default"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java
deleted file mode 100644
index 7b8bfb4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>ReverseIterator</code> wraps another {@link Iterator} and returns
- * its elements in the reverse order in which the wrapped {@link Iterator}
- * returns the elements.
- * 
- * @param <E> the type of elements returned by the iterator
- */
-public class ReverseIterator<E>
-	implements Iterator<E>
-{
-	/**
-	 * The elements in this iterator are already reversed.
-	 */
-	private final Iterator<E> iterator;
-
-
-	/**
-	 * Construct a reverse iterator for the specified iterator.
-	 */
-	public ReverseIterator(Iterator<E> iterator) {
-		this(CollectionTools.reverseList(iterator));
-	}
-
-	/**
-	 * Construct a reverse iterator for the specified iterator.
-	 */
-	public ReverseIterator(Iterator<E> iterator, int size) {
-		this(CollectionTools.reverseList(iterator, size));
-	}
-
-	/**
-	 * Construct a reverse iterator for the specified iterable.
-	 */
-	public ReverseIterator(Iterable<E> iterable) {
-		this(CollectionTools.reverseList(iterable));
-	}
-
-	/**
-	 * Construct a reverse iterator for the specified iterable.
-	 */
-	public ReverseIterator(Iterable<E> iterable, int size) {
-		this(CollectionTools.reverseList(iterable, size));
-	}
-
-	private ReverseIterator(ArrayList<E> reverseList) {
-		super();
-		this.iterator = reverseList.iterator();
-	}
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		return this.iterator.next();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java
deleted file mode 100644
index a6a743d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>SingleElementIterator</code> holds a single element
- * and returns it with the first call to {@link #next()}, at
- * which point it will return <code>false</code> to any subsequent
- * call to {@link #hasNext()}.
- * <p>
- * A <code>SingleElementIterator</code> is equivalent to the
- * {@link Iterator} returned by:
- * 	{@link java.util.Collections#singleton(Object element)}<code>.iterator()</code>
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable
- */
-public class SingleElementIterator<E>
-	implements Iterator<E>
-{
-	private final E element;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator that returns only the specified element.
-	 */
-	public SingleElementIterator(E element) {
-		super();
-		this.element = element;
-		this.done = false;
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		this.done = true;
-		return this.element;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java
deleted file mode 100644
index 9363cd0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>SingleElementListIterator</code> holds a single element
- * and returns it with the first call to {@link #next()}, at
- * which point it will return <code>false</code> to any subsequent
- * call to {@link #hasNext()}. Likewise, it will return <code>false</code>
- * to a call to {@link #hasPrevious()} until a call to {@link #next()},
- * at which point a call to {@link #previous()} will return the
- * single element.
- * <p>
- * A <code>SingleElementListIterator</code> is equivalent to the
- * {@link ListIterator} returned by:
- * 	{@link java.util.Collections#singletonList(Object element)}<code>.listIterator()</code>
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SingleElementListIterable
- */
-public class SingleElementListIterator<E>
-	implements ListIterator<E>
-{
-	private final E element;
-	private boolean hasNext;
-
-
-	/**
-	 * Construct a list iterator that returns only the specified element.
-	 */
-	public SingleElementListIterator(E element) {
-		super();
-		this.element = element;
-		this.hasNext = true;
-	}
-
-	public boolean hasNext() {
-		return this.hasNext;
-	}
-
-	public E next() {
-		if (this.hasNext) {
-			this.hasNext = false;
-			return this.element;
-		}
-		throw new NoSuchElementException();
-	}
-
-	public int nextIndex() {
-		return this.hasNext ? 0 : 1;
-	}
-
-	public boolean hasPrevious() {
-		return ! this.hasNext;
-	}
-
-	public E previous() {
-		if (this.hasNext) {
-			throw new NoSuchElementException();
-		}
-		this.hasNext = true;
-		return this.element;
-	}
-
-	public int previousIndex() {
-		return this.hasNext ? -1 : 0;
-	}
-
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java
deleted file mode 100644
index d8106d0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.Stack;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>StackIterator</code> provides an {@link Iterator}
- * for a {@link Stack} of objects of type <code>E</code>. The stack's elements
- * are {@link Stack#pop() pop}ped" as the iterator returns them with
- * calls to {@link #next()}.
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see Stack
- * @see org.eclipse.jpt.common.utility.internal.iterables.StackIterable
- */
-public class StackIterator<E>
-	implements Iterator<E>
-{
-	private final Stack<E> stack;
-
-
-	/**
-	 * Construct an iterator for the specified stack.
-	 */
-	public StackIterator(Stack<E> stack) {
-		super();
-		this.stack = stack;
-	}
-
-	public boolean hasNext() {
-		return ! this.stack.isEmpty();
-	}
-
-	public E next() {
-		return this.stack.pop();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.stack);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java
deleted file mode 100644
index 3f7b344..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Wrap an iterator on elements of type <code>E1</code>, converting it into an
- * iterator on elements of type <code>E2</code>. <em>Assume</em> the wrapped
- * iterator returns only elements of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements returned by the wrapped iterator
- * @param <E2> output: the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SubIterableWrapper
- */
-public class SubIteratorWrapper<E1, E2>
-	implements Iterator<E2>
-{
-	private final Iterator<E1> iterator;
-
-
-	public SubIteratorWrapper(Iterable<E1> iterable) {
-		this(iterable.iterator());
-	}
-
-	public SubIteratorWrapper(Iterator<E1> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	@SuppressWarnings("unchecked")
-	public E2 next() {
-		return (E2) this.iterator.next();
-	}
-
-	public void remove() {
-		this.iterator.remove();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java
deleted file mode 100644
index 5349263..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * Wrap a list iterator on elements of type <code>E1</code>, converting it into
- * a list iterator on elements of type <code>E2</code>. Assume the wrapped
- * list iterator returns only elements of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements returned by the wrapped list iterator
- * @param <E2> output: the type of elements returned by the list iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SubListIterableWrapper
- */
-public class SubListIteratorWrapper<E1, E2>
-	implements ListIterator<E2>
-{
-	private final ListIterator<E1> listIterator;
-
-
-	public SubListIteratorWrapper(List<E1> list) {
-		this(list.listIterator());
-	}
-
-	public SubListIteratorWrapper(ListIterable<E1> listIterable) {
-		this(listIterable.iterator());
-	}
-
-	public SubListIteratorWrapper(ListIterator<E1> iterator) {
-		super();
-		this.listIterator = iterator;
-	}
-
-	public boolean hasNext() {
-		return this.listIterator.hasNext();
-	}
-
-	@SuppressWarnings("unchecked")
-	public E2 next() {
-		return (E2) this.listIterator.next();
-	}
-
-	public int nextIndex() {
-		return this.listIterator.nextIndex();
-	}
-
-	public boolean hasPrevious() {
-		return this.listIterator.hasPrevious();
-	}
-
-	@SuppressWarnings("unchecked")
-	public E2 previous() {
-		return (E2) this.listIterator.previous();
-	}
-
-	public int previousIndex() {
-		return this.listIterator.previousIndex();
-	}
-
-	public void remove() {
-		this.listIterator.remove();
-	}
-
-	public void set(E2 e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public void add(E2 e) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java
deleted file mode 100644
index 2bd19a9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Wrap an iterator on elements of any sub-type of <code>E</code>, converting
- * it into an iterator on elements of type <code>E</code>. This shouldn't be a
- * problem since there is no way to add invalid elements to the iterator's
- * backing collection. (Note the lack of compiler warnings, suppressed or
- * otherwise.)
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SuperIterableWrapper
- */
-public class SuperIteratorWrapper<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-
-
-	public SuperIteratorWrapper(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	public SuperIteratorWrapper(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		return this.iterator.next();
-	}
-
-	public void remove() {
-		this.iterator.remove();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java
deleted file mode 100644
index d12773a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * Wrap a list iterator on elements of any sub-type of <code>E</code>, converting it into a
- * list iterator on elements of type <code>E</code>. This shouldn't be a problem since the
- * resulting list iterator disables the methods that would put invalid elements
- * in the iterator's backing list (i.e. {@link #set(Object)} and {@link #add(Object)}).
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.SuperListIterableWrapper
- */
-public class SuperListIteratorWrapper<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends E> listIterator;
-
-
-	public SuperListIteratorWrapper(List<? extends E> list) {
-		this(list.listIterator());
-	}
-
-	public SuperListIteratorWrapper(ListIterable<? extends E> listIterable) {
-		this(listIterable.iterator());
-	}
-
-	public SuperListIteratorWrapper(ListIterator<? extends E> listIterator) {
-		super();
-		this.listIterator = listIterator;
-	}
-
-	public boolean hasNext() {
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		return this.listIterator.next();
-	}
-
-	public int nextIndex() {
-		return this.listIterator.nextIndex();
-	}
-
-	public boolean hasPrevious() {
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		return this.listIterator.previous();
-	}
-
-	public int previousIndex() {
-		return this.listIterator.previousIndex();
-	}
-
-	public void remove() {
-		this.listIterator.remove();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java
deleted file mode 100644
index 8efef7e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Wrap an iterator and synchronize all its methods so it can be safely shared
- * among multiple threads.
- * 
- * @param <E> the type of elements returned by the iterator
- */
-public class SynchronizedIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-
-	public SynchronizedIterator(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	public SynchronizedIterator(Iterable<? extends E> iterable, Object mutex) {
-		this(iterable.iterator(), mutex);
-	}
-
-	public SynchronizedIterator(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-		this.mutex = this;
-	}
-
-	public SynchronizedIterator(Iterator<? extends E> iterator, Object mutex) {
-		super();
-		this.iterator = iterator;
-		this.mutex = mutex;
-	}
-
-	public synchronized boolean hasNext() {
-		synchronized (this.mutex) {
-			return this.iterator.hasNext();
-		}
-	}
-
-	public synchronized E next() {
-		synchronized (this.mutex) {
-			return this.iterator.next();
-		}
-	}
-
-	public synchronized void remove() {
-		synchronized (this.mutex) {
-			this.iterator.remove();
-		}
-	}
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return StringTools.buildToStringFor(this, this.iterator);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java
deleted file mode 100644
index 87e6384..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * Wrap a list iterator and synchronize all its methods so it can be safely shared
- * among multiple threads.
- * 
- * @param <E> the type of elements returned by the iterator
- */
-public class SynchronizedListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<E> listIterator;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-
-	public SynchronizedListIterator(List<E> list) {
-		this(list.listIterator());
-	}
-
-	public SynchronizedListIterator(List<E> list, Object mutex) {
-		this(list.listIterator(), mutex);
-	}
-
-	public SynchronizedListIterator(ListIterable<E> listIterable) {
-		this(listIterable.iterator());
-	}
-
-	public SynchronizedListIterator(ListIterable<E> listIterable, Object mutex) {
-		this(listIterable.iterator(), mutex);
-	}
-
-	public SynchronizedListIterator(ListIterator<E> listIterator) {
-		super();
-		this.listIterator = listIterator;
-		this.mutex = this;
-	}
-
-	public SynchronizedListIterator(ListIterator<E> listIterator, Object mutex) {
-		super();
-		this.listIterator = listIterator;
-		this.mutex = mutex;
-	}
-
-	public synchronized boolean hasNext() {
-		synchronized (this.mutex) {
-			return this.listIterator.hasNext();
-		}
-	}
-
-	public synchronized E next() {
-		synchronized (this.mutex) {
-			return this.listIterator.next();
-		}
-	}
-
-	public synchronized int nextIndex() {
-		synchronized (this.mutex) {
-			return this.listIterator.nextIndex();
-		}
-	}
-
-	public synchronized boolean hasPrevious() {
-		synchronized (this.mutex) {
-			return this.listIterator.hasPrevious();
-		}
-	}
-
-	public synchronized E previous() {
-		synchronized (this.mutex) {
-			return this.listIterator.previous();
-		}
-	}
-
-	public synchronized int previousIndex() {
-		synchronized (this.mutex) {
-			return this.listIterator.previousIndex();
-		}
-	}
-
-	public synchronized void remove() {
-		synchronized (this.mutex) {
-			this.listIterator.remove();
-		}
-	}
-
-	public synchronized void add(E e) {
-		synchronized (this.mutex) {
-			this.listIterator.add(e);
-		}
-	}
-
-	public synchronized void set(E e) {
-		synchronized (this.mutex) {
-			this.listIterator.set(e);
-		}
-	}
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return StringTools.buildToStringFor(this, this.listIterator);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java
deleted file mode 100644
index 7b6aa41..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-
-
-/**
- * A <code>TransformationIterator</code> wraps another {@link Iterator}
- * and transforms its results for client consumption. To use, supply a 
- * {@link Transformer} or subclass <code>TransformationIterator</code>
- * and override the {@link #transform(Object)} method.
- * Objects of type <code>E1</code> are transformed into objects of type <code>E2</code>;
- * i.e. the iterator returns objects of type <code>E2</code>.
- * 
- * @param <E1> input: the type of elements to be transformed
- * @param <E2> output: the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable
- */
-public class TransformationIterator<E1, E2>
-	implements Iterator<E2>
-{
-	private final Iterator<? extends E1> iterator;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterator with the specified iterable
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationIterator(Iterable<? extends E1> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationIterator(Iterator<? extends E1> iterator) {
-		this(iterator, Transformer.Disabled.<E1, E2>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified iterable and transformer.
-	 */
-	public TransformationIterator(Iterable<? extends E1> iterable, Transformer<E1, ? extends E2> transformer) {
-		this(iterable.iterator(), transformer);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and transformer.
-	 */
-	public TransformationIterator(Iterator<? extends E1> iterator, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.iterator = iterator;
-		this.transformer = transformer;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.iterator.hasNext();
-	}
-
-	public E2 next() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.iterator.next());
-	}
-
-	public void remove() {
-		// delegate to the nested iterator
-		this.iterator.remove();
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(E1 next) {
-		return this.transformer.transform(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java
deleted file mode 100644
index 01455cd..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-
-/**
- * A <code>TransformationListIterator</code> wraps another {@link ListIterator}
- * and transforms its results for client consumption. To use, supply a 
- * {@link Transformer} or subclass <code>TransformationIterator</code>
- * and override the {@link #transform(Object)} method.
- * <p>
- * The methods {@link #set(Object)} and {@link #add(Object)}
- * are left unsupported in this class.
- * 
- * @param <E1> input: the type of elements to be transformed
- * @param <E2> output: the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.TransformationListIterable
- */
-public class TransformationListIterator<E1, E2>
-	implements ListIterator<E2>
-{
-	private final ListIterator<? extends E1> listIterator;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterator with the specified list
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationListIterator(List<? extends E1> list) {
-		this(list.listIterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested listed iterator
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationListIterator(ListIterator<? extends E1> listIterator) {
-		this(listIterator, Transformer.Disabled.<E1, E2>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified list
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform(Object)} method instead of building
-	 * a {@link Transformer}.
-	 */
-	public TransformationListIterator(ListIterable<? extends E1> listIterable) {
-		this(listIterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified list and transformer.
-	 */
-	public TransformationListIterator(List<? extends E1> list, Transformer<E1, ? extends E2> transformer) {
-		this(list.listIterator(), transformer);
-	}
-
-	/**
-	 * Construct an iterator with the specified list and transformer.
-	 */
-	public TransformationListIterator(ListIterable<? extends E1> listIterable, Transformer<E1, ? extends E2> transformer) {
-		this(listIterable.iterator(), transformer);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and transformer.
-	 */
-	public TransformationListIterator(ListIterator<? extends E1> listIterator, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.listIterator = listIterator;
-		this.transformer = transformer;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.listIterator.hasNext();
-	}
-
-	public E2 next() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.listIterator.next());
-	}
-
-	public int nextIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.nextIndex();
-	}
-
-	public boolean hasPrevious() {
-		// delegate to the nested iterator
-		return this.listIterator.hasPrevious();
-	}
-
-	public E2 previous() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.listIterator.previous());
-	}
-
-	public int previousIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.previousIndex();
-	}
-
-	public void add(E2 o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E2 o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		// delegate to the nested iterator
-		this.listIterator.remove();
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(E1 next) {
-		return this.transformer.transform(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java
deleted file mode 100644
index 1103af9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * A <code>TreeIterator</code> simplifies the traversal of a
- * tree of objects, where the objects' protocol(s) provides
- * a method for getting the immediate children of the given
- * node but does not provide a method for getting all the
- * descendants (children, grandchildren, etc.) of the given node.
- * <p>
- * To use, supply:<ul>
- * <li> either the root element of the tree or, if the tree has
- * multiple roots, an {@link Iterator} over the set of roots
- * <li> a {@link Midwife} that delivers the children
- * of each child
- * (alternatively, subclass <code>TreeIterator</code>
- * and override the {@link #children(Object)} method)
- * </ul>
- * 
- * @param <E> the type of elements returned by the iterator
- * 
- * @see org.eclipse.jpt.common.utility.internal.iterables.TreeIterable
- */
-public class TreeIterator<E>
-	implements Iterator<E>
-{
-	private final LinkedList<Iterator<? extends E>> iterators;
-	private final Midwife<E> midwife;
-	private Iterator<? extends E> currentIterator;
-
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link Midwife}.
-	 */
-	public TreeIterator(E... roots) {
-		this(new ArrayIterator<E>(roots));
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link Midwife}.
-	 */
-	public TreeIterator(Iterable<? extends E> roots) {
-		this(roots.iterator());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link Midwife}.
-	 */
-	public TreeIterator(Iterator<? extends E> roots) {
-		this(roots, Midwife.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified root and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * {@link #children(Object)} method instead of building
-	 * a {@link Midwife}.
-	 */
-	public TreeIterator(E root) {
-		this(root, Midwife.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified root and midwife.
-	 */
-	public TreeIterator(E root, Midwife<E> midwife) {
-		this(new SingleElementIterator<E>(root), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(E[] roots, Midwife<E> midwife) {
-		this(new ArrayIterator<E>(roots), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(Iterable<? extends E> roots, Midwife<E> midwife) {
-		this(roots.iterator(), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(Iterator<? extends E> roots, Midwife<E> midwife) {
-		super();
-		this.currentIterator = roots;
-		// use a LinkedList since we will be pulling off the front and adding to the end
-		this.iterators = new LinkedList<Iterator<? extends E>>();
-		this.midwife = midwife;
-	}
-
-	public boolean hasNext() {
-		if (this.currentIterator.hasNext()) {
-			return true;
-		}
-		for (Iterator<? extends E> iterator : this.iterators) {
-			if (iterator.hasNext()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public E next() {
-		if (this.currentIterator.hasNext()) {
-			return this.nextInternal();
-		}
-		for (Iterator<Iterator<? extends E>> stream = this.iterators.iterator(); stream.hasNext(); ) {
-			this.currentIterator = stream.next();
-			if (this.currentIterator.hasNext()) {
-				break;
-			}
-			stream.remove();
-		}
-		return this.nextInternal();
-	}
-
-	/**
-	 * Fetch the children of the next node before returning it.
-	 */
-	private E nextInternal() {
-		E next = this.currentIterator.next();
-		this.iterators.add(this.children(next));
-		return next;
-	}
-
-	public void remove() {
-		this.currentIterator.remove();
-	}
-
-	/**
-	 * Return the immediate children of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Midwife}.
-	 */
-	protected Iterator<? extends E> children(E next) {
-		return this.midwife.children(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.currentIterator);
-	}
-
-
-	//********** inner classes **********
-
-	/**
-	 * Used by {@link TreeIterator} to retrieve
-	 * the immediate children of a node in the tree.
-	 */
-	public interface Midwife<T> {
-
-		/**
-		 * Return the immediate children of the specified object.
-		 */
-		Iterator<? extends T> children(T o);
-
-
-		final class Null<S> implements Midwife<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Midwife INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> Midwife<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// return no neighbors
-			public Iterator<S> children(S next) {
-				return EmptyIterator.instance();
-			}
-			@Override
-			public String toString() {
-				return "TreeIterator.Midwife.Null"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-		/**
-		 * The midwife used when the {@link TreeIterator#children(Object)}
-		 * method is overridden.
-		 */
-		final class Disabled<S> implements Midwife<S> {
-			@SuppressWarnings("rawtypes")
-			public static final Midwife INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> Midwife<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public Iterator<S> children(S next) {
-				throw new UnsupportedOperationException();  // TreeIterator.children(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "TreeIterator.Midwife.Disabled"; //$NON-NLS-1$
-			}
-			private static final long serialVersionUID = 1L;
-			private Object readResolve() {
-				// replace this object with the singleton
-				return INSTANCE;
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java
deleted file mode 100644
index e880beb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-
-/**
- * Reasonable implementation of the {@link Model} protocol
- * with numerous convenience methods.
- * 
- * @see ChangeSupport
- */
-public abstract class AbstractModel
-	implements Model
-{
-	/**
-	 * Delegate state/property/collection/list/tree change support to this
-	 * helper object. The change support object is <em>lazily-initialized</em>;
-	 * so it may be <code>null</code>. The method {@link #getChangeSupport()}
-	 * will initialize this field if it is <code>null</code>.
-	 * <p>
-	 * <strong>NB:</strong> We instantiate this when we fire events, even when
-	 * we do not have any listeners (which is be implied if this is <code>null</code>).
-	 * This allows the change support to have behavior tied to events even when
-	 * we have no listeners.
-	 * 
-	 * @see AspectChangeSupport#aspectChanged(String)
-	 */
-	protected ChangeSupport changeSupport;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractModel() {
-		super();
-	}
-
-	/**
-	 * This accessor will build the change support when required.
-	 * This only helps reduce the footprint of a model that neither has any
-	 * listeners added to it nor ever changes (fires any events).
-	 */
-	protected synchronized ChangeSupport getChangeSupport() {
-		if (this.changeSupport == null) {
-			this.changeSupport = this.buildChangeSupport();
-		}
-		return this.changeSupport;
-	}
-
-	/**
-	 * Allow subclasses to tweak the change support used.
-	 */
-	protected ChangeSupport buildChangeSupport() {
-		return new ChangeSupport(this);
-	}
-
-
-	// ********** change support **********
-
-	/**
-	 * @see ChangeSupport#addChangeListener(ChangeListener)
-	 */
-	public void addChangeListener(ChangeListener listener) {
-		this.getChangeSupport().addChangeListener(listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removeChangeListener(ChangeListener)
-	 */
-	public void removeChangeListener(ChangeListener listener) {
-		this.getChangeSupport().removeChangeListener(listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyChangeListeners()
-	 */
-	public boolean hasAnyChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no change listeners.
-	 */
-	public boolean hasNoChangeListeners() {
-		return ! this.hasAnyChangeListeners();
-	}
-
-
-	// ********** state change support **********
-
-	/**
-	 * @see ChangeSupport#addStateChangeListener(StateChangeListener)
-	 */
-	public void addStateChangeListener(StateChangeListener listener) {
-		this.getChangeSupport().addStateChangeListener(listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removeStateChangeListener(StateChangeListener)
-	 */
-	public void removeStateChangeListener(StateChangeListener listener) {
-		this.getChangeSupport().removeStateChangeListener(listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyStateChangeListeners()
-	 */
-	public boolean hasAnyStateChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyStateChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no state change listeners.
-	 */
-	public boolean hasNoStateChangeListeners() {
-		return ! this.hasAnyStateChangeListeners();
-	}
-
-	/**
-	 * @see ChangeSupport#fireStateChanged(StateChangeEvent)
-	 */
-	protected final void fireStateChanged(StateChangeEvent event) {
-		this.getChangeSupport().fireStateChanged(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireStateChanged()
-	 */
-	protected final void fireStateChanged() {
-		this.getChangeSupport().fireStateChanged();
-	}
-
-
-	// ********** property change support **********
-
-	/**
-	 * @see ChangeSupport#addPropertyChangeListener(String, PropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.getChangeSupport().addPropertyChangeListener(propertyName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removePropertyChangeListener(String, PropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.getChangeSupport().removePropertyChangeListener(propertyName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyPropertyChangeListeners(String)
-	 */
-	public boolean hasAnyPropertyChangeListeners(String propertyName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyPropertyChangeListeners(propertyName);
-	}
-
-	/**
-	 * Return whether the model has no property change listeners that will
-	 * be notified when the specified property has changed.
-	 */
-	public boolean hasNoPropertyChangeListeners(String propertyName) {
-		return ! this.hasAnyPropertyChangeListeners(propertyName);
-	}
-
-	/**
-	 * @see ChangeSupport#firePropertyChanged(PropertyChangeEvent)
-	 */
-	protected final boolean firePropertyChanged(PropertyChangeEvent event) {
-		return this.getChangeSupport().firePropertyChanged(event);
-	}
-
-	/**
-	 * @see ChangeSupport#firePropertyChanged(String, Object, Object)
-	 */
-	protected final boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-		return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	/**
-	 * @see ChangeSupport#firePropertyChanged(String, int, int)
-	 */
-	protected final boolean firePropertyChanged(String propertyName, int oldValue, int newValue) {
-		return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	/**
-	 * @see ChangeSupport#firePropertyChanged(String, boolean, boolean)
-	 */
-	protected final boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-		return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	/**
-	 * Implied <code>null</code> "old" value.
-	 * @see #firePropertyChanged(String, Object, Object)
-	 */
-	protected final boolean firePropertyChanged(String propertyName, Object newValue) {
-		return this.firePropertyChanged(propertyName, null, newValue);
-	}
-
-
-	// ********** collection change support **********
-
-	/**
-	 * @see ChangeSupport#addCollectionChangeListener(String, CollectionChangeListener)
-	 */
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.getChangeSupport().addCollectionChangeListener(collectionName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removeCollectionChangeListener(String, CollectionChangeListener)
-	 */
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.getChangeSupport().removeCollectionChangeListener(collectionName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyCollectionChangeListeners(String)
-	 */
-	public boolean hasAnyCollectionChangeListeners(String collectionName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyCollectionChangeListeners(collectionName);
-	}
-
-	/**
-	 * Return whether the model has no collection change listeners that will
-	 * be notified when the specified collection has changed.
-	 */
-	public boolean hasNoCollectionChangeListeners(String collectionName) {
-		return ! this.hasAnyCollectionChangeListeners(collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsAdded(CollectionAddEvent)
-	 */
-	protected final boolean fireItemsAdded(CollectionAddEvent event) {
-		return this.getChangeSupport().fireItemsAdded(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsAdded(String, Collection)
-	 */
-	protected final boolean fireItemsAdded(String collectionName, Collection<?> addedItems) {
-		return this.getChangeSupport().fireItemsAdded(collectionName, addedItems);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemAdded(String, Object)
-	 */
-	protected final void fireItemAdded(String collectionName, Object addedItem) {
-		this.getChangeSupport().fireItemAdded(collectionName, addedItem);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsRemoved(CollectionRemoveEvent)
-	 */
-	protected final boolean fireItemsRemoved(CollectionRemoveEvent event) {
-		return this.getChangeSupport().fireItemsRemoved(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsRemoved(String, Collection)
-	 */
-	protected final boolean fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-		return this.getChangeSupport().fireItemsRemoved(collectionName, removedItems);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemRemoved(String, Object)
-	 */
-	protected final void fireItemRemoved(String collectionName, Object removedItem) {
-		this.getChangeSupport().fireItemRemoved(collectionName, removedItem);
-	}
-
-	/**
-	 * @see ChangeSupport#fireCollectionCleared(CollectionClearEvent)
-	 */
-	protected final void fireCollectionCleared(CollectionClearEvent event) {
-		this.getChangeSupport().fireCollectionCleared(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireCollectionCleared(String)
-	 */
-	protected final void fireCollectionCleared(String collectionName) {
-		this.getChangeSupport().fireCollectionCleared(collectionName);
-	}
-
-	protected final void fireCollectionChanged(CollectionChangeEvent event) {
-		this.getChangeSupport().fireCollectionChanged(event);
-	}
-
-	protected final void fireCollectionChanged(String collectionName, Collection<?> collection) {
-		this.getChangeSupport().fireCollectionChanged(collectionName, collection);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemToCollection(Object, Collection, String)
-	 */
-	protected <E> boolean addItemToCollection(E item, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemToCollection(item, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToCollection(Object[], Collection, String)
-	 */
-	protected <E> boolean addItemsToCollection(E[] items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToCollection(Collection, Collection, String)
-	 */
-	protected <E> boolean addItemsToCollection(Collection<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToCollection(Iterable, Collection, String)
-	 */
-	protected <E> boolean addItemsToCollection(Iterable<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToCollection(Iterator, Collection, String)
-	 */
-	protected <E> boolean addItemsToCollection(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemFromCollection(Object, Collection, String)
-	 */
-	protected boolean removeItemFromCollection(Object item, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemFromCollection(item, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromCollection(Object[], Collection, String)
-	 */
-	protected boolean removeItemsFromCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromCollection(Collection, Collection, String)
-	 */
-	protected boolean removeItemsFromCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromCollection(Iterable, Collection, String)
-	 */
-	protected boolean removeItemsFromCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromCollection(Iterator, Collection, String)
-	 */
-	protected boolean removeItemsFromCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInCollection(Object[], Collection, String)
-	 */
-	protected boolean retainItemsInCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInCollection(Collection, Collection, String)
-	 */
-	protected boolean retainItemsInCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInCollection(Iterable, Collection, String)
-	 */
-	protected boolean retainItemsInCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInCollection(Iterator, Collection, String)
-	 */
-	protected boolean retainItemsInCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#clearCollection(Collection, String)
-	 */
-	protected boolean clearCollection(Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().clearCollection(collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeCollection(Collection, Collection, String)
-	 */
-	protected <E> boolean synchronizeCollection(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeCollection(Iterable, Collection, String)
-	 */
-	protected <E> boolean synchronizeCollection(Iterable<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeCollection(Iterator, Collection, String)
-	 */
-	protected <E> boolean synchronizeCollection(Iterator<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName);
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * @see ChangeSupport#addListChangeListener(String, ListChangeListener)
-	 */
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		this.getChangeSupport().addListChangeListener(listName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removeListChangeListener(String, ListChangeListener)
-	 */
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		this.getChangeSupport().removeListChangeListener(listName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyListChangeListeners(String)
-	 */
-	public boolean hasAnyListChangeListeners(String listName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyListChangeListeners(listName);
-	}
-
-	/**
-	 * Return whether the model has no list change listeners that will
-	 * be notified when the specified list has changed.
-	 */
-	public boolean hasNoListChangeListeners(String listName) {
-		return ! this.hasAnyListChangeListeners(listName);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsAdded(ListAddEvent)
-	 */
-	protected final boolean fireItemsAdded(ListAddEvent event) {
-		return this.getChangeSupport().fireItemsAdded(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsAdded(String, int, List)
-	 */
-	protected final boolean fireItemsAdded(String listName, int index, List<?> addedItems) {
-		return this.getChangeSupport().fireItemsAdded(listName, index, addedItems);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemAdded(String, int, Object)
-	 */
-	protected final void fireItemAdded(String listName, int index, Object addedItem) {
-		this.getChangeSupport().fireItemAdded(listName, index, addedItem);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsRemoved(ListRemoveEvent)
-	 */
-	protected final boolean fireItemsRemoved(ListRemoveEvent event) {
-		return this.getChangeSupport().fireItemsRemoved(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsRemoved(String, int, List)
-	 */
-	protected final boolean fireItemsRemoved(String listName, int index, List<?> removedItems) {
-		return this.getChangeSupport().fireItemsRemoved(listName, index, removedItems);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemRemoved(String, int, Object)
-	 */
-	protected final void fireItemRemoved(String listName, int index, Object removedItem) {
-		this.getChangeSupport().fireItemRemoved(listName, index, removedItem);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsReplaced(ListReplaceEvent)
-	 */
-	protected final boolean fireItemsReplaced(ListReplaceEvent event) {
-		return this.getChangeSupport().fireItemsReplaced(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsReplaced(String, int, List, List)
-	 */
-	protected final <E> boolean fireItemsReplaced(String listName, int index, List<? extends E> newItems, List<E> replacedItems) {
-		return this.getChangeSupport().fireItemsReplaced(listName, index, newItems, replacedItems);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemReplaced(String, int, Object, Object)
-	 */
-	protected final boolean fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) {
-		return this.getChangeSupport().fireItemReplaced(listName, index, newItem, replacedItem);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsMoved(ListMoveEvent)
-	 */
-	protected final boolean fireItemsMoved(ListMoveEvent event) {
-		return this.getChangeSupport().fireItemsMoved(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemsMoved(String, int, int, int)
-	 */
-	protected final <E> boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-		return this.getChangeSupport().fireItemsMoved(listName, targetIndex, sourceIndex, length);
-	}
-
-	/**
-	 * @see ChangeSupport#fireItemMoved(String, int, int)
-	 */
-	protected final boolean fireItemMoved(String listName, int targetIndex, int sourceIndex) {
-		return this.getChangeSupport().fireItemMoved(listName, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * @see ChangeSupport#fireListCleared(ListClearEvent)
-	 */
-	protected final void fireListCleared(ListClearEvent event) {
-		this.getChangeSupport().fireListCleared(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireListCleared(String)
-	 */
-	protected final void fireListCleared(String listName) {
-		this.getChangeSupport().fireListCleared(listName);
-	}
-
-	protected final void fireListChanged(ListChangeEvent event) {
-		this.getChangeSupport().fireListChanged(event);
-	}
-
-	protected final void fireListChanged(String listName, List<?> list) {
-		this.getChangeSupport().fireListChanged(listName, list);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemToList(int, Object, List, String)
-	 */
-	protected <E> void addItemToList(int index, E item, List<E> list, String listName) {
-		this.getChangeSupport().addItemToList(index, item, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemToList(Object, List, String)
-	 */
-	protected <E> boolean addItemToList(E item, List<E> list, String listName) {
-		return this.getChangeSupport().addItemToList(item, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(int, Object[], List, String)
-	 */
-	protected <E> boolean addItemsToList(int index, E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(int, Collection, List, String)
-	 */
-	protected <E> boolean addItemsToList(int index, Collection<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(int, Iterable, List, String)
-	 */
-	protected <E> boolean addItemsToList(int index, Iterable<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(int, Iterator, List, String)
-	 */
-	protected <E> boolean addItemsToList(int index, Iterator<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(Object[], List, String)
-	 */
-	protected <E> boolean addItemsToList(E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(Collection, List, String)
-	 */
-	protected <E> boolean addItemsToList(Collection<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(Iterable, List, String)
-	 */
-	protected <E> boolean addItemsToList(Iterable<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#addItemsToList(Iterator, List, String)
-	 */
-	protected <E> boolean addItemsToList(Iterator<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemFromList(int, List, String)
-	 */
-	protected <E> E removeItemFromList(int index, List<E> list, String listName) {
-		return this.getChangeSupport().removeItemFromList(index, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemFromList(Object, List, String)
-	 */
-	protected boolean removeItemFromList(Object item, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemFromList(item, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeRangeFromList(int, int, List, String)
-	 */
-	protected <E> List<E> removeRangeFromList(int beginIndex, int endIndex, List<E> list, String listName) {
-		return this.getChangeSupport().removeRangeFromList(beginIndex, endIndex, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(int, List, String)
-	 */
-	protected <E> List<E> removeItemsFromList(int index, List<E> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(index, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(int, int, List, String)
-	 */
-	protected <E> List<E> removeItemsFromList(int index, int length, List<E> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(index, length, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(Object[], List, String)
-	 */
-	protected boolean removeItemsFromList(Object[] items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(Collection, List, String)
-	 */
-	protected boolean removeItemsFromList(Collection<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(Iterable, List, String)
-	 */
-	protected boolean removeItemsFromList(Iterable<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#removeItemsFromList(Iterator, List, String)
-	 */
-	protected boolean removeItemsFromList(Iterator<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInList(Object[], List, String)
-	 */
-	protected boolean retainItemsInList(Object[] items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInList(Collection, List, String)
-	 */
-	protected boolean retainItemsInList(Collection<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInList(Iterable, List, String)
-	 */
-	protected boolean retainItemsInList(Iterable<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#retainItemsInList(Iterator, List, String)
-	 */
-	protected boolean retainItemsInList(Iterator<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#setItemInList(int, Object, List, String)
-	 */
-	protected <E> E setItemInList(int index, E item, List<E> list, String listName) {
-		return this.getChangeSupport().setItemInList(index, item, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#replaceItemInList(Object, Object, List, String)
-	 */
-	protected <E> int replaceItemInList(E oldItem, E newItem, List<E> list, String listName) {
-		return this.getChangeSupport().replaceItemInList(oldItem, newItem, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#setItemsInList(int, Object[], List, String)
-	 */
-	protected <E> List<E> setItemsInList(int index, E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().setItemsInList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#setItemsInList(int, List, List, String)
-	 */
-	protected <E> List<E> setItemsInList(int index, List<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().setItemsInList(index, items, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#moveItemsInList(int, int, int, List, String)
-	 */
-	protected <E> void moveItemsInList(int targetIndex, int sourceIndex, int length, List<E> list, String listName) {
-		this.getChangeSupport().moveItemsInList(targetIndex, sourceIndex, length, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#moveItemInList(int, int, List, String)
-	 */
-	protected <E> void moveItemInList(int targetIndex, int sourceIndex, List<E> list, String listName) {
-		this.getChangeSupport().moveItemInList(targetIndex, sourceIndex, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#moveItemInList(int, Object, List, String)
-	 */
-	protected <E> void moveItemInList(int targetIndex, E item, List<E> list, String listName) {
-		this.getChangeSupport().moveItemInList(targetIndex, item, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#clearList(List, String)
-	 */
-	protected boolean clearList(List<?> list, String listName) {
-		return this.getChangeSupport().clearList(list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeList(List, List, String)
-	 */
-	protected <E> boolean synchronizeList(List<? extends E> newList, List<E> list, String listName) {
-		return this.getChangeSupport().synchronizeList(newList, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeList(Iterable, List, String)
-	 */
-	protected <E> boolean synchronizeList(Iterable<? extends E> newList, List<E> list, String listName) {
-		return this.getChangeSupport().synchronizeList(newList, list, listName);
-	}
-
-	/**
-	 * @see ChangeSupport#synchronizeList(Iterator, List, String)
-	 */
-	protected <E> boolean synchronizeList(Iterator<? extends E> newList, List<E> list, String listName) {
-		return this.getChangeSupport().synchronizeList(newList, list, listName);
-	}
-
-
-	// ********** tree change support **********
-
-	/**
-	 * @see ChangeSupport#addTreeChangeListener(String, TreeChangeListener)
-	 */
-	public void addTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.getChangeSupport().addTreeChangeListener(treeName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#removeTreeChangeListener(String, TreeChangeListener)
-	 */
-	public void removeTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.getChangeSupport().removeTreeChangeListener(treeName, listener);
-	}
-
-	/**
-	 * @see ChangeSupport#hasAnyTreeChangeListeners(String)
-	 */
-	public boolean hasAnyTreeChangeListeners(String treeName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyTreeChangeListeners(treeName);
-	}
-
-	/**
-	 * Return whether the model has no tree change listeners that will
-	 * be notified when the specified tree has changed.
-	 */
-	public boolean hasNoTreeChangeListeners(String treeName) {
-		return ! this.hasAnyTreeChangeListeners(treeName);
-	}
-
-	/**
-	 * @see ChangeSupport#fireNodeAdded(TreeAddEvent)
-	 */
-	protected final void fireNodeAdded(TreeAddEvent event) {
-		this.getChangeSupport().fireNodeAdded(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireNodeAdded(String, List)
-	 */
-	protected final void fireNodeAdded(String treeName, List<?> path) {
-		this.getChangeSupport().fireNodeAdded(treeName, path);
-	}
-
-	/**
-	 * @see ChangeSupport#fireNodeRemoved(TreeRemoveEvent)
-	 */
-	protected final void fireNodeRemoved(TreeRemoveEvent event) {
-		this.getChangeSupport().fireNodeRemoved(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireNodeRemoved(String, List)
-	 */
-	protected final void fireNodeRemoved(String treeName, List<?> path) {
-		this.getChangeSupport().fireNodeRemoved(treeName, path);
-	}
-
-	/**
-	 * @see ChangeSupport#fireTreeCleared(TreeClearEvent)
-	 */
-	protected final void fireTreeCleared(TreeClearEvent event) {
-		this.getChangeSupport().fireTreeCleared(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireTreeCleared(String)
-	 */
-	protected final void fireTreeCleared(String treeName) {
-		this.getChangeSupport().fireTreeCleared(treeName);
-	}
-
-	/**
-	 * @see ChangeSupport#fireTreeChanged(TreeChangeEvent)
-	 */
-	protected final void fireTreeChanged(TreeChangeEvent event) {
-		this.getChangeSupport().fireTreeChanged(event);
-	}
-
-	/**
-	 * @see ChangeSupport#fireTreeChanged(String, Collection)
-	 */
-	protected final void fireTreeChanged(String treeName, Collection<?> nodes) {
-		this.getChangeSupport().fireTreeChanged(treeName, nodes);
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Return whether the specified values are equal, with the appropriate <code>null</code> checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 * <p>
-	 * <em>Do not</em> use this to determine whether to fire a change notification,
-	 * {@link ChangeSupport} already does that.
-	 */
-	protected final boolean valuesAreEqual(Object value1, Object value2) {
-		return this.getChangeSupport().valuesAreEqual(value1, value2);
-	}
-
-	/**
-	 * @see #valuesAreEqual(Object, Object)
-	 */
-	protected final boolean attributeValueHasNotChanged(Object oldValue, Object newValue) {
-		return this.valuesAreEqual(oldValue, newValue);
-	}
-
-
-	/**
-	 * <em>Do not</em> use this to determine whether to fire a change notification,
-	 * {@link ChangeSupport} already does that.
-	 * <p>
-	 * For example, after firing the change notification, you can use this method
-	 * to decide if some other, related, piece of state needs to be synchronized
-	 * with the state that just changed.
-	 * 
-	 * @see ChangeSupport#valuesAreDifferent(Object, Object)
-	 */
-	protected final boolean valuesAreDifferent(Object value1, Object value2) {
-		return this.getChangeSupport().valuesAreDifferent(value1, value2);
-	}
-
-	/**
-	 * @see #valuesAreDifferent(Object, Object)
-	 */
-	protected final boolean attributeValueHasChanged(Object oldValue, Object newValue) {
-		return this.valuesAreDifferent(oldValue, newValue);
-	}
-
-
-	// ********** Object overrides **********
-
-	/**
-	 * Although cloning models is usually not a Good Idea,
-	 * we should at least support it properly.
-	 */
-	@Override
-	protected AbstractModel clone() throws CloneNotSupportedException {
-		AbstractModel clone = (AbstractModel) super.clone();
-		// clear out change support - models do not share listeners
-		clone.changeSupport = null;
-		return clone;
-	}
-
-	/**
-	 * e.g. <code>"ClassName[00-F3-EE-42](add'l info)"</code>
-	 */
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		StringTools.buildSimpleToStringOn(this, sb);
-		sb.append('(');
-		int len = sb.length();
-		this.toString(sb);
-		if (sb.length() == len) {
-			sb.deleteCharAt(len - 1);
-		} else {
-			sb.append(')');
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * This method is public so one model can call a nested abstract model's
-	 * <code>#toString(StringBuilder)</code>.
-	 */
-	public void toString(@SuppressWarnings("unused") StringBuilder sb) {
-		// subclasses should override this to do something a bit more helpful
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java
deleted file mode 100644
index d98f443..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model;
-
-import java.util.Collection;
-import java.util.EventListener;
-import java.util.List;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * This change support class will notify listeners whenever one of the source's
- * aspects has changed. Only the aspect name is passed to the listener; no
- * event is generated. This allows the listeners to delegate to the change
- * support object verification that an aspect as actually changed. This is
- * useful for simple things like setting dirty flags, blanket validation, and
- * blanket sychronization; i.e. things that might be interested in the <em>name</em>
- * of the aspect that changed but not so much <em>how</em> the aspect changed.
- */
-public class AspectChangeSupport
-	extends ChangeSupport
-{
-	private static final long serialVersionUID = 1L;
-	protected static final Class<Listener> LISTENER_CLASS = Listener.class;
-
-
-	public AspectChangeSupport(Model source, Listener listener) {
-		this(source);
-		this.addListener(listener);
-	}
-
-	public AspectChangeSupport(Model source) {
-		super(source);
-	}
-
-	protected void aspectChanged(String aspectName) {
-		Iterable<Listener> listeners = this.getListeners();
-		if (listeners != null) {
-			for (Listener listener : listeners) {
-				listener.aspectChanged(aspectName);
-			}
-		}
-	}
-
-	public void addListener(Listener listener) {
-		this.addListener(LISTENER_CLASS, listener);
-	}
-
-	public void removeListener(Listener listener) {
-		this.removeListener(LISTENER_CLASS, listener);
-	}
-
-	private Iterable<Listener> getListeners() {
-		ListenerList<Listener> listenerList = this.getListenerList();
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private ListenerList<Listener> getListenerList() {
-		return this.getListenerList(LISTENER_CLASS);
-	}
-
-
-	// ********** listener interface **********
-
-	/**
-	 * Listener that will be notified of any aspect changes.
-	 */
-	public interface Listener extends EventListener {
-
-		/**
-		 * The specified aspect changed.
-		 */
-		void aspectChanged(String aspectName);
-
-	}
-
-
-	// ********** state change support **********
-
-	@Override
-	public void fireStateChanged(StateChangeEvent event) {
-		super.fireStateChanged(event);
-		this.aspectChanged(null);
-	}
-
-	@Override
-	public void fireStateChanged() {
-		super.fireStateChanged();
-		this.aspectChanged(null);
-	}
-
-
-	// ********** property change support **********
-
-	@Override
-	protected void firePropertyChanged_(PropertyChangeEvent event) {
-		super.firePropertyChanged_(event);
-		this.aspectChanged(event.getPropertyName());
-	}
-
-	@Override
-	protected void firePropertyChanged_(String propertyName, Object oldValue, Object newValue) {
-		super.firePropertyChanged_(propertyName, oldValue, newValue);
-		this.aspectChanged(propertyName);
-	}
-
-	@Override
-	protected void firePropertyChanged_(String propertyName, int oldValue, int newValue) {
-		super.firePropertyChanged_(propertyName, oldValue, newValue);
-		this.aspectChanged(propertyName);
-	}
-
-	@Override
-	protected void firePropertyChanged_(String propertyName, boolean oldValue, boolean newValue) {
-		super.firePropertyChanged_(propertyName, oldValue, newValue);
-		this.aspectChanged(propertyName);
-	}
-
-
-	// ********** collection change support **********
-
-	@Override
-	protected void fireItemsAdded_(CollectionAddEvent event) {
-		super.fireItemsAdded_(event);
-		this.aspectChanged(event.getCollectionName());
-	}
-
-	@Override
-	protected void fireItemsAdded_(String collectionName, Collection<?> addedItems) {
-		super.fireItemsAdded_(collectionName, addedItems);
-		this.aspectChanged(collectionName);
-	}
-
-	@Override
-	public void fireItemAdded(String collectionName, Object addedItem) {
-		super.fireItemAdded(collectionName, addedItem);
-		this.aspectChanged(collectionName);
-	}
-
-	@Override
-	protected void fireItemsRemoved_(CollectionRemoveEvent event) {
-		super.fireItemsRemoved_(event);
-		this.aspectChanged(event.getCollectionName());
-	}
-
-	@Override
-	protected void fireItemsRemoved_(String collectionName, Collection<?> removedItems) {
-		super.fireItemsRemoved_(collectionName, removedItems);
-		this.aspectChanged(collectionName);
-	}
-
-	@Override
-	public void fireItemRemoved(String collectionName, Object removedItem) {
-		super.fireItemRemoved(collectionName, removedItem);
-		this.aspectChanged(collectionName);
-	}
-
-	@Override
-	public void fireCollectionCleared(CollectionClearEvent event) {
-		super.fireCollectionCleared(event);
-		this.aspectChanged(event.getCollectionName());
-	}
-
-	@Override
-	public void fireCollectionCleared(String collectionName) {
-		super.fireCollectionCleared(collectionName);
-		this.aspectChanged(collectionName);
-	}
-
-	@Override
-	public void fireCollectionChanged(CollectionChangeEvent event) {
-		super.fireCollectionChanged(event);
-		this.aspectChanged(event.getCollectionName());
-	}
-
-	@Override
-	public void fireCollectionChanged(String collectionName, Collection<?> collection) {
-		super.fireCollectionChanged(collectionName, collection);
-		this.aspectChanged(collectionName);
-	}
-
-
-	// ********** list change support **********
-
-	@Override
-	protected void fireItemsAdded_(ListAddEvent event) {
-		super.fireItemsAdded_(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	protected void fireItemsAdded_(String listName, int index, List<?> addedItems) {
-		super.fireItemsAdded_(listName, index, addedItems);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	public void fireItemAdded(String listName, int index, Object addedItem) {
-		super.fireItemAdded(listName, index, addedItem);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	protected void fireItemsRemoved_(ListRemoveEvent event) {
-		super.fireItemsRemoved_(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	protected void fireItemsRemoved_(String listName, int index, List<?> removedItems) {
-		super.fireItemsRemoved_(listName, index, removedItems);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	public void fireItemRemoved(String listName, int index, Object removedItem) {
-		super.fireItemRemoved(listName, index, removedItem);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	protected void fireItemsReplaced_(ListReplaceEvent event) {
-		super.fireItemsReplaced_(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	protected void fireItemsReplaced_(String listName, int index, List<?> newItems, List<?> replacedItems) {
-		super.fireItemsReplaced_(listName, index, newItems, replacedItems);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	protected void fireItemReplaced_(String listName, int index, Object newItem, Object replacedItem) {
-		super.fireItemReplaced_(listName, index, newItem, replacedItem);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	protected void fireItemsMoved_(ListMoveEvent event) {
-		super.fireItemsMoved_(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	protected void fireItemsMoved_(String listName, int targetIndex, int sourceIndex, int length) {
-		super.fireItemsMoved_(listName, targetIndex, sourceIndex, length);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	public void fireListCleared(ListClearEvent event) {
-		super.fireListCleared(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	public void fireListCleared(String listName) {
-		super.fireListCleared(listName);
-		this.aspectChanged(listName);
-	}
-
-	@Override
-	public void fireListChanged(ListChangeEvent event) {
-		super.fireListChanged(event);
-		this.aspectChanged(event.getListName());
-	}
-
-	@Override
-	public void fireListChanged(String listName, List<?> list) {
-		super.fireListChanged(listName, list);
-		this.aspectChanged(listName);
-	}
-
-
-	// ********** tree change support **********
-
-	@Override
-	public void fireNodeAdded(TreeAddEvent event) {
-		super.fireNodeAdded(event);
-		this.aspectChanged(event.getTreeName());
-	}
-
-	@Override
-	public void fireNodeAdded(String treeName, List<?> path) {
-		super.fireNodeAdded(treeName, path);
-		this.aspectChanged(treeName);
-	}
-
-	@Override
-	public void fireNodeRemoved(TreeRemoveEvent event) {
-		super.fireNodeRemoved(event);
-		this.aspectChanged(event.getTreeName());
-	}
-
-	@Override
-	public void fireNodeRemoved(String treeName, List<?> path) {
-		super.fireNodeRemoved(treeName, path);
-		this.aspectChanged(treeName);
-	}
-
-	@Override
-	public void fireTreeCleared(TreeClearEvent event) {
-		super.fireTreeCleared(event);
-		this.aspectChanged(event.getTreeName());
-	}
-
-	@Override
-	public void fireTreeCleared(String treeName) {
-		super.fireTreeCleared(treeName);
-		this.aspectChanged(treeName);
-	}
-
-	@Override
-	public void fireTreeChanged(TreeChangeEvent event) {
-		super.fireTreeChanged(event);
-		this.aspectChanged(event.getTreeName());
-	}
-
-	@Override
-	public void fireTreeChanged(String treeName, Collection<?> nodes) {
-		super.fireTreeChanged(treeName, nodes);
-		this.aspectChanged(treeName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java
deleted file mode 100644
index af4b952..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java
+++ /dev/null
@@ -1,2844 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventListener;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.HashBag;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Tools;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-
-/**
- * Support object that can be used by implementors of the {@link Model} interface.
- * It provides for state, property, collection, list, and tree change notifications to
- * listeners.
- * <p>
- * <strong>NB1:</strong> There is lots of copy-n-paste code in this class. Nearly all of this duplication
- * is an effort to prevent the unnecessary creation of new objects (typically event
- * objects). Since many events are fired when there are no listeners, we postpone
- * the creation of event objects until we know we have interested listeners.
- * Most methods have the "non-duplicated" version of the method body commented
- * out at the top of the current method body.
- * The hope was that this class would prove to be fairly static and the duplicated
- * code would not prove onerous; but that has not proven to be
- * the case, as we have added support for "state" changes, "dirty" notification,
- * and custom "notifiers", with more to come, I'm sure....  ~bjv
- * <p>
- * <strong>NB2:</strong> This class will check to see if, during the firing of events, a listener
- * on the original, cloned, list of listeners has been removed from the master
- * list of listeners <em>before</em> it is notified. If the listener has been removed
- * "concurrently" it will <em>not</em> be notified.
- * <p>
- * <strong>NB3:</strong> Any listener that is added during the firing of events will <em>not</em> be
- * also notified. This is a bit inconsistent with NB2, but seems reasonable
- * since any added listener should already be in synch with the model.
- * <p>
- * <strong>NB4:</strong> This class is serializable, but it will only write out listeners that
- * are also serializable while silently leaving behind listeners that are not.
- * 
- * @see Model
- * @see AbstractModel
- */
-public class ChangeSupport
-	implements Serializable
-{
-	/** The object to be provided as the "source" for any generated events. */
-	protected final Model source;
-
-	/** Associate aspect names to class-specific listener lists. */
-	private AspectListenerListPair<?>[] aspectListenerListPairs = EMPTY_ASPECT_LISTENER_LIST_PAIR_ARRAY;
-		private static final AspectListenerListPair<?>[] EMPTY_ASPECT_LISTENER_LIST_PAIR_ARRAY = new AspectListenerListPair[0];
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct support for the specified source of change events.
-	 * The source cannot be <code>null</code>.
-	 */
-	public ChangeSupport(Model source) {
-		super();
-		if (source == null) {
-			throw new NullPointerException();
-		}
-		this.source = source;
-	}
-
-
-	// ********** internal implementation **********
-
-	/**
-	 * Add a listener that listens to all the events of the specified type and
-	 * carrying the specified aspect name.
-	 * Neither the aspect name nor the listener can be <code>null</code>.
-	 */
-	protected synchronized <L extends EventListener> void addListener(Class<L> listenerClass, String aspectName, L listener) {
-		ListenerList<L> aspectListenerList = this.getListenerList(listenerClass, aspectName);
-		if (aspectListenerList == null) {
-			this.aspectListenerListPairs = ArrayTools.add(this.aspectListenerListPairs, new SimpleAspectListenerListPair<L>(listenerClass, aspectName, listener));
-		} else {
-			aspectListenerList.add(listener);
-		}
-	}
-
-	/**
-	 * Add a listener that listens to all the events of the specified type.
-	 * The listener cannot be <code>null</code>.
-	 */
-	protected synchronized <L extends EventListener> void addListener(Class<L> listenerClass, L listener) {
-		ListenerList<L> listenerList = this.getListenerList(listenerClass);
-		if (listenerList == null) {
-			this.aspectListenerListPairs = ArrayTools.add(this.aspectListenerListPairs, new NullAspectListenerListPair<L>(listenerClass, listener));
-		} else {
-			listenerList.add(listener);
-		}
-	}
-
-	/**
-	 * Remove a listener that has been registered for all the
-	 * events of the specified type and carrying the specified aspect name.
-	 * Neither the aspect name nor the listener can be <code>null</code>.
-	 */
-	protected synchronized <L extends EventListener> void removeListener(Class<L> listenerClass, String aspectName, L listener) {
-		ListenerList<L> aspectListenerList = this.getListenerList(listenerClass, aspectName);
-		if (aspectListenerList == null) {
-			throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$
-		}
-		aspectListenerList.remove(listener);  // leave the pair, even if the listener list is empty?
-	}
-
-	/**
-	 * Remove a listener that has been registered for all the events of the specified type.
-	 * The listener cannot be <code>null</code>.
-	 */
-	protected synchronized <L extends EventListener> void removeListener(Class<L> listenerClass, L listener) {
-		ListenerList<L> listenerList = this.getListenerList(listenerClass);
-		if (listenerList == null) {
-			throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$
-		}
-		listenerList.remove(listener);  // leave the pair, even if the listener list is empty?
-	}
-
-	/**
-	 * Return the listener list for the specified listener class and aspect name.
-	 * Return <code>null</code> if the listener list is not present.
-	 * The aspect name cannot be <code>null</code>.
-	 */
-	protected <L extends EventListener> ListenerList<L> getListenerList(Class<L> listenerClass, String aspectName) {
-		// put in a null check to simplify calling code
-		if (aspectName == null) {
-			throw new NullPointerException();
-		}
-		return this.getListenerList_(listenerClass, aspectName);
-	}
-
-	/**
-	 * Return the listener list for the specified listener class.
-	 * Return <code>null</code> if the listener list is not present.
-	 */
-	protected <L extends EventListener> ListenerList<L> getListenerList(Class<L> listenerClass) {
-		return this.getListenerList_(listenerClass, null);
-	}
-
-	/**
-	 * Return the listener list for the specified listener class and aspect name.
-	 * Return <code>null</code> if the listener list is not present.
-	 */
-	protected synchronized <L extends EventListener> ListenerList<L> getListenerList_(Class<L> listenerClass, String aspectName) {
-		for (AspectListenerListPair<?> pair : this.aspectListenerListPairs) {
-			if (pair.matches(listenerClass, aspectName)) {
-				@SuppressWarnings("unchecked") ListenerList<L> aspectListenerList = (ListenerList<L>) pair.listenerList;
-				return aspectListenerList;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return whether there are any listeners for the specified listener class
-	 * and aspect name.
-	 */
-	protected <L extends EventListener> boolean hasAnyListeners(Class<L> listenerClass, String aspectName) {
-		ListenerList<L> aspectListenerList = this.getListenerList(listenerClass, aspectName);
-		if ((aspectListenerList != null) && ! aspectListenerList.isEmpty()) {
-			return true;
-		}
-		return this.hasAnyChangeListeners();  // check for any general purpose listeners
-	}
-
-	/**
-	 * Return whether there are no listeners for the specified listener class
-	 * and aspect name.
-	 */
-	protected <L extends EventListener> boolean hasNoListeners(Class<L> listenerClass, String aspectName) {
-		return ! this.hasAnyListeners(listenerClass, aspectName);
-	}
-
-	/**
-	 * Return whether there are any listeners for the specified listener class.
-	 */
-	protected <L extends EventListener> boolean hasAnyListeners(Class<L> listenerClass) {
-		ListenerList<L> aspectListenerList = this.getListenerList(listenerClass);
-		if ((aspectListenerList != null) && ! aspectListenerList.isEmpty()) {
-			return true;
-		}
-		// check for any general purpose listeners (unless that's what we're already doing)
-		return (listenerClass == this.getChangeListenerClass()) ? false : this.hasAnyChangeListeners();
-	}
-
-	/**
-	 * Return whether there are no listeners for the specified listener class.
-	 */
-	protected <L extends EventListener> boolean hasNoListeners(Class<L> listenerClass) {
-		return ! this.hasAnyListeners(listenerClass);
-	}
-
-
-	// ********** general purpose change support **********
-
-	/**
-	 * Subclasses that add other types of listeners should override this method
-	 * to return the extension to ChangeListener that also extends whatever new
-	 * listener types are supported.
-	 */
-	@SuppressWarnings("unchecked")
-	protected <L extends ChangeListener> Class<L> getChangeListenerClass() {
-		// not sure why I need to cast here...
-		return (Class<L>) CHANGE_LISTENER_CLASS;
-	}
-
-	protected static final Class<ChangeListener> CHANGE_LISTENER_CLASS = ChangeListener.class;
-
-	/**
-	 * Add a general purpose listener that listens to all events,
-	 * regardless of the aspect name associated with that event.
-	 * The listener cannot be null.
-	 */
-	public void addChangeListener(ChangeListener listener) {
-		this.addListener(this.getChangeListenerClass(), listener);
-	}
-
-	/**
-	 * Remove a general purpose listener.
-	 * The listener cannot be null.
-	 */
-	public void removeChangeListener(ChangeListener listener) {
-		this.removeListener(this.getChangeListenerClass(), listener);
-	}
-
-	/**
-	 * Return whether there are any general purpose listeners that will be
-	 * notified of any changes.
-	 */
-	public boolean hasAnyChangeListeners() {
-		return this.hasAnyListeners(this.getChangeListenerClass());
-	}
-
-	private ListenerList<ChangeListener> getChangeListenerList() {
-		return this.getListenerList(CHANGE_LISTENER_CLASS);
-	}
-
-	private Iterable<ChangeListener> getChangeListeners() {
-		ListenerList<ChangeListener> listenerList = this.getChangeListenerList();
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasChangeListener(ChangeListener listener) {
-		return CollectionTools.contains(this.getChangeListeners(), listener);
-	}
-
-
-	// ********** state change support **********
-
-	protected static final Class<StateChangeListener> STATE_CHANGE_LISTENER_CLASS = StateChangeListener.class;
-
-	/**
-	 * Add a state change listener.
-	 */
-	public void addStateChangeListener(StateChangeListener listener) {
-		this.addListener(STATE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a state change listener.
-	 */
-	public void removeStateChangeListener(StateChangeListener listener) {
-		this.removeListener(STATE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any state change listeners.
-	 */
-	public boolean hasAnyStateChangeListeners() {
-		return this.hasAnyListeners(STATE_CHANGE_LISTENER_CLASS);
-	}
-
-	private ListenerList<StateChangeListener> getStateChangeListenerList() {
-		return this.getListenerList(STATE_CHANGE_LISTENER_CLASS);
-	}
-
-	private Iterable<StateChangeListener> getStateChangeListeners() {
-		ListenerList<StateChangeListener> listenerList = this.getStateChangeListenerList();
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasStateChangeListener(StateChangeListener listener) {
-		return CollectionTools.contains(this.getStateChangeListeners(), listener);
-	}
-
-	/**
-	 * Fire the specified state change event to any registered listeners.
-	 */
-	public void fireStateChanged(StateChangeEvent event) {
-		Iterable<StateChangeListener> listeners = this.getStateChangeListeners();
-		if (listeners != null) {
-			for (StateChangeListener listener : listeners) {
-				if (this.hasStateChangeListener(listener)) {  // verify listener is still listening
-					listener.stateChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.stateChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a generic state change event to any registered state change
-	 * listeners.
-	 */
-	public void fireStateChanged() {
-//		this.fireStateChanged(new StateChangeEvent(this.source));
-		StateChangeEvent event = null;
-		Iterable<StateChangeListener> listeners = this.getStateChangeListeners();
-		if (listeners != null) {
-			for (StateChangeListener listener : listeners) {
-				if (this.hasStateChangeListener(listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new StateChangeEvent(this.source);
-					}
-					listener.stateChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new StateChangeEvent(this.source);
-					}
-					changeListener.stateChanged(event);
-				}
-			}
-		}
-	}
-
-
-	// ********** property change support **********
-
-	protected static final Class<PropertyChangeListener> PROPERTY_CHANGE_LISTENER_CLASS = PropertyChangeListener.class;
-
-	/**
-	 * Add a property change listener for the specified property. The listener
-	 * will be notified only for changes to the specified property.
-	 */
-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.addListener(PROPERTY_CHANGE_LISTENER_CLASS, propertyName, listener);
-	}
-
-	/**
-	 * Remove a property change listener that was registered for a specific property.
-	 */
-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.removeListener(PROPERTY_CHANGE_LISTENER_CLASS, propertyName, listener);
-	}
-
-	/**
-	 * Return whether there are any property change listeners that will
-	 * be notified when the specified property has changed.
-	 */
-	public boolean hasAnyPropertyChangeListeners(String propertyName) {
-		return this.hasAnyListeners(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-	}
-
-	private ListenerList<PropertyChangeListener> getPropertyChangeListenerList(String propertyName) {
-		return this.getListenerList(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-	}
-
-	private Iterable<PropertyChangeListener> getPropertyChangeListeners(String propertyName) {
-		ListenerList<PropertyChangeListener> listenerList = this.getPropertyChangeListenerList(propertyName);
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		return CollectionTools.contains(this.getPropertyChangeListeners(propertyName), listener);
-	}
-
-	/**
-	 * Fire the specified property change event to any registered listeners.
-	 * No event is fired if the specified event's old and new values are the same;
-	 * this includes when both values are null. Use a state change event
-	 * for general purpose notification of changes.
-	 * Return whether the old and new values are different.
-	 */
-	public boolean firePropertyChanged(PropertyChangeEvent event) {
-		if (this.valuesAreDifferent(event.getOldValue(), event.getNewValue())) {
-			this.firePropertyChanged_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event's old and new values are different
-	 */
-	protected void firePropertyChanged_(PropertyChangeEvent event) {
-		String propertyName = event.getPropertyName();
-		Iterable<PropertyChangeListener> listeners = this.getPropertyChangeListeners(propertyName);
-		if (listeners != null) {
-			for (PropertyChangeListener listener : listeners) {
-				if (this.hasPropertyChangeListener(propertyName, listener)) {  // verify listener is still listening
-					listener.propertyChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.propertyChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound property update to any registered property change listeners.
-	 * No event is fired if the specified old and new values are the same;
-	 * this includes when both values are null. Use a state change event
-	 * for general purpose notification of changes.
-	 * Return whether the old and new values are different.
-	 */
-	public boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-//		return this.firePropertyChanged(new PropertyChangeEvent(this.source, propertyName, oldValue, newValue));
-		if (this.valuesAreDifferent(oldValue, newValue)) {
-			this.firePropertyChanged_(propertyName, oldValue, newValue);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified old and new values are different
-	 */
-	protected void firePropertyChanged_(String propertyName, Object oldValue, Object newValue) {
-		PropertyChangeEvent event = null;
-		Iterable<PropertyChangeListener> listeners = this.getPropertyChangeListeners(propertyName);
-		if (listeners != null) {
-			for (PropertyChangeListener listener : listeners) {
-				if (this.hasPropertyChangeListener(propertyName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, oldValue, newValue);
-					}
-					listener.propertyChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, oldValue, newValue);
-					}
-					changeListener.propertyChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report an <code>int</code> bound property update to any registered listeners.
-	 * No event is fired if the specified old and new values are equal.
-	 * Return whether the old and new values are different.
-	 * <p>
-	 * This is merely a convenience wrapper around the more general method
-	 * {@link #firePropertyChanged(String, Object, Object)}.
-	 */
-	public boolean firePropertyChanged(String propertyName, int oldValue, int newValue) {
-//		return this.firePropertyChanged(propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue));
-		if (oldValue != newValue) {
-			this.firePropertyChanged_(propertyName, oldValue, newValue);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified old and new values are different
-	 */
-	protected void firePropertyChanged_(String propertyName, int oldValue, int newValue) {
-		PropertyChangeEvent event = null;
-		Iterable<PropertyChangeListener> listeners = this.getPropertyChangeListeners(propertyName);
-		if (listeners != null) {
-			for (PropertyChangeListener listener : listeners) {
-				if (this.hasPropertyChangeListener(propertyName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue));
-					}
-					listener.propertyChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue));
-					}
-					changeListener.propertyChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a <code>boolean</code> bound property update to any registered listeners.
-	 * No event is fired if the specified old and new values are equal.
-	 * Return whether the old and new values are different.
-	 * <p>
-	 * This is merely a convenience wrapper around the more general method
-	 * {@link #firePropertyChanged(String, Object, Object)}.
-	 */
-	public boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-//		return this.firePropertyChanged(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-		if (oldValue != newValue) {
-			this.firePropertyChanged_(propertyName, oldValue, newValue);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified old and new values are different
-	 */
-	protected void firePropertyChanged_(String propertyName, boolean oldValue, boolean newValue) {
-		PropertyChangeEvent event = null;
-		Iterable<PropertyChangeListener> listeners = this.getPropertyChangeListeners(propertyName);
-		if (listeners != null) {
-			for (PropertyChangeListener listener : listeners) {
-				if (this.hasPropertyChangeListener(propertyName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-					}
-					listener.propertyChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new PropertyChangeEvent(this.source, propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-					}
-					changeListener.propertyChanged(event);
-				}
-			}
-		}
-	}
-
-
-	// ********** collection change support **********
-
-	protected static final Class<CollectionChangeListener> COLLECTION_CHANGE_LISTENER_CLASS = CollectionChangeListener.class;
-
-	/**
-	 * Add a collection change listener for the specified collection. The listener
-	 * will be notified only for changes to the specified collection.
-	 */
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.addListener(COLLECTION_CHANGE_LISTENER_CLASS, collectionName, listener);
-	}
-
-	/**
-	 * Remove a collection change listener that was registered for a specific collection.
-	 */
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.removeListener(COLLECTION_CHANGE_LISTENER_CLASS, collectionName, listener);
-	}
-
-	/**
-	 * Return whether there are any collection change listeners that will
-	 * be notified when the specified collection has changed.
-	 */
-	public boolean hasAnyCollectionChangeListeners(String collectionName) {
-		return this.hasAnyListeners(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-	}
-
-	private ListenerList<CollectionChangeListener> getCollectionChangeListenerList(String collectionName) {
-		return this.getListenerList(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-	}
-
-	private Iterable<CollectionChangeListener> getCollectionChangeListeners(String collectionName) {
-		ListenerList<CollectionChangeListener> listenerList = this.getCollectionChangeListenerList(collectionName);
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		return CollectionTools.contains(this.getCollectionChangeListeners(collectionName), listener);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 * Return whether the event has any items.
-	 */
-	public boolean fireItemsAdded(CollectionAddEvent event) {
-		if (event.getItemsSize() != 0) {
-			this.fireItemsAdded_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event contains items
-	 */
-	protected void fireItemsAdded_(CollectionAddEvent event) {
-		String collectionName = event.getCollectionName();
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 * Return whether there are any added items.
-	 */
-	public boolean fireItemsAdded(String collectionName, Collection<?> addedItems) {
-//		return this.fireItemsAdded(new CollectionAddEvent(this.source, collectionName, addedItems));
-		if ( ! addedItems.isEmpty()) {
-			this.fireItemsAdded_(collectionName, addedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: 'addedItems' is not empty
-	 */
-	protected void fireItemsAdded_(String collectionName, Collection<?> addedItems) {
-		CollectionAddEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionAddEvent(this.source, collectionName, addedItems);
-					}
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionAddEvent(this.source, collectionName, addedItems);
-					}
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemAdded(String collectionName, Object addedItem) {
-//		this.fireItemsAdded(collectionName, Collections.singleton(addedItem));
-
-		CollectionAddEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionAddEvent(this.source, collectionName, addedItem);
-					}
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionAddEvent(this.source, collectionName, addedItem);
-					}
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 * Return whether the event has any items.
-	 */
-	public boolean fireItemsRemoved(CollectionRemoveEvent event) {
-		if (event.getItemsSize() != 0) {
-			this.fireItemsRemoved_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event contains items
-	 */
-	protected void fireItemsRemoved_(CollectionRemoveEvent event) {
-		String collectionName = event.getCollectionName();
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 * Return whether there are any removed items.
-	 */
-	public boolean fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-//		return this.fireItemsRemoved(new CollectionRemoveEvent(this.source, collectionName, removedItems));
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved_(collectionName, removedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: 'removedItems' is not empty
-	 */
-	protected void fireItemsRemoved_(String collectionName, Collection<?> removedItems) {
-		CollectionRemoveEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionRemoveEvent(this.source, collectionName, removedItems);
-					}
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionRemoveEvent(this.source, collectionName, removedItems);
-					}
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemRemoved(String collectionName, Object removedItem) {
-//		this.fireItemsRemoved(collectionName, Collections.singleton(removedItem));
-
-		CollectionRemoveEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionRemoveEvent(this.source, collectionName, removedItem);
-					}
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionRemoveEvent(this.source, collectionName, removedItem);
-					}
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionCleared(CollectionClearEvent event) {
-		String collectionName = event.getCollectionName();
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					listener.collectionCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.collectionCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionCleared(String collectionName) {
-//		this.fireCollectionCleared(new CollectionClearEvent(this.source, collectionName));
-
-		CollectionClearEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionClearEvent(this.source, collectionName);
-					}
-					listener.collectionCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionClearEvent(this.source, collectionName);
-					}
-					changeListener.collectionCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionChanged(CollectionChangeEvent event) {
-		String collectionName = event.getCollectionName();
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					listener.collectionChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.collectionChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionChanged(String collectionName, Collection<?> collection) {
-//		this.fireCollectionChanged(new CollectionChangeEvent(this.source, collectionName, collection));
-
-		CollectionChangeEvent event = null;
-		Iterable<CollectionChangeListener> listeners = this.getCollectionChangeListeners(collectionName);
-		if (listeners != null) {
-			for (CollectionChangeListener listener : listeners) {
-				if (this.hasCollectionChangeListener(collectionName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionChangeEvent(this.source, collectionName, collection);
-					}
-					listener.collectionChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new CollectionChangeEvent(this.source, collectionName, collection);
-					}
-					changeListener.collectionChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Add the specified item to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#add(Object)
-	 */
-	public <E> boolean addItemToCollection(E item, Collection<E> collection, String collectionName) {
-		if (collection.add(item)) {
-			this.fireItemAdded(collectionName, item);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see Collection#addAll(Collection)
-	 */
-	public <E> boolean addItemsToCollection(E[] items, Collection<E> collection, String collectionName) {
-		return (items.length != 0)
-				&& this.addItemsToCollection_(new ArrayIterator<E>(items), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see Collection#addAll(Collection)
-	 */
-	public <E> boolean addItemsToCollection(Collection<? extends E> items, Collection<E> collection, String collectionName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see Collection#addAll(Collection)
-	 */
-	public <E> boolean addItemsToCollection(Iterable<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.addItemsToCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see Collection#addAll(Collection)
-	 */
-	public <E> boolean addItemsToCollection(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		return items.hasNext()
-				&& this.addItemsToCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToCollection_(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		Collection<E> addedItems = null;
-		while (items.hasNext()) {
-			E item = items.next();
-			if (collection.add(item)) {
-				if (addedItems == null) {
-					addedItems = new ArrayList<E>();
-				}
-				addedItems.add(item);
-			}
-		}
-		if (addedItems != null) {
-			this.fireItemsAdded_(collectionName, addedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Remove the specified item from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#remove(Object)
-	 */
-	public boolean removeItemFromCollection(Object item, Collection<?> collection, String collectionName) {
-		if (collection.remove(item)) {
-			this.fireItemRemoved(collectionName, item);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#removeAll(Collection)
-	 */
-	public boolean removeItemsFromCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return (items.length != 0)
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(new ArrayIterator<Object>(items), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#removeAll(Collection)
-	 */
-	public boolean removeItemsFromCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return ( ! items.isEmpty())
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#removeAll(Collection)
-	 */
-	public boolean removeItemsFromCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.removeItemsFromCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#removeAll(Collection)
-	 */
-	public boolean removeItemsFromCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return items.hasNext()
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean removeItemsFromCollection_(Iterator<?> items, Collection<?> collection, String collectionName) {
-		HashBag<?> removedItems = CollectionTools.collection(items);
-		removedItems.retainAll(collection);
-		boolean changed = collection.removeAll(removedItems);
-
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved_(collectionName, removedItems);
-		}
-		return changed;
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#retainAll(Collection)
-	 */
-	public boolean retainItemsInCollection(Object[] items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if (items.length == 0) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(new ArrayIterator<Object>(items), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#retainAll(Collection)
-	 */
-	public boolean retainItemsInCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if (items.isEmpty()) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#retainAll(Collection)
-	 */
-	public boolean retainItemsInCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.retainItemsInCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#retainAll(Collection)
-	 */
-	public boolean retainItemsInCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if ( ! items.hasNext()) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean retainItemsInCollection_(Iterator<?> items, Collection<?> collection, String collectionName) {
-		HashBag<?> retainedItems = CollectionTools.collection(items);
-		HashBag<?> removedItems = CollectionTools.collection(collection);
-		removedItems.removeAll(retainedItems);
-		boolean changed = collection.retainAll(retainedItems);
-
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved_(collectionName, removedItems);
-		}
-		return changed;
-	}
-
-	/**
-	 * Clear the entire collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see Collection#clear()
-	 */
-	public boolean clearCollection(Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		return this.clearCollection_(collection, collectionName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected boolean clearCollection_(Collection<?> collection, String collectionName) {
-		collection.clear();
-		this.fireCollectionCleared(collectionName);
-		return true;
-	}
-
-	/**
-	 * Synchronize the collection with the specified new collection,
-	 * making a minimum number of removes and adds.
-	 * Return whether the collection changed.
-	 */
-	public <E> boolean synchronizeCollection(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		if (newCollection.isEmpty()) {
-			return this.clearCollection(collection, collectionName);
-		}
-
-		if (collection.isEmpty()) {
-			return this.addItemsToCollection_(newCollection.iterator(), collection, collectionName);
-		}
-
-		return this.synchronizeCollection_(newCollection, collection, collectionName);
-	}
-
-	/**
-	 * Synchronize the collection with the specified new collection,
-	 * making a minimum number of removes and adds.
-	 * Return whether the collection changed.
-	 */
-	public <E> boolean synchronizeCollection(Iterable<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.synchronizeCollection(newCollection.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Synchronize the collection with the specified new collection,
-	 * making a minimum number of removes and adds.
-	 * Return whether the collection changed.
-	 */
-	public <E> boolean synchronizeCollection(Iterator<E> newCollection, Collection<E> collection, String collectionName) {
-		if ( ! newCollection.hasNext()) {
-			return this.clearCollection(collection, collectionName);
-		}
-
-		if (collection.isEmpty()) {
-			return this.addItemsToCollection_(newCollection, collection, collectionName);
-		}
-
-		return this.synchronizeCollection_(CollectionTools.collection(newCollection), collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected <E> boolean synchronizeCollection_(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		boolean changed = false;
-		Collection<E> removeItems = new HashBag<E>(collection);
-		removeItems.removeAll(newCollection);
-		changed |= this.removeItemsFromCollection(removeItems, collection, collectionName);
-
-		Collection<E> addItems = new HashBag<E>(newCollection);
-		addItems.removeAll(collection);
-		changed |= this.addItemsToCollection(addItems, collection, collectionName);
-
-		return changed;
-	}
-
-
-	// ********** list change support **********
-
-	protected static final Class<ListChangeListener> LIST_CHANGE_LISTENER_CLASS = ListChangeListener.class;
-
-	/**
-	 * Add a list change listener for the specified list. The listener
-	 * will be notified only for changes to the specified list.
-	 */
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		this.addListener(LIST_CHANGE_LISTENER_CLASS, listName, listener);
-	}
-
-	/**
-	 * Remove a list change listener that was registered for a specific list.
-	 */
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		this.removeListener(LIST_CHANGE_LISTENER_CLASS, listName, listener);
-	}
-
-	/**
-	 * Return whether there are any list change listeners that will
-	 * be notified when the specified list has changed.
-	 */
-	public boolean hasAnyListChangeListeners(String listName) {
-		return this.hasAnyListeners(LIST_CHANGE_LISTENER_CLASS, listName);
-	}
-
-	private ListenerList<ListChangeListener> getListChangeListenerList(String listName) {
-		return this.getListenerList(LIST_CHANGE_LISTENER_CLASS, listName);
-	}
-
-	private Iterable<ListChangeListener> getListChangeListeners(String listName) {
-		ListenerList<ListChangeListener> listenerList = this.getListChangeListenerList(listName);
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasListChangeListener(String listName, ListChangeListener listener) {
-		return CollectionTools.contains(this.getListChangeListeners(listName), listener);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any added items.
-	 */
-	public boolean fireItemsAdded(ListAddEvent event) {
-		if (event.getItemsSize() != 0) {
-			this.fireItemsAdded_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event contains items
-	 */
-	protected void fireItemsAdded_(ListAddEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any added items.
-	 */
-	public boolean fireItemsAdded(String listName, int index, List<?> addedItems) {
-//		return this.fireItemsAdded(new ListAddEvent(this.source, listName, index, addedItems));
-		if ( ! addedItems.isEmpty()) {
-			this.fireItemsAdded_(listName, index, addedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: 'addedItems' is not empty
-	 */
-	protected void fireItemsAdded_(String listName, int index, List<?> addedItems) {
-		ListAddEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListAddEvent(this.source, listName, index, addedItems);
-					}
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListAddEvent(this.source, listName, index, addedItems);
-					}
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemAdded(String listName, int index, Object addedItem) {
-//		this.fireItemsAdded(listName, index, Collections.singletonList(addedItem));
-
-		ListAddEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListAddEvent(this.source, listName, index, addedItem);
-					}
-					listener.itemsAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListAddEvent(this.source, listName, index, addedItem);
-					}
-					changeListener.itemsAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any removed items.
-	 */
-	public boolean fireItemsRemoved(ListRemoveEvent event) {
-		if (event.getItemsSize() != 0) {
-			this.fireItemsRemoved_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event contains items
-	 */
-	protected void fireItemsRemoved_(ListRemoveEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any removed items.
-	 */
-	public boolean fireItemsRemoved(String listName, int index, List<?> removedItems) {
-//		return this.fireItemsRemoved(new ListRemoveEvent(this.source, listName, index, removedItems));
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved_(listName, index, removedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: 'removedItems' is not empty
-	 */
-	protected void fireItemsRemoved_(String listName, int index, List<?> removedItems) {
-		ListRemoveEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListRemoveEvent(this.source, listName, index, removedItems);
-					}
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListRemoveEvent(this.source, listName, index, removedItems);
-					}
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemRemoved(String listName, int index, Object removedItem) {
-//		this.fireItemsRemoved(listName, index, Collections.singletonList(removedItem));
-
-		ListRemoveEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListRemoveEvent(this.source, listName, index, removedItem);
-					}
-					listener.itemsRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListRemoveEvent(this.source, listName, index, removedItem);
-					}
-					changeListener.itemsRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any replaced items.
-	 */
-	public boolean fireItemsReplaced(ListReplaceEvent event) {
-		if ((event.getItemsSize() != 0) && this.elementsAreDifferent(event.getNewItems(), event.getOldItems())) {
-			this.fireItemsReplaced_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event contains new items
-	 */
-	protected void fireItemsReplaced_(ListReplaceEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.itemsReplaced(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsReplaced(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any replaced items.
-	 */
-	public boolean fireItemsReplaced(String listName, int index, List<?> newItems, List<?> oldItems) {
-//		return this.fireItemsReplaced(new ListReplaceEvent(this.source, listName, index, newItems, oldItems));
-		if (( ! newItems.isEmpty()) && this.elementsAreDifferent(newItems, oldItems)) {
-			this.fireItemsReplaced_(listName, index, newItems, oldItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: 'newItems' is not empty and unequal to 'oldItems'
-	 */
-	protected void fireItemsReplaced_(String listName, int index, List<?> newItems, List<?> oldItems) {
-		ListReplaceEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListReplaceEvent(this.source, listName, index, newItems, oldItems);
-					}
-					listener.itemsReplaced(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListReplaceEvent(this.source, listName, index, newItems, oldItems);
-					}
-					changeListener.itemsReplaced(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether the item changed.
-	 */
-	public boolean fireItemReplaced(String listName, int index, Object newItem, Object oldItem) {
-//		return this.fireItemsReplaced(listName, index, Collections.singletonList(newItem), Collections.singletonList(oldItem));
-		if (this.valuesAreDifferent(newItem, oldItem)) {
-			this.fireItemReplaced_(listName, index, newItem, oldItem);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified old and new items are different
-	 */
-	protected void fireItemReplaced_(String listName, int index, Object newItem, Object oldItem) {
-		ListReplaceEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListReplaceEvent(this.source, listName, index, newItem, oldItem);
-					}
-					listener.itemsReplaced(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListReplaceEvent(this.source, listName, index, newItem, oldItem);
-					}
-					changeListener.itemsReplaced(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any moved items.
-	 */
-	// it's unlikely but possible the list is unchanged by the move...
-	// e.g. any moves within ["foo", "foo", "foo"]
-	public boolean fireItemsMoved(ListMoveEvent event) {
-		if (event.getTargetIndex() != event.getSourceIndex()) {
-			this.fireItemsMoved_(event);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified event indicates a move
-	 */
-	protected void fireItemsMoved_(ListMoveEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.itemsMoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.itemsMoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any moved items.
-	 */
-	// it's unlikely but possible the list is unchanged by the move...
-	// e.g. any moves within ["foo", "foo", "foo"]
-	public boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-//		return this.fireItemsMoved(new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length));
-		if (targetIndex != sourceIndex) {
-			this.fireItemsMoved_(listName, targetIndex, sourceIndex, length);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified indices indicate a move
-	 */
-	protected void fireItemsMoved_(String listName, int targetIndex, int sourceIndex, int length) {
-		ListMoveEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length);
-					}
-					listener.itemsMoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length);
-					}
-					changeListener.itemsMoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 * Return whether there are any moved items.
-	 */
-	// it's unlikely but possible the list is unchanged by the move...
-	// e.g. any moves within ["foo", "foo", "foo"]
-	public boolean fireItemMoved(String listName, int targetIndex, int sourceIndex) {
-		if (targetIndex != sourceIndex) {
-			this.fireItemMoved_(listName, targetIndex, sourceIndex);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * pre-condition: the specified indices indicate a move
-	 */
-	protected void fireItemMoved_(String listName, int targetIndex, int sourceIndex) {
-		this.fireItemsMoved_(listName, targetIndex, sourceIndex, 1);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListCleared(ListClearEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.listCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.listCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListCleared(String listName) {
-//		this.fireListCleared(new ListClearEvent(this.source, listName));
-
-		ListClearEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListClearEvent(this.source, listName);
-					}
-					listener.listCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListClearEvent(this.source, listName);
-					}
-					changeListener.listCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListChanged(ListChangeEvent event) {
-		String listName = event.getListName();
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					listener.listChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.listChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListChanged(String listName, List<?> list) {
-//		this.fireListChanged(new ListChangeEvent(this.source, listName));
-
-		ListChangeEvent event = null;
-		Iterable<ListChangeListener> listeners = this.getListChangeListeners(listName);
-		if (listeners != null) {
-			for (ListChangeListener listener : listeners) {
-				if (this.hasListChangeListener(listName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListChangeEvent(this.source, listName, list);
-					}
-					listener.listChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new ListChangeEvent(this.source, listName, list);
-					}
-					changeListener.listChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Add the specified item to the specified bound list at the specified index
-	 * and fire the appropriate event.
-	 * @see List#add(int, Object)
-	 */
-	public <E> void addItemToList(int index, E item, List<E> list, String listName) {
-		list.add(index, item);
-		this.fireItemAdded(listName, index, item);
-	}
-
-	/**
-	 * Add the specified item to the end of the specified bound list
-	 * and fire the appropriate event.
-	 * Return whether the list changed (i.e. 'true').
-	 * @see List#add(Object)
-	 */
-	public <E> boolean addItemToList(E item, List<E> list, String listName) {
-		if (list.add(item)) {
-			this.fireItemAdded(listName, list.size() - 1, item);
-			return true;
-		}
-		return false;  // List#add(Object) should always return 'true', so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the specified bound list at the specified index
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(int, Collection)
-	 */
-	public <E> boolean addItemsToList(int index, E[] items, List<E> list, String listName) {
-		return (items.length != 0)
-				&& this.addItemsToList_(index, Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound list at the specified index
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(int, Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Collection<? extends E> items, List<E> list, String listName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToList_(index, this.convertToList(items), list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(int index, List<? extends E> items, List<E> list, String listName) {
-		if (list.addAll(index, items)) {
-			this.fireItemsAdded(listName, index, items);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(int, Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Iterable<? extends E> items, List<E> list, String listName) {
-		return this.addItemsToList(index, items.iterator(), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(int, Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Iterator<? extends E> items, List<E> list, String listName) {
-		if ( ! items.hasNext()) {
-			return false;
-		}
-
-		ArrayList<E> addedItems = CollectionTools.list(items);
-		if (list.addAll(index, addedItems)) {
-			this.fireItemsAdded(listName, index, addedItems);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(Collection)
-	 */
-	public <E> boolean addItemsToList(E[] items, List<E> list, String listName) {
-		return (items.length != 0)
-				&& this.addItemsToList_(Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the end of the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(int, Collection)
-	 */
-	public <E> boolean addItemsToList(Collection<? extends E> items, List<E> list, String listName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToList_(this.convertToList(items), list, listName);
-	}
-
-	protected <E> List<? extends E> convertToList(Collection<? extends E> collection) {
-		return (collection instanceof List<?>) ? (List<? extends E>) collection : new ArrayList<E>(collection);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(List<? extends E> items, List<E> list, String listName) {
-		int index = list.size();
-		if (list.addAll(items)) {
-			this.fireItemsAdded(listName, index, items);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(Collection)
-	 */
-	public <E> boolean addItemsToList(Iterable<? extends E> items, List<E> list, String listName) {
-		return this.addItemsToList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#addAll(Collection)
-	 */
-	public <E> boolean addItemsToList(Iterator<? extends E> items, List<E> list, String listName) {
-		if ( ! items.hasNext()) {
-			return false;
-		}
-		return this.addItemsToList_(items, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(Iterator<? extends E> items, List<E> list, String listName) {
-		ArrayList<E> addedItems = CollectionTools.list(items);
-		int index = list.size();
-		if (list.addAll(addedItems)) {
-			this.fireItemsAdded(listName, index, addedItems);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Remove the specified item from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the removed item.
-	 * @see List#remove(int)
-	 */
-	public <E> E removeItemFromList(int index, List<E> list, String listName) {
-		E item = list.remove(index);
-		this.fireItemRemoved(listName, index, item);
-		return item;
-	}
-
-	/**
-	 * Remove the specified item from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#remove(Object)
-	 */
-	public boolean removeItemFromList(Object item, List<?> list, String listName) {
-		int index = list.indexOf(item);
-		if (index == -1) {
-			return false;
-		}
-		list.remove(index);
-		this.fireItemRemoved(listName, index, item);
-		return true;
-	}
-
-	/**
-	 * Remove the items from the specified index to the end of the list
-	 * from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the removed items.
-	 * @see List#remove(int)
-	 */
-	public <E> List<E> removeItemsFromList(int index, List<E> list, String listName) {
-		return this.removeRangeFromList(index, list.size(), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the removed items.
-	 * @see List#remove(int)
-	 */
-	public <E> List<E> removeItemsFromList(int index, int length, List<E> list, String listName) {
-		return this.removeRangeFromList(index, index + length, list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event if necessary. The begin index
-	 * is inclusive, while the end index is exclusive.
-	 * Return the removed items.
-	 * @see List#remove(int)
-	 * @see List#subList(int, int)
-	 */
-	public <E> List<E> removeRangeFromList(int beginIndex, int endIndex, List<E> list, String listName) {
-		if (beginIndex == endIndex) {
-			return Collections.emptyList();
-		}
-		return this.removeRangeFromList_(beginIndex, endIndex, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> List<E> removeRangeFromList_(int beginIndex, int endIndex, List<E> list, String listName) {
-		List<E> subList = list.subList(beginIndex, endIndex);
-		List<E> removedItems = new ArrayList<E>(subList);
-		subList.clear();
-		this.fireItemsRemoved(listName, beginIndex, removedItems);
-		return removedItems;
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#removeAll(Collection)
-	 */
-	public boolean removeItemsFromList(Object[] items, List<?> list, String listName) {
-		return (items.length != 0)
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(new ArrayIterator<Object>(items), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#removeAll(Collection)
-	 */
-	public boolean removeItemsFromList(Collection<?> items, List<?> list, String listName) {
-		return ( ! items.isEmpty())
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#removeAll(Collection)
-	 */
-	public boolean removeItemsFromList(Iterable<?> items, List<?> list, String listName) {
-		return this.removeItemsFromList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#removeAll(Collection)
-	 */
-	public boolean removeItemsFromList(Iterator<?> items, List<?> list, String listName) {
-		return (items.hasNext())
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(items, list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean removeItemsFromList_(Iterator<?> items, List<?> list, String listName) {
-		boolean changed = false;
-		while (items.hasNext()) {
-			changed |= this.removeItemFromList(items.next(), list, listName);
-		}
-		return changed;
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#retainAll(Collection)
-	 */
-	public boolean retainItemsInList(Object[] items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if (items.length == 0) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(new ArrayIterator<Object>(items), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#retainAll(Collection)
-	 */
-	public boolean retainItemsInList(Collection<?> items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if (items.isEmpty()) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#retainAll(Collection)
-	 */
-	public boolean retainItemsInList(Iterable<?> items, List<?> list, String listName) {
-		return this.retainItemsInList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see List#retainAll(Collection)
-	 */
-	public boolean retainItemsInList(Iterator<?> items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if ( ! items.hasNext()) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(items, list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean retainItemsInList_(Iterator<?> items, List<?> list, String listName) {
-		HashBag<?> retainedItems = CollectionTools.collection(items);
-		HashBag<?> removedItems = CollectionTools.collection(list);
-		removedItems.removeAll(retainedItems);
-		return this.removeItemsFromList(removedItems, list, listName);
-	}
-
-	/**
-	 * Set the specified item in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced item.
-	 * @see List#set(int, Object)
-	 */
-	public <E> E setItemInList(int index, E item, List<E> list, String listName) {
-		E oldItem = list.set(index, item);
-		this.fireItemReplaced(listName, index, item, oldItem);
-		return oldItem;
-	}
-
-	/**
-	 * Replace the first occurrence of the specified item
-	 * in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the index of the replaced item.
-	 * Return -1 if the item was not found in the list.
-	 * @see List#set(int, Object)
-	 */
-	public <E> int replaceItemInList(E oldItem, E newItem, List<E> list, String listName) {
-		if (list.isEmpty()) {
-			return -1;
-		}
-
-		int index = list.indexOf(oldItem);
-		if ((index != -1) && this.valuesAreDifferent(oldItem, newItem)) {
-			list.set(index, newItem);
-			this.fireItemReplaced_(listName, index, newItem, oldItem);
-		}
-		return index;
-	}
-
-	/**
-	 * Set the specified items in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced items.
-	 * @see List#set(int, Object)
-	 */
-	public <E> List<E> setItemsInList(int index, E[] items, List<E> list, String listName) {
-		if (items.length == 0) {
-			return Collections.emptyList();
-		}
-		return this.setItemsInList_(index, Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Set the specified items in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced items.
-	 * @see List#set(int, Object)
-	 */
-	public <E> List<E> setItemsInList(int index, List<? extends E> items, List<E> list, String listName) {
-		if (items.isEmpty()) {
-			return Collections.emptyList();
-		}
-		return this.setItemsInList_(index, items, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> List<E> setItemsInList_(int index, List<? extends E> items, List<E> list, String listName) {
-		List<E> subList = list.subList(index, index + items.size());
-		List<E> oldItems = new ArrayList<E>(subList);
-		for (int i = 0; i < items.size(); i++) {
-			E newItem = items.get(i);
-			E oldItem = subList.set(i, newItem);
-			this.fireItemReplaced(listName, index + i, newItem, oldItem);
-		}
-		return oldItems;
-	}
-
-	/**
-	 * Move items in the specified list from the specified source index to the
-	 * specified target index for the specified length.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean moveItemsInList(int targetIndex, int sourceIndex, int length, List<E> list, String listName) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return false;
-		}
-		// it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...)
-		CollectionTools.move(list, targetIndex, sourceIndex, length);
-		this.fireItemsMoved(listName, targetIndex, sourceIndex, length);
-		return true;
-	}
-
-	/**
-	 * Move the specified item in the specified list to the
-	 * specified target index.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean moveItemInList(int targetIndex, E item, List<E> list, String listName) {
-		return this.moveItemInList(targetIndex, list.indexOf(item), list, listName);
-	}
-
-	/**
-	 * Move an item in the specified list from the specified source index to the
-	 * specified target index.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean moveItemInList(int targetIndex, int sourceIndex, List<E> list, String listName) {
-		if (targetIndex == sourceIndex) {
-			return false;
-		}
-		if (this.valuesAreEqual(list.get(targetIndex), list.get(sourceIndex))) {
-			return false;
-		}
-		CollectionTools.move(list, targetIndex, sourceIndex);
-		this.fireItemMoved_(listName, targetIndex, sourceIndex);
-		return true;
-	}
-
-	/**
-	 * Clear the entire list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see List#clear()
-	 */
-	public boolean clearList(List<?> list, String listName) {
-		return ( ! list.isEmpty()) && this.clearList_(list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected boolean clearList_(List<?> list, String listName) {
-		list.clear();
-		this.fireListCleared(listName);
-		return true;
-	}
-
-	/**
-	 * Synchronize the list with the specified new list,
-	 * making a minimum number of sets, removes, and/or adds.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean synchronizeList(List<E> newList, List<E> list, String listName) {
-		if (newList.isEmpty()) {
-			return this.clearList(list, listName);
-		}
-		if (list.isEmpty()) {
-			return this.addItemsToList_(newList, list, listName);
-		}
-		return this.synchronizeList_(newList, list, listName);
-	}
-
-	/**
-	 * Synchronize the list with the specified new list,
-	 * making a minimum number of sets, removes, and/or adds.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean synchronizeList(Iterable<? extends E> newList, List<E> list, String listName) {
-		return this.synchronizeList(newList.iterator(), list, listName);
-	}
-
-	/**
-	 * Synchronize the list with the specified new list,
-	 * making a minimum number of sets, removes, and/or adds.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean synchronizeList(Iterator<? extends E> newList, List<E> list, String listName) {
-		if ( ! newList.hasNext()) {
-			return this.clearList(list, listName);
-		}
-		if (list.isEmpty()) {
-			return this.addItemsToList_(newList, list, listName);
-		}
-		return this.synchronizeList_(CollectionTools.list(newList), list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected <E> boolean synchronizeList_(List<? extends E> newList, List<E> oldList, String listName) {
-		int newSize = newList.size();
-		int oldSize = oldList.size();
-
-		boolean changed = false;
-		// TODO check for RandomAccess
-		int min = Math.min(newSize, oldSize);
-		for (int i = 0; i < min; i++) {
-			E newItem = newList.get(i);
-			E oldItem = oldList.set(i, newItem);
-			if (this.valuesAreDifferent(newItem, oldItem)) {
-				changed = true;
-				this.fireItemReplaced_(listName, i, newItem, oldItem);
-			}
-		}
-
-		if (newSize == oldSize) {
-			return changed;
-		}
-
-		if (newSize < oldSize) {
-			this.removeRangeFromList_(newSize, oldSize, oldList, listName);
-			return true;
-		}
-
-		// newSize > oldSize
-		this.addItemsToList_(newList.subList(oldSize, newSize), oldList, listName);
-		return true;
-	}
-
-
-	// ********** tree change support **********
-
-	protected static final Class<TreeChangeListener> TREE_CHANGE_LISTENER_CLASS = TreeChangeListener.class;
-
-	/**
-	 * Add a tree change listener for the specified tree. The listener
-	 * will be notified only for changes to the specified tree.
-	 */
-	public void addTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.addListener(TREE_CHANGE_LISTENER_CLASS, treeName, listener);
-	}
-
-	/**
-	 * Remove a tree change listener that was registered for a specific tree.
-	 */
-	public void removeTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.removeListener(TREE_CHANGE_LISTENER_CLASS, treeName, listener);
-	}
-
-	/**
-	 * Return whether there are any tree change listeners that will
-	 * be notified when the specified tree has changed.
-	 */
-	public boolean hasAnyTreeChangeListeners(String treeName) {
-		return this.hasAnyListeners(TREE_CHANGE_LISTENER_CLASS, treeName);
-	}
-
-	private ListenerList<TreeChangeListener> getTreeChangeListenerList(String treeName) {
-		return this.getListenerList(TREE_CHANGE_LISTENER_CLASS, treeName);
-	}
-
-	private Iterable<TreeChangeListener> getTreeChangeListeners(String treeName) {
-		ListenerList<TreeChangeListener> listenerList = this.getTreeChangeListenerList(treeName);
-		return (listenerList == null) ? null : listenerList.getListeners();
-	}
-
-	private boolean hasTreeChangeListener(String treeName, TreeChangeListener listener) {
-		return CollectionTools.contains(this.getTreeChangeListeners(treeName), listener);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeAdded(TreeAddEvent event) {
-		String treeName = event.getTreeName();
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					listener.nodeAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.nodeAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeAdded(String treeName, List<?> path) {
-//		this.fireNodeAdded(new TreeAddEvent(this.source, treeName, path));
-		TreeAddEvent event = null;
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeAddEvent(this.source, treeName, path);
-					}
-					listener.nodeAdded(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeAddEvent(this.source, treeName, path);
-					}
-					changeListener.nodeAdded(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeRemoved(TreeRemoveEvent event) {
-		String treeName = event.getTreeName();
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					listener.nodeRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.nodeRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeRemoved(String treeName, List<?> path) {
-//		this.fireNodeRemoved(new TreeRemoveEvent(this.source, treeName, path));
-
-		TreeRemoveEvent event = null;
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeRemoveEvent(this.source, treeName, path);
-					}
-					listener.nodeRemoved(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeRemoveEvent(this.source, treeName, path);
-					}
-					changeListener.nodeRemoved(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeCleared(TreeClearEvent event) {
-		String treeName = event.getTreeName();
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					listener.treeCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.treeCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeCleared(String treeName) {
-//		this.fireTreeCleared(new TreeClearEvent(this.source, treeName));
-
-		TreeClearEvent event = null;
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeClearEvent(this.source, treeName);
-					}
-					listener.treeCleared(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeClearEvent(this.source, treeName);
-					}
-					changeListener.treeCleared(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeChanged(TreeChangeEvent event) {
-		String treeName = event.getTreeName();
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					listener.treeChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					changeListener.treeChanged(event);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeChanged(String treeName, Collection<?> nodes) {
-//		this.fireTreeChanged(new TreeChangeEvent(this.source, treeName, nodes));
-
-		TreeChangeEvent event = null;
-		Iterable<TreeChangeListener> listeners = this.getTreeChangeListeners(treeName);
-		if (listeners != null) {
-			for (TreeChangeListener listener : listeners) {
-				if (this.hasTreeChangeListener(treeName, listener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeChangeEvent(this.source, treeName, nodes);
-					}
-					listener.treeChanged(event);
-				}
-			}
-		}
-
-		Iterable<ChangeListener> changeListeners = this.getChangeListeners();
-		if (changeListeners != null) {
-			for (ChangeListener changeListener : changeListeners) {
-				if (this.hasChangeListener(changeListener)) {  // verify listener is still listening
-					if (event == null) {
-						event = new TreeChangeEvent(this.source, treeName, nodes);
-					}
-					changeListener.treeChanged(event);
-				}
-			}
-		}
-	}
-
-
-	// ********** misc **********
-
-	/**
-	 * Convenience method for checking whether an attribute value has changed.
-	 * @see Tools#valuesAreEqual(Object, Object)
-	 */
-	public boolean valuesAreEqual(Object value1, Object value2) {
-		return Tools.valuesAreEqual(value1, value2);
-	}
-
-	/**
-	 * Convenience method for checking whether an attribute value has changed.
-	 * @see Tools#valuesAreDifferent(Object, Object)
-	 */
-	public boolean valuesAreDifferent(Object value1, Object value2) {
-		return Tools.valuesAreDifferent(value1, value2);
-	}
-
-	/**
-	 * @see CollectionTools#elementsAreEqual(Iterable, Iterable)
-	 */
-	public boolean elementsAreEqual(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return CollectionTools.elementsAreEqual(iterable1, iterable2);
-	}
-
-	/**
-	 * @see CollectionTools#elementsAreDifferent(Iterable, Iterable)
-	 */
-	public boolean elementsAreDifferent(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return CollectionTools.elementsAreDifferent(iterable1, iterable2);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.source);
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * Pair a possibly <code>null</code> aspect name with its associated
-	 * listeners.
-	 */
-	static abstract class AspectListenerListPair<L extends EventListener>
-		implements Serializable
-	{
-		final ListenerList<L> listenerList;
-
-		private static final long serialVersionUID = 1L;
-
-		AspectListenerListPair(Class<L> listenerClass, L listener) {
-			super();
-			this.listenerList = new ListenerList<L>(listenerClass, listener);
-		}
-
-		boolean matches(Class<? extends EventListener> listenerClass, @SuppressWarnings("unused") String aspectName) {
-			return this.listenerList.getListenerType() == listenerClass;
-		}
-
-		boolean matches(Class<? extends EventListener> listenerClass) {
-			return this.matches(listenerClass, null);
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.getAspectName());
-		}
-
-		abstract String getAspectName();
-	}
-
-	/**
-	 * Pair a non-<code>null</code> aspect name with its associated listeners.
-	 */
-	static class SimpleAspectListenerListPair<L extends EventListener>
-		extends AspectListenerListPair<L>
-	{
-		final String aspectName;
-
-		private static final long serialVersionUID = 1L;
-
-		SimpleAspectListenerListPair(Class<L> listenerClass, String aspectName, L listener) {
-			super(listenerClass, listener);
-			if (aspectName == null) {
-				throw new NullPointerException();
-			}
-			this.aspectName = aspectName;
-		}
-
-		@Override
-		boolean matches(Class<? extends EventListener> listenerClass, @SuppressWarnings("hiding") String aspectName) {
-			return this.aspectName.equals(aspectName)
-					&& super.matches(listenerClass, aspectName);
-		}
-
-		@Override
-		String getAspectName() {
-			return this.aspectName;
-		}
-	}
-
-	/**
-	 * Pair a <code>null</code> aspect name with its associated listeners.
-	 */
-	static class NullAspectListenerListPair<L extends EventListener>
-		extends AspectListenerListPair<L>
-	{
-		private static final long serialVersionUID = 1L;
-
-		NullAspectListenerListPair(Class<L> listenerClass, L listener) {
-			super(listenerClass, listener);
-		}
-
-		@Override
-		boolean matches(Class<? extends EventListener> listenerClass, String aspectName) {
-			return (aspectName == null)
-					&& super.matches(listenerClass, null);
-		}
-
-		@Override
-		String getAspectName() {
-			return null;
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java
deleted file mode 100644
index ef13a67..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model;
-
-import java.util.Collection;
-import java.util.EventListener;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * This change support class changes the behavior of the standard
- * change support in several ways:<ul>
- * <li>All events fired by the source must specify the single aspect.
- * <li>Listeners are required to be either "general purpose" listeners or
- * 	    listeners of the single aspect.
- * </ul>
- */
-public class SingleAspectChangeSupport
-	extends ChangeSupport
-{
-	protected final Class<? extends EventListener> validListenerClass;
-	protected final String validAspectName;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	public SingleAspectChangeSupport(Model source, Class<? extends EventListener> validListenerClass, String validAspectName) {
-		super(source);
-		if ( ! validListenerClass.isAssignableFrom(this.getChangeListenerClass())) {
-			throw new IllegalArgumentException("The change support's change listener class (" + this.getChangeListenerClass().getName() + //$NON-NLS-1$
-					") does not extend the valid listener class: " + validListenerClass.getName()); //$NON-NLS-1$
-		}
-		this.validListenerClass = validListenerClass;
-		this.validAspectName = validAspectName;
-	}
-
-
-	// ********** internal implementation **********
-
-	private UnsupportedOperationException buildUnsupportedOperationException() {
-		return new UnsupportedOperationException(
-				"This Model supports only changes for the listener type \"" + this.validListenerClass.getName() //$NON-NLS-1$
-				+ "\" and the aspect \"" + this.validAspectName + '"' //$NON-NLS-1$
-			);
-	}
-
-	/**
-	 * The listener can be either an instance of the valid listener class or
-	 * the "general-purpose" change listener class (which should extend the
-	 * the valid listener class).
-	 */
-	private void check(Class<? extends EventListener> listenerClass) {
-		if ((listenerClass != this.getChangeListenerClass()) && (listenerClass != this.validListenerClass)) {
-			throw new IllegalArgumentException(
-					"This Model supports only changes for the listener type \"" + this.validListenerClass.getName() //$NON-NLS-1$
-					+ "\" : \"" + listenerClass.getName() + '"' //$NON-NLS-1$
-				);
-		}
-	}
-
-	private void check(Class<? extends EventListener> listenerClass, String aspectName) {
-		this.check(listenerClass);
-		if ( ! aspectName.equals(this.validAspectName)) {
-			throw new IllegalArgumentException(
-					"This Model supports only changes for the aspect \"" + this.validAspectName //$NON-NLS-1$
-					+ "\" : \"" + aspectName + '"' //$NON-NLS-1$
-				);
-		}
-	}
-
-	@Override
-	protected synchronized <L extends EventListener> void addListener(Class<L> listenerClass, String aspectName, L listener) {
-		this.check(listenerClass, aspectName);
-		super.addListener(listenerClass, aspectName, listener);
-	}
-
-	@Override
-	protected synchronized <L extends EventListener> void addListener(Class<L> listenerClass, L listener) {
-		this.check(listenerClass);
-		super.addListener(listenerClass, listener);
-	}
-
-	@Override
-	protected synchronized <L extends EventListener> void removeListener(Class<L> listenerClass, String aspectName, L listener) {
-		this.check(listenerClass, aspectName);
-		super.removeListener(listenerClass, aspectName, listener);
-	}
-
-	@Override
-	protected synchronized <L extends EventListener> void removeListener(Class<L> listenerClass, L listener) {
-		this.check(listenerClass);
-		super.removeListener(listenerClass, listener);
-	}
-
-	@Override
-	protected <L extends EventListener> boolean hasAnyListeners(Class<L> listenerClass, String aspectName) {
-		this.check(listenerClass, aspectName);
-		return super.hasAnyListeners(listenerClass, aspectName);
-	}
-
-	@Override
-	protected <L extends EventListener> boolean hasAnyListeners(Class<L> listenerClass) {
-		this.check(listenerClass);
-		return super.hasAnyListeners(listenerClass);
-	}
-
-
-	// ********** state change support **********
-
-	@Override
-	public void fireStateChanged(StateChangeEvent event) {
-		throw this.buildUnsupportedOperationException();
-	}
-
-	@Override
-	public void fireStateChanged() {
-		throw this.buildUnsupportedOperationException();
-	}
-
-
-	// ********** property change support **********
-
-	@Override
-	public boolean firePropertyChanged(PropertyChangeEvent event) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, event.getPropertyName());
-		return super.firePropertyChanged(event);
-	}
-
-	@Override
-	public boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		return super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	@Override
-	public boolean firePropertyChanged(String propertyName, int oldValue, int newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		return super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	@Override
-	public boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		return super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-
-	// ********** collection change support **********
-
-	@Override
-	public boolean fireItemsAdded(CollectionAddEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		return super.fireItemsAdded(event);
-	}
-
-	@Override
-	public boolean fireItemsAdded(String collectionName, Collection<?> addedItems) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		return super.fireItemsAdded(collectionName, addedItems);
-	}
-
-	@Override
-	public void fireItemAdded(String collectionName, Object addedItem) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemAdded(collectionName, addedItem);
-	}
-
-	@Override
-	public boolean fireItemsRemoved(CollectionRemoveEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		return super.fireItemsRemoved(event);
-	}
-
-	@Override
-	public boolean fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		return super.fireItemsRemoved(collectionName, removedItems);
-	}
-
-	@Override
-	public void fireItemRemoved(String collectionName, Object removedItem) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemRemoved(collectionName, removedItem);
-	}
-
-	@Override
-	public void fireCollectionCleared(CollectionClearEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireCollectionCleared(event);
-	}
-
-	@Override
-	public void fireCollectionCleared(String collectionName) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireCollectionCleared(collectionName);
-	}
-
-	@Override
-	public void fireCollectionChanged(CollectionChangeEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireCollectionChanged(event);
-	}
-
-	@Override
-	public void fireCollectionChanged(String collectionName, Collection<?> collection) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireCollectionChanged(collectionName, collection);
-	}
-
-
-	// ********** list change support **********
-
-	@Override
-	public boolean fireItemsAdded(ListAddEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		return super.fireItemsAdded(event);
-	}
-
-	@Override
-	public boolean fireItemsAdded(String listName, int index, List<?> addedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		return super.fireItemsAdded(listName, index, addedItems);
-	}
-
-	@Override
-	public void fireItemAdded(String listName, int index, Object addedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemAdded(listName, index, addedItem);
-	}
-
-	@Override
-	public boolean fireItemsRemoved(ListRemoveEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		return super.fireItemsRemoved(event);
-	}
-
-	@Override
-	public boolean fireItemsRemoved(String listName, int index, List<?> removedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		return super.fireItemsRemoved(listName, index, removedItems);
-	}
-
-	@Override
-	public void fireItemRemoved(String listName, int index, Object removedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemRemoved(listName, index, removedItem);
-	}
-
-	@Override
-	public boolean fireItemsReplaced(ListReplaceEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		return super.fireItemsReplaced(event);
-	}
-
-	@Override
-	public boolean fireItemsReplaced(String listName, int index, List<?> newItems, List<?> replacedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		return super.fireItemsReplaced(listName, index, newItems, replacedItems);
-	}
-
-	@Override
-	public boolean fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		return super.fireItemReplaced(listName, index, newItem, replacedItem);
-	}
-
-	@Override
-	public boolean fireItemsMoved(ListMoveEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		return super.fireItemsMoved(event);
-	}
-
-	@Override
-	public boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		return super.fireItemsMoved(listName, targetIndex, sourceIndex, length);
-	}
-
-	@Override
-	public void fireListCleared(ListClearEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireListCleared(event);
-	}
-
-	@Override
-	public void fireListCleared(String listName) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireListCleared(listName);
-	}
-
-	@Override
-	public void fireListChanged(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireListChanged(event);
-	}
-
-	@Override
-	public void fireListChanged(String listName, List<?> list) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireListChanged(listName, list);
-	}
-
-
-	// ********** tree change support **********
-
-	@Override
-	public void fireNodeAdded(TreeAddEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireNodeAdded(event);
-	}
-
-	@Override
-	public void fireNodeAdded(String treeName, List<?> path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireNodeAdded(treeName, path);
-	}
-
-	@Override
-	public void fireNodeRemoved(TreeRemoveEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireNodeRemoved(event);
-	}
-
-	@Override
-	public void fireNodeRemoved(String treeName, List<?> path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireNodeRemoved(treeName, path);
-	}
-
-	@Override
-	public void fireTreeCleared(TreeClearEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireTreeCleared(event);
-	}
-
-	@Override
-	public void fireTreeCleared(String treeName) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireTreeCleared(treeName);
-	}
-
-	@Override
-	public void fireTreeChanged(TreeChangeEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireTreeChanged(event);
-	}
-
-	@Override
-	public void fireTreeChanged(String treeName, Collection<?> nodes) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireTreeChanged(treeName, nodes);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java
deleted file mode 100644
index 5f16ea4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-
-/**
- * Wrap another change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTChangeListenerWrapper
-	implements ChangeListener
-{
-	private final ChangeListener listener;
-
-
-	public AWTChangeListenerWrapper(ChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void stateChanged(StateChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.stateChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildStateChangedRunnable(event));
-		}
-	}
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.propertyChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildPropertyChangedRunnable(event));
-		}
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionClearedRunnable(event));
-		}
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionChangedRunnable(event));
-		}
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsMoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsMovedRunnable(event));
-		}
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsReplaced_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsReplacedRunnable(event));
-		}
-	}
-
-	public void listCleared(ListClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListClearedRunnable(event));
-		}
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListChangedRunnable(event));
-		}
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeAddedRunnable(event));
-		}
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeRemovedRunnable(event));
-		}
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeClearedRunnable(event));
-		}
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildStateChangedRunnable(final StateChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.stateChanged_(event);
-			}
-		};
-	}
-
-	private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.propertyChanged_(event);
-			}
-		};
-	}
-
-	private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.collectionCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.collectionChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsAddedRunnable(final ListAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsMovedRunnable(final ListMoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsMoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items moved runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.itemsReplaced_(event);
-			}
-			@Override
-			public String toString() {
-				return "items replaced runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListClearedRunnable(final ListClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.listCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "list cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListChangedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.listChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "list changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildNodeAddedRunnable(final TreeAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.nodeAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "node added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.nodeRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "node removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeClearedRunnable(final TreeClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.treeCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTChangeListenerWrapper.this.treeChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void stateChanged_(StateChangeEvent event) {
-		this.listener.stateChanged(event);
-	}
-
-	void propertyChanged_(PropertyChangeEvent event) {
-		this.listener.propertyChanged(event);
-	}
-
-	void itemsAdded_(CollectionAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(CollectionRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void collectionCleared_(CollectionClearEvent event) {
-		this.listener.collectionCleared(event);
-	}
-
-	void collectionChanged_(CollectionChangeEvent event) {
-		this.listener.collectionChanged(event);
-	}
-
-	void itemsAdded_(ListAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(ListRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void itemsMoved_(ListMoveEvent event) {
-		this.listener.itemsMoved(event);
-	}
-
-	void itemsReplaced_(ListReplaceEvent event) {
-		this.listener.itemsReplaced(event);
-	}
-
-	void listCleared_(ListClearEvent event) {
-		this.listener.listCleared(event);
-	}
-
-	void listChanged_(ListChangeEvent event) {
-		this.listener.listChanged(event);
-	}
-
-	void nodeAdded_(TreeAddEvent event) {
-		this.listener.nodeAdded(event);
-	}
-
-	void nodeRemoved_(TreeRemoveEvent event) {
-		this.listener.nodeRemoved(event);
-	}
-
-	void treeCleared_(TreeClearEvent event) {
-		this.listener.treeCleared(event);
-	}
-
-	void treeChanged_(TreeChangeEvent event) {
-		this.listener.treeChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java
deleted file mode 100644
index b8af52a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-
-/**
- * Wrap another collection change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTCollectionChangeListenerWrapper
-	implements CollectionChangeListener
-{
-	private final CollectionChangeListener listener;
-
-	public AWTCollectionChangeListenerWrapper(CollectionChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionClearedRunnable(event));
-		}
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.collectionChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.collectionCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.collectionChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void itemsAdded_(CollectionAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(CollectionRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void collectionCleared_(CollectionClearEvent event) {
-		this.listener.collectionCleared(event);
-	}
-
-	void collectionChanged_(CollectionChangeEvent event) {
-		this.listener.collectionChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java
deleted file mode 100644
index bc477f4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-
-/**
- * Wrap another list change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTListChangeListenerWrapper
-	implements ListChangeListener
-{
-	private final ListChangeListener listener;
-
-	public AWTListChangeListenerWrapper(ListChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsMoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsMovedRunnable(event));
-		}
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.itemsReplaced_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsReplacedRunnable(event));
-		}
-	}
-
-	public void listCleared(ListClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListClearedRunnable(event));
-		}
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.listChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final ListAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsMovedRunnable(final ListMoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsMoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items moved runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsReplaced_(event);
-			}
-			@Override
-			public String toString() {
-				return "items replaced runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListClearedRunnable(final ListClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.listCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "list cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildListChangedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.listChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "list changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void itemsAdded_(ListAddEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(ListRemoveEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void itemsMoved_(ListMoveEvent event) {
-		this.listener.itemsMoved(event);
-	}
-
-	void itemsReplaced_(ListReplaceEvent event) {
-		this.listener.itemsReplaced(event);
-	}
-
-	void listCleared_(ListClearEvent event) {
-		this.listener.listCleared(event);
-	}
-
-	void listChanged_(ListChangeEvent event) {
-		this.listener.listChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java
deleted file mode 100644
index a46bd8b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-
-/**
- * Wrap another property change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTPropertyChangeListenerWrapper
-	implements PropertyChangeListener
-{
-	private final PropertyChangeListener listener;
-
-
-	public AWTPropertyChangeListenerWrapper(PropertyChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.propertyChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildPropertyChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTPropertyChangeListenerWrapper.this.propertyChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "property changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void propertyChanged_(PropertyChangeEvent event) {
-		this.listener.propertyChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java
deleted file mode 100644
index c1ecf2b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-
-/**
- * Wrap another state change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTStateChangeListenerWrapper
-	implements StateChangeListener
-{
-	private final StateChangeListener listener;
-
-	public AWTStateChangeListenerWrapper(StateChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void stateChanged(StateChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.stateChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildStateChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildStateChangedRunnable(final StateChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTStateChangeListenerWrapper.this.stateChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "state changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void stateChanged_(StateChangeEvent event) {
-		this.listener.stateChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java
deleted file mode 100644
index ea60469d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-
-/**
- * Wrap another tree change listener and forward events to it on the AWT
- * event queue, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited.
- */
-public final class AWTTreeChangeListenerWrapper
-	implements TreeChangeListener
-{
-	private final TreeChangeListener listener;
-
-	public AWTTreeChangeListenerWrapper(TreeChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeAddedRunnable(event));
-		}
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.nodeRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeRemovedRunnable(event));
-		}
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeClearedRunnable(event));
-		}
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		if (this.isExecutingOnUIThread()) {
-			this.treeChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildNodeAddedRunnable(final TreeAddEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.nodeAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "node added runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.nodeRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "node removed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeClearedRunnable(final TreeClearEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.treeCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree cleared runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.treeChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree changed runnable"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private boolean isExecutingOnUIThread() {
-		return EventQueue.isDispatchThread();
-	}
-
-	/**
-	 * {@link EventQueue#invokeLater(Runnable)} seems to work OK;
-	 * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make
-	 * things more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void nodeAdded_(TreeAddEvent event) {
-		this.listener.nodeAdded(event);
-	}
-
-	void nodeRemoved_(TreeRemoveEvent event) {
-		this.listener.nodeRemoved(event);
-	}
-
-	void treeCleared_(TreeClearEvent event) {
-		this.listener.treeCleared(event);
-	}
-
-	void treeChanged_(TreeChangeEvent event) {
-		this.listener.treeChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java
deleted file mode 100644
index 31aad85..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * This abstract class provides the infrastructure for "lazily" adding listeners
- * to an underlying model as necessary. Subclasses will need to engage and
- * disegage the underlying model and fire the appropriate collection change
- * events. Subclasses must implement the appropriate {@link CollectionValueModel}.
- * <p>
- * Subclasses must implement the following methods:<ul>
- * <li>{@link #engageModel()}<p>
- *     implement this method to add the appropriate listener to the underlying model
- * <li>{@link #disengageModel()}<p>
- *     implement this method to remove the appropriate listener from the underlying model
- * </ul>
- */
-public abstract class AbstractCollectionValueModel
-	extends AbstractModel
-{
-
-	// ********** constructor/initialization **********
-
-	protected AbstractCollectionValueModel() {
-		super();
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, CollectionValueModel.VALUES);
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void addChangeListener(ChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addChangeListener(listener);
-	}
-	
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		if (collectionName.equals(CollectionValueModel.VALUES) && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(collectionName, listener);
-	}
-	
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-	
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(collectionName, listener);
-		if (collectionName.equals(CollectionValueModel.VALUES) && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the model has no collection value listeners.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * Return whether the model has any collection value listeners.
-	 */
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Engage the underlying model.
-	 */
-	protected abstract void engageModel();
-
-	/**
-	 * Stop listening to the underlying model.
-	 */
-	protected abstract void disengageModel();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java
deleted file mode 100644
index b182a52..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This abstract class provides the infrastructure for "lazily" adding listeners
- * to an underlying model as necessary. Subclasses will need to engage and
- * disegage the underlying model and fire the appropriate list change
- * events. Subclasses must implement the appropriate {@link ListValueModel}.
- * <p>
- * Subclasses must implement the following methods:<ul>
- * <li>{@link #engageModel()}<p>
- *     implement this method to add the appropriate listener to the underlying model
- * <li>{@link #disengageModel()}<p>
- *     implement this method to remove the appropriate listener from the underlying model
- * </ul>
- */
-public abstract class AbstractListValueModel
-	extends AbstractModel
-{
-
-	// ********** constructor/initialization **********
-
-	protected AbstractListValueModel() {
-		super();
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, ListValueModel.LIST_VALUES);
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		if (listName.equals(ListValueModel.LIST_VALUES) && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listName, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		super.removeListChangeListener(listName, listener);
-		if (listName.equals(ListValueModel.LIST_VALUES) && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the model has no collection value listeners.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * Return whether the model has any collection value listeners.
-	 */
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(ListValueModel.LIST_VALUES);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Engage the underlying model.
-	 */
-	protected abstract void engageModel();
-
-	/**
-	 * Stop listening to the underlying model.
-	 */
-	protected abstract void disengageModel();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java
deleted file mode 100644
index af62429..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract class provides the infrastructure for "lazily" adding listeners
- * to an underlying model as necessary. Subclasses will need to engage and
- * disegage the underlying model and fire the appropriate property change
- * events. Subclasses must implement the appropriate {@link PropertyValueModel}.
- * <p>
- * Subclasses must implement the following methods:<ul>
- * <li>{@link #engageModel()}<p>
- *     implement this method to add the appropriate listener to the underlying model
- * <li>{@link #disengageModel()}<p>
- *     implement this method to remove the appropriate listener from the underlying model
- * </ul>
- */
-public abstract class AbstractPropertyValueModel
-	extends AbstractModel
-{
-
-	// ********** constructor/initialization **********
-
-	protected AbstractPropertyValueModel() {
-		super();
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE);
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void addChangeListener(ChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		if (propertyName.equals(PropertyValueModel.VALUE) && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addPropertyChangeListener(propertyName, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		super.removePropertyChangeListener(propertyName, listener);
-		if (propertyName.equals(PropertyValueModel.VALUE) && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the model has no property value listeners.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * Return whether the model has any property value listeners.
-	 */
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Engage the underlying model.
-	 */
-	protected abstract void engageModel();
-
-	/**
-	 * Stop listening to the underlying model.
-	 */
-	protected abstract void disengageModel();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java
deleted file mode 100644
index b2dde29..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must implement:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current model
- * <li>{@link #engageModel_()}<p>
- *     to start listening to the adapted model
- * <li>{@link #disengageModel_()}<p>
- *     to stop listening to the adapted model
- * </ul>
- * Subclasses can call {@link #propertyChanged()} whenever the calculated
- * value of the property changes (as determined by the subclass).
- */
-public abstract class AbstractPropertyValueModelAdapter<V>
-	extends AbstractPropertyValueModel
-	implements PropertyValueModel<V>
-{
-	/**
-	 * Cache the current value so we can pass an "old value" when
-	 * we fire a property change event.
-	 * We need this because the value may be calculated and we may
-	 * not able to derive the "old value" from any fired events.
-	 */
-	protected V value;
-
-
-	// ********** constructor/initialization **********
-
-	protected AbstractPropertyValueModelAdapter() {
-		super();
-		// our value is null when we are not listening to the model
-		this.value = null;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Return the cached value.
-	 */
-	public V getValue() {
-		return this.value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the model and build the value.
-	 */
-	@Override
-	protected void engageModel() {
-		this.engageModel_();
-		// synch our value *after* we start listening to the model,
-		// since the model's value might change when a listener is added
-		this.value = this.buildValue();
-	}
-
-	/**
-	 * Start listening to the model.
-	 */
-	protected abstract void engageModel_();
-
-	/**
-	 * Build and return the current value, as derived from the
-	 * current state of the underlying model.
-	 */
-	protected abstract V buildValue();
-
-	/**
-	 * Stop listening to the model and clear the value.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.disengageModel_();
-		// clear out our value when we are not listening to the model
-		this.value = null;
-	}
-
-	/**
-	 * Stop listening to the model.
-	 */
-	protected abstract void disengageModel_();
-
-	/**
-	 * The underlying model changed in some fashion.
-	 * Recalculate the value and notify any listeners.
-	 */
-	protected void propertyChanged() {
-		Object old = this.value;
-		this.firePropertyChanged(VALUE, old, this.value = this.buildValue());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java
deleted file mode 100644
index 657676e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel;
-
-/**
- * Subclasses need only implement the following methods:
- * 
- * #value()
- *	    return the user-determined "value" of the node,
- *     i.e. the object "wrapped" by the node
- * 
- * #setValue(Object)
- *     set the user-determined "value" of the node,
- *     i.e. the object "wrapped" by the node;
- *     typically only overridden for nodes with "primitive" values
- * 
- * #parent()
- *     return the parent of the node, which should be another
- *     TreeNodeValueModel
- * 
- * #childrenModel()
- *     return a ListValueModel for the node's children
- * 
- * #engageValue() and #disengageValue()
- *     override these methods to listen to the node's value if
- *     it can change in a way that should be reflected in the tree
- */
-public abstract class AbstractTreeNodeValueModel<T>
-	extends AbstractModel
-	implements TreeNodeValueModel<T>
-{
-
-
-	// ********** constructors **********
-	
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractTreeNodeValueModel() {
-		super();
-	}
-	
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		// this model fires *both* "value property change" and "state change" events...
-//		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE);
-		return super.buildChangeSupport();
-	}
-
-
-	// ********** extend AbstractModel implementation **********
-
-	/**
-	 * Clients should be adding both "state change" and "value property change"
-	 * listeners.
-	 */
-	@Override
-	public void addStateChangeListener(StateChangeListener listener) {
-		if (this.hasNoStateChangeListeners()) {
-			this.engageValue();
-		}
-		super.addStateChangeListener(listener);
-	}
-
-	/**
-	 * Begin listening to the node's value's state. If the state of the node changes
-	 * in a way that should be reflected in the tree, fire a "state change" event.
-	 */
-	protected abstract void engageValue();
-
-	/**
-	 * @see #addStateChangeListener(StateChangeListener)
-	 */
-	@Override
-	public void removeStateChangeListener(StateChangeListener listener) {
-		super.removeStateChangeListener(listener);
-		if (this.hasNoStateChangeListeners()) {
-			this.disengageValue();
-		}
-	}
-
-	/**
-	 * Stop listening to the node's value.
-	 * @see #engageValue()
-	 */
-	protected abstract void disengageValue();
-
-
-	// ********** WritablePropertyValueModel implementation **********
-	
-	public void setValue(T value) {
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** TreeNodeValueModel implementation **********
-	
-	@SuppressWarnings("unchecked")
-	public TreeNodeValueModel<T>[] path() {
-		List<TreeNodeValueModel<T>> path = CollectionTools.reverseList(this.backPath());
-		return path.toArray(new TreeNodeValueModel[path.size()]);
-	}
-
-	/**
-	 * Return an iterator that climbs up the node's path,
-	 * starting with, and including, the node
-	 * and up to, and including, the root node.
-	 */
-	protected Iterator<TreeNodeValueModel<T>> backPath() {
-		return new ChainIterator<TreeNodeValueModel<T>>(this) {
-			@Override
-			protected TreeNodeValueModel<T> nextLink(TreeNodeValueModel<T> currentLink) {
-				return currentLink.parent();
-			}
-		};
-	}
-
-	public TreeNodeValueModel<T> child(int index) {
-		return this.childrenModel().get(index);
-	}
-
-	public int childrenSize() {
-		return this.childrenModel().size();
-	}
-
-	public int indexOfChild(TreeNodeValueModel<T> child) {
-		ListValueModel<TreeNodeValueModel<T>> children = this.childrenModel();
-		int size = children.size();
-		for (int i = 0; i < size; i++) {
-			if (children.get(i) == child) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	public boolean isLeaf() {
-		return this.childrenModel().size() == 0;
-	}
-
-
-	// ********** standard methods **********
-
-	/**
-	 * We implement #equals(Object) so that TreePaths containing these nodes
-	 * will resolve properly when the nodes contain the same values. This is
-	 * necessary because nodes are dropped and rebuilt willy-nilly when dealing
-	 * with a sorted list of children; and this allows us to save and restore
-	 * a tree's expanded paths. The nodes in the expanded paths that are
-	 * saved before any modification (e.g. renaming a node) will be different
-	 * from the nodes in the tree's paths after the modification, if the modification
-	 * results in a possible change in the node sort order.  ~bjv
-	 */
-	@Override
-	public boolean equals(Object o) {
-		if (o == null) {
-			return false;
-		}
-		if (o.getClass() != this.getClass()) {
-			return false;
-		}
-		@SuppressWarnings("unchecked")
-		AbstractTreeNodeValueModel<T> other = (AbstractTreeNodeValueModel<T>) o;
-		return this.getValue().equals(other.getValue());
-	}
-
-	@Override
-	public int hashCode() {
-		return this.getValue().hashCode();
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java
deleted file mode 100644
index 99f1791..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract extension of {@link AbstractModel} provides a base for adding 
- * change listeners (property change, collection change, list change, tree change)
- * to a subject and converting the subject's change notifications into a single
- * set of change notifications for a common aspect (e.g. <code>VALUE</code>).
- * <p>
- * The adapter will only listen to the subject (and subject holder) when the
- * adapter itself actually has listeners. This will allow the adapter to be
- * garbage collected when appropriate
- */
-public abstract class AspectAdapter<S>
-	extends AbstractModel
-{
-	/**
-	 * The subject that holds the aspect and fires
-	 * change notification when the aspect changes.
-	 * We need to hold on to this directly so we can
-	 * disengage it when it changes.
-	 */
-	protected S subject;
-
-	/**
-	 * A value model that holds the subject
-	 * that holds the aspect and provides change notification.
-	 * This is useful when there are a number of aspect adapters
-	 * that have the same subject and that subject can change.
-	 * All the aspect adapters should share the same subject holder.
-	 * For now, this is can only be set upon construction and is
-	 * immutable.
-	 */
-	protected final PropertyValueModel<? extends S> subjectHolder;
-
-	/** A listener that keeps us in synch with the subject holder. */
-	protected final PropertyChangeListener subjectChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an aspect adapter for the specified subject.
-	 */
-	protected AspectAdapter(S subject) {
-		this(new StaticPropertyValueModel<S>(subject));
-	}
-
-	/**
-	 * Construct an aspect adapter for the specified subject holder.
-	 * The subject holder cannot be null.
-	 */
-	protected AspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super();
-		if (subjectHolder == null) {
-			throw new NullPointerException();
-		}
-		this.subjectHolder = subjectHolder;
-		this.subjectChangeListener = this.buildSubjectChangeListener();
-		// the subject is null when we are not listening to it
-		// this will typically result in our value being null
-		this.subject = null;
-	}
-
-
-	// ********** initialization **********
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new LocalChangeSupport(this, this.getListenerClass(), this.getListenerAspectName());
-	}
-
-	/**
-	 * The subject holder's value has changed, keep our subject in synch.
-	 */
-	protected PropertyChangeListener buildSubjectChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				AspectAdapter.this.subjectChanged();
-			}
-			@Override
-			public String toString() {
-				return "subject change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * The subject has changed. Notify listeners that the value has changed.
-	 */
-	protected synchronized void subjectChanged() {
-		Object oldValue = this.getValue();
-		boolean hasListeners = this.hasListeners();
-		if (hasListeners) {
-			this.disengageSubject();
-		}
-		this.subject = this.subjectHolder.getValue();
-		if (hasListeners) {
-			this.engageSubject();
-			this.fireAspectChanged(oldValue, this.getValue());
-		}
-	}
-
-	/**
-	 * Return the aspect's current value.
-	 */
-	protected abstract Object getValue();
-
-	/**
-	 * Return the class of listener that is interested in the aspect adapter's
-	 * changes.
-	 */
-	protected abstract Class<? extends EventListener> getListenerClass();
-
-	/**
-	 * Return the name of the aspect adapter's aspect (e.g. VALUE).
-	 * This is the name of the aspect adapter's single aspect, not the
-	 * name of the subject's aspect the aspect adapter is adapting.
-	 */
-	protected abstract String getListenerAspectName();
-
-	/**
-	 * Return whether there are any listeners for the aspect.
-	 */
-	protected abstract boolean hasListeners();
-
-	/**
-	 * Return whether there are no listeners for the aspect.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * The aspect has changed, notify listeners appropriately.
-	 */
-	protected abstract void fireAspectChanged(Object oldValue, Object newValue);
-
-	protected void engageSubject() {
-		// check for nothing to listen to
-		if (this.subject != null) {
-			this.engageSubject_();
-		}
-	}
-
-	/**
-	 * The subject is not null - add our listener.
-	 */
-	protected abstract void engageSubject_();
-
-	protected void disengageSubject() {
-		// check for nothing to listen to
-		if (this.subject != null) {
-			this.disengageSubject_();
-		}
-	}
-
-	/**
-	 * The subject is not null - remove our listener.
-	 */
-	protected abstract void disengageSubject_();
-
-	protected void engageSubjectHolder() {
-		this.subjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		// synch our subject *after* we start listening to the subject holder,
-		// since its value might change when a listener is added
-		this.subject = this.subjectHolder.getValue();
-	}
-
-	protected void disengageSubjectHolder() {
-		this.subjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		// clear out the subject when we are not listening to its holder
-		this.subject = null;
-	}
-
-	protected void engageModels() {
-		this.engageSubjectHolder();
-		this.engageSubject();
-	}
-
-	protected void disengageModels() {
-		this.disengageSubject();
-		this.disengageSubjectHolder();
-	}
-
-
-	// ********** local change support **********
-
-	/**
-	 * Extend change support to start listening to the aspect adapter's
-	 * models (the subject holder and the subject itself) when the first
-	 * relevant listener is added.
-	 * Conversely, stop listening to the aspect adapter's models when the
-	 * last relevant listener is removed.
-	 * A relevant listener is a listener of the relevant type and aspect or a
-	 * general-purpose listener.
-	 */
-	protected class LocalChangeSupport extends SingleAspectChangeSupport {
-		private static final long serialVersionUID = 1L;
-
-		public LocalChangeSupport(AspectAdapter<S> source, Class<? extends EventListener> validListenerClass, String validAspectName) {
-			super(source, validListenerClass, validAspectName);
-		}
-
-		protected boolean hasNoListeners() {
-			return this.hasNoListeners(this.validListenerClass, this.validAspectName);
-		}
-
-
-		// ********** overrides **********
-
-		@Override
-		protected synchronized <T extends EventListener> void addListener(Class<T> listenerClass, T listener) {
-			if (this.hasNoListeners()) {
-				AspectAdapter.this.engageModels();
-			}
-			super.addListener(listenerClass, listener);
-		}
-
-		@Override
-		protected synchronized <T extends EventListener> void addListener(Class<T> listenerClass, String aspectName, T listener) {
-			if (this.hasNoListeners()) {
-				AspectAdapter.this.engageModels();
-			}
-			super.addListener(listenerClass, aspectName, listener);
-		}
-
-		@Override
-		protected synchronized <T extends EventListener> void removeListener(Class<T> listenerClass, T listener) {
-			super.removeListener(listenerClass, listener);
-			if (this.hasNoListeners()) {
-				AspectAdapter.this.disengageModels();
-			}
-		}
-
-		@Override
-		protected synchronized <T extends EventListener> void removeListener(Class<T> listenerClass, String aspectName, T listener) {
-			super.removeListener(listenerClass, aspectName, listener);
-			if (this.hasNoListeners()) {
-				AspectAdapter.this.disengageModels();
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java
deleted file mode 100644
index 9c7f316..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Collection;
-import java.util.EventListener;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This {@link AspectAdapter} provides basic collection change support.
- * This converts an "aspect" (as defined by subclasses) into
- * a single {@link #VALUES} collection.
- * <p>
- * The typical subclass will override the following methods:<ul>
- * <li>{@link #engageSubject_()}<p>
- *     implement this method to add the appropriate listener to the subject
- * <li>{@link #disengageSubject_()}<p>
- *     implement this method to remove the appropriate listener from the subject
- * <li>{@link #getIterable()}<p>
- *     at the very minimum, override this method to return an iterable containing the
- *     subject's collection aspect; it does not need to be overridden if either
- *     {@link #iterator_()} or {@link #iterator()} is overridden and its behavior changed
- * <li>{@link #size_()}<p>
- *     override this method to improve performance; it does not need to be overridden if
- *     {@link #size()} is overridden and its behavior changed
- * <li>{@link #iterator_()}<p>
- *     override this method to return an iterator on the
- *     subject's collection aspect if it is not possible to implement {@link #getIterable()};
- *     it does not need to be overridden if
- *     {@link #iterator()} is overridden and its behavior changed
- * <li>{@link #iterator()}<p>
- *     override this method only if returning an empty iterator when the
- *     subject is null is unacceptable
- * <li>{@link #size()}<p>
- *     override this method only if returning a zero when the
- *     subject is null is unacceptable
- * </ul>
- * To notify listeners, subclasses can call {@link #collectionChanged()}
- * whenever the aspect has changed.
- */
-public abstract class AspectCollectionValueModelAdapter<S, E>
-	extends AspectAdapter<S>
-	implements CollectionValueModel<E>
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model adapter for an aspect of the
-	 * specified subject.
-	 */
-	protected AspectCollectionValueModelAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	/**
-	 * Return the elements of the subject's collection aspect.
-	 */
-	public Iterator<E> iterator() {
-		return (this.subject == null) ? EmptyIterator.<E>instance() : this.iterator_();
-	}
-
-	/**
-	 * Return the elements of the subject's collection aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #iterator()
-	 */
-	protected Iterator<E> iterator_() {
-		return this.getIterable().iterator();
-	}
-
-	/**
-	 * Return the elements of the subject's collection aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #iterator_()
-	 */
-	protected Iterable<E> getIterable() {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the size of the subject's collection aspect.
-	 */
-	public int size() {
-		return (this.subject == null) ? 0 : this.size_();
-	}
-
-	/**
-	 * Return the size of the subject's collection aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #size()
-	 */
-	protected int size_() {
-		return CollectionTools.size(this.iterator());
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.buildValueCollection();
-	}
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return CollectionChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-	@Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		@SuppressWarnings("unchecked") Collection<E> newCollection = (Collection<E>) newValue;
-		this.fireCollectionChanged(VALUES, newCollection);
-	}
-
-	protected void collectionChanged() {
-		this.fireCollectionChanged(VALUES, this.buildValueCollection());
-	}
-
-	protected Collection<E> buildValueCollection() {
-		return CollectionTools.collection(this.iterator());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.buildValueCollection());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java
deleted file mode 100644
index 41d36a0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.EventListener;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This {@link AspectAdapter} provides basic list change support.
- * This converts an "aspect" (as defined by subclasses) into
- * a single {@link #LIST_VALUES} list.
- * <p>
- * The typical subclass will override the following methods:<ul>
- * <li>{@link #engageSubject_()}<p>
- *     implement this method to add the appropriate listener to the subject
- * <li>{@link #disengageSubject_()}<p>
- *     implement this method to remove the appropriate listener from the subject
- * <li>{@link #getListIterable()}<p>
- *     at the very minimum, override this method to return a list iterable containing the
- *     subject's list aspect; it does not need to be overridden if either
- *     {@link #listIterator_()} or {@link #listIterator()} is overridden and its behavior changed
- * <li>{@link #get(int)}<p>
- *     override this method to improve performance
- * <li>{@link #size_()}<p>
- *     override this method to improve performance; it does not need to be overridden if
- *     {@link #size()} is overridden and its behavior changed
- * <li>{@link #toArray_()}<p>
- *     override this method to improve performance; it does not need to be overridden if
- *     {@link #toArray()} is overridden and its behavior changed
- * <li>{@link #listIterator_()}<p>
- *     override this method to return a list iterator on the subject's list
- *     aspect if it is not possible to implement {@link #getListIterable()};
- *     it does not need to be overridden if
- *     {@link #listIterator()} is overridden and its behavior changed
- * <li>{@link #listIterator()}<p>
- *     override this method only if returning an empty list iterator when the
- *     subject is null is unacceptable
- * <li>{@link #size()}<p>
- *     override this method only if returning a zero when the
- *     subject is null is unacceptable
- * <li>{@link #toArray()}<p>
- *     override this method only if returning an empty array when the
- *     subject is null is unacceptable
- * </ul>
- * To notify listeners, subclasses can call {@link #listChanged()}
- * whenever the aspect has changed.
- */
-public abstract class AspectListValueModelAdapter<S, E>
-	extends AspectAdapter<S>
-	implements ListValueModel<E>
-{
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model adapter for an aspect of the
-	 * specified subject.
-	 */
-	protected AspectListValueModelAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 */
-	public ListIterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 */
-	public ListIterator<E> listIterator() {
-		return (this.subject == null) ? EmptyListIterator.<E>instance() : this.listIterator_();
-	}
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #listIterator()
-	 */
-	protected ListIterator<E> listIterator_() {
-		return this.getListIterable().iterator();
-	}
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #listIterator_()
-	 */
-	protected ListIterable<E> getListIterable() {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the element at the specified index of the subject's list aspect.
-	 */
-	public E get(int index) {
-		return CollectionTools.get(this.listIterator(), index);
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 */
-	public int size() {
-		return this.subject == null ? 0 : this.size_();
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #size()
-	 */
-	protected int size_() {
-		return CollectionTools.size(this.listIterator());
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 */
-	public Object[] toArray() {
-		return this.subject == null ? EMPTY_ARRAY : this.toArray_();
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #toArray()
-	 */
-	protected Object[] toArray_() {
-		return ArrayTools.array(this.listIterator(), this.size());
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected List<E> getValue() {
-		return this.buildValueList();
-	}
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return ListChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return LIST_VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	@Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		@SuppressWarnings("unchecked") List<E> newList = (List<E>) newValue;
-		this.fireListChanged(LIST_VALUES, newList);
-	}
-
-	protected void listChanged() {
-		this.fireListChanged(LIST_VALUES, this.buildValueList());
-	}
-
-	protected List<E> buildValueList() {
-		return CollectionTools.list(this.iterator());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.buildValueList());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java
deleted file mode 100644
index 180153a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This {@link AspectAdapter} provides basic property change support.
- * This converts an "aspect" (as defined by subclasses) into
- * a single {@link #VALUE} property.
- * <p>
- * The typical subclass will override the following methods:<ul>
- * <li>{@link #engageSubject_()}<p>
- *     implement this method to add the appropriate listener to the subject
- * <li>{@link #disengageSubject_()}<p>
- *     implement this method to remove the appropriate listener from the subject
- * <li>{@link #buildValue_()}<p>
- *     at the very minimum, override this method to return the value of the
- *     subject's aspect (or "virtual" aspect); it does not need to be
- *     overridden if {@link #buildValue()} is overridden and its behavior changed
- * <li>{@link #setValue_(Object)}<p>
- *     override this method if the client code needs to <em>set</em> the value of
- *     the subject's aspect; oftentimes, though, the client code (e.g. UI)
- *     will need only to <em>get</em> the value; it does not need to be
- *     overridden if {@link #setValue(Object)} is overridden and its behavior changed
- * <li>{@link #buildValue()}<p>
- *     override this method only if returning a <code>null</code> value when
- *     the subject is <code>null</code> is unacceptable
- * <li>{@link #setValue(Object)}<p>
- *     override this method only if something must be done when the subject
- *     is <code>null</code> (e.g. throw an exception)
- * </ul>
- * To notify listeners, subclasses can call {@link #propertyChanged()}
- * whenever the aspect has changed.
- */
-public abstract class AspectPropertyValueModelAdapter<S, V>
-	extends AspectAdapter<S>
-	implements WritablePropertyValueModel<V>
-{
-	/**
-	 * Cache the current value of the aspect so we
-	 * can pass an "old value" when we fire a property change event.
-	 * We need this because the value may be calculated and may
-	 * not be in the property change event fired by the subject,
-	 * especially when dealing with multiple aspects.
-	 */
-	protected V value;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a property value model adapter for an aspect of the
-	 * specified subject.
-	 */
-	protected AspectPropertyValueModelAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-		// our value is null when we are not listening to the subject
-		this.value = null;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Return the value of the subject's aspect.
-	 */
-	@Override
-	public final V getValue() {
-		return this.value;
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	/**
-	 * Set the value of the subject's aspect.
-	 */
-	public void setValue(V value) {
-		if (this.subject != null) {
-			this.setValue_(value);
-		}
-	}
-
-	/**
-	 * Set the value of the subject's aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #setValue(Object)
-	 */
-	protected void setValue_(@SuppressWarnings("unused") V value) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return PropertyChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUE;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(VALUE);
-	}
-
-    @Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-    @Override
-	protected void engageSubject() {
-		super.engageSubject();
-		// synch our value *after* we start listening to the subject,
-		// since its value might change when a listener is added
-		this.value = this.buildValue();
-	}
-
-    @Override
-	protected void disengageSubject() {
-		super.disengageSubject();
-		// clear out our value when we are not listening to the subject
-		this.value = null;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Return the aspect's value.
-	 * At this point the subject may be null.
-	 */
-	protected V buildValue() {
-		return (this.subject == null) ? null : this.buildValue_();
-	}
-
-	/**
-	 * Return the value of the subject's aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #buildValue()
-	 */
-	protected V buildValue_() {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * This method can be called by subclasses whenever the subject's aspect
-	 * has changed; listeners will be notified appropriately.
-	 */
-	protected void propertyChanged() {
-		V old = this.value;
-		this.value = this.buildValue();
-		this.fireAspectChanged(old, this.value);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java
deleted file mode 100644
index 6989991..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Collection;
-import java.util.EventListener;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.TreeValueModel;
-
-/**
- * This {@link AspectAdapter} provides basic tree change support.
- * This converts an "aspect" (as defined by subclasses) into
- * a single {@link #NODES} tree.
- * <p>
- * The typical subclass will override the following methods:<ul>
- * <li>{@link #engageSubject_()}<p>
- *     implement this method to add the appropriate listener to the subject
- * <li>{@link #disengageSubject_()}<p>
- *     implement this method to remove the appropriate listener from the subject
- * <li>{@link #nodes_()}<p>
- *     at the very minimum, override this method to return an iterator
- *     on the subject's tree aspect; it does not need to be overridden if
- *     {@link #nodes()} is overridden and its behavior changed
- * <li>{@link #nodes()}<p>
- *     override this method only if returning an empty iterator when the
- *     subject is null is unacceptable
- * </ul>
- * To notify listeners, subclasses can call {@link #treeChanged()}
- * whenever the aspect has changed.
- */
-public abstract class AspectTreeValueModelAdapter<S, E>
-	extends AspectAdapter<S>
-	implements TreeValueModel<E>
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a tree value model adapter for an aspect of the
-	 * specified subject.
-	 */
-	protected AspectTreeValueModelAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-	}
-
-
-	// ********** TreeValueModel implementation **********
-
-	/**
-	 * Return the nodes of the subject's tree aspect.
-	 */
-	public Iterator<E> nodes() {
-		return (this.subject == null) ? EmptyIterator.<E>instance() : this.nodes_();
-	}
-
-	/**
-	 * Return the nodes of the subject's tree aspect.
-	 * At this point we can be sure the subject is not null.
-	 * @see #nodes()
-	 */
-	protected Iterator<E> nodes_() {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.buildValueCollection();
-	}
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return TreeChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return NODES;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyTreeChangeListeners(NODES);
-	}
-
-    @Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		@SuppressWarnings("unchecked") Collection<E> newNodes = (Collection<E>) newValue;
-		this.fireTreeChanged(NODES, newNodes);
-	}
-
-	protected void treeChanged() {
-		this.fireTreeChanged(NODES, this.buildValueCollection());
-	}
-
-	protected Collection<E> buildValueCollection() {
-		return CollectionTools.collection(this.nodes());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.buildValueCollection());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java
deleted file mode 100644
index 87d191c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>BufferedWritablePropertyValueModel</code> is used to hold a temporary copy of the value
- * in another property value model (the "wrapped" value holder). The application
- * can modify this temporary copy, ad nauseam; but the temporary copy is only
- * passed through to the "wrapped" value holder when the trigger "accepts" the
- * buffered value. Alternatively, the application can "reset" the buffered value
- * to the original, "wrapped" value.
- * <p>
- * The trigger is another {@link PropertyValueModel} that holds a {@link Boolean}
- * and the application changes the trigger's value to true on "accept", false on "reset".
- * Typically, in a dialog:<ul>
- * <li>pressing the "OK" button will trigger an "accept" and close the dialog
- * <li>pressing the "Cancel" button will simply close the dialog,
- *   dropping the "buffered" values into the bit bucket
- * <li>pressing the "Apply" button will trigger an "accept" and leave the dialog open
- * <li>pressing the "Restore" button will trigger a "reset" and leave the dialog open
- * </ul>
- * <p>
- * A number of buffered property value models can wrap another set of
- * property aspect adapters that adapt the various aspects of a single
- * domain model. All the bufferd property value models can be hooked to the
- * same trigger, and that trigger is controlled by the application, typically
- * via the OK button in a dialog.
- * 
- * @see PropertyAspectAdapter
- */
-public class BufferedWritablePropertyValueModel<T>
-	extends PropertyValueModelWrapper<T>
-	implements WritablePropertyValueModel<T>
-{
-
-	/**
-	 * We cache the value here until it is accepted and passed
-	 * through to the wrapped value holder.
-	 */
-	protected T bufferedValue;
-
-	/**
-	 * This is set to true when we are "accepting" the buffered value
-	 * and passing it through to the wrapped value holder. This allows
-	 * us to ignore the property change event fired by the wrapped
-	 * value holder.
-	 * (We can't stop listening to the wrapped value holder, because
-	 * if we are the only listener that could "deactivate" the wrapped
-	 * value holder.)
-	 */
-	protected boolean accepting;
-
-	/**
-	 * This is the trigger that indicates whether the buffered value
-	 * should be accepted or reset.
-	 */
-	protected final PropertyValueModel<Boolean> triggerHolder;
-
-	/** This listens to the trigger holder. */
-	protected final PropertyChangeListener triggerChangeListener;
-
-	/**
-	 * This flag indicates whether our buffered value has been assigned
-	 * a value and is possibly out of synch with the wrapped value.
-	 */
-	protected boolean buffering;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a buffered property value model with the specified wrapped
-	 * property value model and trigger holder.
-	 */
-	public BufferedWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, PropertyValueModel<Boolean> triggerHolder) {
-		super(valueHolder);
-		if (triggerHolder == null) {
-			throw new NullPointerException();
-		}
-		this.triggerHolder = triggerHolder;
-		this.bufferedValue = null;
-		this.buffering = false;
-		this.accepting = false;
-		this.triggerChangeListener = this.buildTriggerChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildTriggerChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				BufferedWritablePropertyValueModel.this.triggerChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "trigger change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueModel implementation **********
-
-	/**
-	 * If we are currently "buffering" a value, return that;
-	 * otherwise, return the wrapped value.
-	 */
-	public T getValue() {
-		return this.buffering ? this.bufferedValue : this.valueHolder.getValue();
-	}
-
-	/**
-	 * Assign the new value to our "buffered" value.
-	 * It will be pushed to the wrapped value holder
-	 * when the trigger is "accepted".
-	 */
-	public void setValue(T value) {
-		if (this.buffering) {
-			if (this.valuesAreEqual(value, this.valueHolder.getValue())) {
-				// the buffered value is being set back to the original value
-				this.reset();
-			} else {
-				// the buffered value is being changed
-				Object old = this.bufferedValue;
-				this.bufferedValue = value;
-				this.firePropertyChanged(VALUE, old, value);
-			}
-		} else {
-			if (this.valuesAreEqual(value, this.valueHolder.getValue())) {
-				// the buffered value is being set to the same value as the original value - ignore
-			} else {
-				// the buffered value is being set for the first time
-				Object old = this.valueHolder.getValue();
-				this.bufferedValue = value;
-				this.buffering = true;
-				this.firePropertyChanged(VALUE, old, value);
-			}
-		}
-	}
-
-
-	// ********** PropertyValueModelWrapper extensions **********
-
-	/**
-	 * extend to engage the trigger holder also
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.triggerHolder.addPropertyChangeListener(VALUE, this.triggerChangeListener);
-	}
-
-	/**
-	 * extend to disengage the trigger holder also
-	 */
-	@Override
-	protected void disengageModel() {
-		this.triggerHolder.removePropertyChangeListener(VALUE, this.triggerChangeListener);
-		super.disengageModel();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * If we are currently "accepting" the value (i.e passing it on to the
-	 * "wrapped" model), ignore change notifications, since we caused
-	 * them and our own listeners are already aware of the change.
-	 */
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		if ( ! this.accepting) {
-			this.valueChanged_(event);
-		}
-	}
-
-	/**
-	 * If we have a "buffered" value, check whether the "wrapped" value has
-	 * changed to be the same as the "buffered" value. If it has, stop "buffering";
-	 * if not, do nothing.
-	 * If we do not yet have a "buffered" value, simply propagate the
-	 * change notification with the buffered model as the source.
-	 */
-	protected void valueChanged_(PropertyChangeEvent event) {
-		if (this.buffering) {
-			if (this.valuesAreEqual(event.getNewValue(), this.bufferedValue)) {
-				// the buffered value is being set back to the original value
-				this.reset();
-			} else {
-				this.handleChangeConflict(event);
-			}
-		} else {
-			this.firePropertyChanged(event.clone(this));
-		}
-	}
-
-	/**
-	 * By default, if we have a "buffered" value and the "wrapped" value changes,
-	 * we simply ignore the new "wrapped" value and simply overlay it with the
-	 * "buffered" value if it is "accepted". ("Last One In Wins" concurrency model)
-	 * Subclasses can override this method to change that behavior with a
-	 * different concurrency model. For example, you could drop the "buffered" value
-	 * and replace it with the new "wrapped" value, or you could throw an
-	 * exception.
-	 */
-	protected void handleChangeConflict(@SuppressWarnings("unused") PropertyChangeEvent event) {
-		// the default is to do nothing
-	}
-
-	/**
-	 * The trigger changed:<ul>
-	 * <li>If it is now true, "accept" the buffered value and push
-	 * it to the wrapped value holder.
-	 * <li>If it is now false, "reset" the buffered value to its original value.
-	 * </ul>
-	 */
-	protected void triggerChanged(PropertyChangeEvent event) {
-		// if nothing has been "buffered", we don't need to do anything:
-		// nothing needs to be passed through; nothing needs to be reset;
-		if (this.buffering) {
-			if (((Boolean) event.getNewValue()).booleanValue()) {
-				this.accept();
-			} else {
-				this.reset();
-			}
-		}
-	}
-
-	protected void accept() {
-		// set the accepting flag so we ignore any events
-		// fired by the wrapped value holder
-		this.accepting = true;
-		try {
-			this.getValueHolder().setValue(this.bufferedValue);
-		} finally {
-			this.bufferedValue = null;
-			this.buffering = false;
-			// clear the flag once the "accept" is complete
-			this.accepting = false;
-		}
-	}
-
-	protected void reset() {
-		// notify our listeners that our value has been reset
-		Object old = this.bufferedValue;
-		this.bufferedValue = null;
-		this.buffering = false;
-		this.firePropertyChanged(VALUE, old, this.valueHolder.getValue());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Return whether the buffered model is currently "buffering"
-	 * a value.
-	 */
-	public boolean isBuffering() {
-		return this.buffering;
-	}
-
-	/**
-	 * Our constructor accepts only a {@link WritablePropertyValueModel}{@code<T>}.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T> getValueHolder() {
-		return (WritablePropertyValueModel<T>) this.valueHolder;
-	}
-
-
-	// ********** inner class **********
-
-	/**
-	 * <code>Trigger</code> is a special property value model that only maintains its
-	 * value (of <code>true</code> or <code>false</code>) during the change notification caused by
-	 * {@link #setValue(T)}. In other words, a <code>Trigger</code>
-	 * only has a valid value when it is being set.
-	 */
-	public static class Trigger extends SimplePropertyValueModel<Boolean> {
-
-
-		// ********** constructor **********
-
-		/**
-		 * Construct a trigger with a null value.
-		 */
-		public Trigger() {
-			super();
-		}
-
-
-		// ********** ValueModel implementation **********
-
-		/**
-		 * Extend so that this method can only be invoked during
-		 * change notification triggered by {@link #setValue(Object)}.
-		 */
-		@Override
-		public Boolean getValue() {
-			if (this.value == null) {
-				throw new IllegalStateException("The method Trigger.getValue() may only be called during change notification."); //$NON-NLS-1$
-			}
-			return this.value;
-		}
-
-		/**
-		 * Extend to reset the value to <code>null</code> once all the
-		 * listeners have been notified.
-		 */
-		@Override
-		public void setValue(Boolean value) {
-			super.setValue(value);
-			this.value = null;
-		}
-
-
-		// ********** convenience methods **********
-
-		/**
-		 * Set the trigger's value:<ul>
-		 * 	<li><code>true</code> indicates "accept"
-		 * 	<li><code>false</code> indicates "reset"
-		 * </ul>
-		 */
-		public void setValue(boolean value) {
-			this.setValue(Boolean.valueOf(value));
-		}
-
-		/**
-		 * Return the trigger's value:<ul>
-		 * 	<li><code>true</code> indicates "accept"
-		 * 	<li><code>false</code> indicates "reset"
-		 * </ul>
-		 * This method can only be invoked during change notification.
-		 */
-		public boolean booleanValue() {
-			return this.getValue().booleanValue();
-		}
-
-		/**
-		 * Accept the trigger (i.e. set its value to <code>true</code>).
-		 */
-		public void accept() {
-			this.setValue(true);
-		}
-
-		/**
-		 * Return whether the trigger has been accepted
-		 * (i.e. its value was changed to <code>true</code>).
-		 * This method can only be invoked during change notification.
-		 */
-		public boolean isAccepted() {
-			return this.booleanValue();
-		}
-
-		/**
-		 * Reset the trigger (i.e. set its value to <code>false</code>).
-		 */
-		public void reset() {
-			this.setValue(false);
-		}
-
-		/**
-		 * Return whether the trigger has been reset
-		 * (i.e. its value was changed to <code>false</code>).
-		 * This method can only be invoked during change notification.
-		 */
-		public boolean isReset() {
-			return ! this.booleanValue();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java
deleted file mode 100644
index c62e685..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>CachingTransformationPropertyValueModel</code> wraps another
- * {@link PropertyValueModel} and uses a {@link Transformer}
- * to transform the wrapped value before it is returned by {@link #getValue()}.
- * The transformed value is calculated and cached during initialization and every
- * time the wrapped value changes. This can be useful when the old value
- * passed in to {@link #valueChanged(org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent)}
- * can no longer be "transformed" because its state is no longer valid.
- * This caching can also improve time performance in some situations.
- * <p>
- * As an alternative to building a {@link Transformer},
- * a subclass of <code>CachingTransformationPropertyValueModel</code> can
- * either override {@link #transform_(Object)} or,
- * if something other than null should be returned when the wrapped value
- * is null, override {@link #transform(Object)}.
- */
-public class CachingTransformationPropertyValueModel<T1, T2>
-	extends TransformationPropertyValueModel<T1, T2>
-{
-	/**
-	 * Cache the transformed value so that during property change event notification
-	 * we do not have to transform the old value. The old value could no longer be valid in
-	 * the model; as a result, transforming it would not be valid.
-	 */
-	protected T2 cachedValue;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and the default transformer.
-	 * Use this constructor if you want to override
-	 * {@link #transform_(Object)} or {@link #transform(Object)}
-	 * instead of building a {@link Transformer}.
-	 */
-	public CachingTransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and transformer.
-	 */
-	public CachingTransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder, Transformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * We have listeners, transform the nested value and cache the result.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.cachedValue = this.transform(this.valueHolder.getValue());
-	}
-
-	/**
-	 * We have no more listeners, clear the cached value.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.cachedValue = null;
-		super.disengageModel();
-	}
-
-	/**
-	 * No need to transform the nested value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	public T2 getValue() {
-		return this.cachedValue;
-	}
-
-	/**
-	 * Transform the specified new value, caching it before returning it.
-	 * A bit of a side-effect, but it seems reasonable.
-	 */
-	@Override
-	protected T2 transformNew(T1 value) {
-		this.cachedValue = super.transformNew(value);
-		return this.cachedValue;
-	}
-
-	/**
-	 * No need to transform the old value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	protected T2 transformOld(T1 value) {
-		return this.cachedValue;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java
deleted file mode 100644
index 1560367..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.BidiTransformer;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>CachingTransformationWritablePropertyValueModel<code> augments the
- * behavior of a {@link TransformationWritablePropertyValueModel} by caching
- * the transformed value.
- * The transformed value is calculated and cached during initialization and every
- * time the wrapped value changes. This can be useful when the old value
- * passed in to {@link #valueChanged(org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent)}
- * can no longer be "transformed" because its state is no longer valid.
- * This caching can also improve time performance in some situations.
- */
-public class CachingTransformationWritablePropertyValueModel<T1, T2>
-	extends TransformationWritablePropertyValueModel<T1, T2>
-{
-	/**
-	 * Cache the transformed value so that during property change event notification
-	 * we do not have to transform the old value. The old value could no longer be valid in
-	 * the model; as a result, transforming it would not be valid.
-	 */
-	protected T2 cachedValue;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and the default bidi transformer.
-	 * Use this constructor if you want to override
-	 * {@link #transform_(Object)} and {@link reverseTransform_(Object)}
-	 * (or {@link #transform(Object)} and {@link #reverseTransform(Object)})
-	 * methods instead of building a {@link BidiTransformer}.
-	 */
-	public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and bidi transformer.
-	 */
-	public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder, BidiTransformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * We have listeners, transform the nested value and cache the result.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.cachedValue = this.transform(this.valueHolder.getValue());
-	}
-
-	/**
-	 * We have no more listeners, clear the cached value.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.cachedValue = null;
-		super.disengageModel();
-	}
-
-	/**
-	 * No need to transform the nested value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	public T2 getValue() {
-		return this.cachedValue;
-	}
-
-	/**
-	 * Transform the specified new value, caching it before returning it.
-	 * A bit of a side-effect, but it seems reasonable.
-	 */
-	@Override
-	protected T2 transformNew(T1 value) {
-		this.cachedValue = super.transformNew(value);
-		return this.cachedValue;
-	}
-
-	/**
-	 * No need to transform the old value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	protected T2 transformOld(T1 value) {
-		return this.cachedValue;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java
deleted file mode 100644
index 56d8ddd..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must override:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current model
- * </ul>
- * Subclasses might want to override the following methods
- * to improve performance (by not recalculating the value, if possible):<ul>
- * <li>{@link #modelChanged(ChangeEvent event)}
- * <li>{@link #buildChangeListener()}
- * </ul>
- */
-public abstract class ChangePropertyValueModelAdapter<T>
-	extends AbstractPropertyValueModelAdapter<T>
-{
-	/** The wrapped model. */
-	protected final Model model;
-
-	/** A listener that allows us to synch with changes to the wrapped collection holder. */
-	protected final ChangeListener changeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped model.
-	 */
-	protected ChangePropertyValueModelAdapter(Model model) {
-		super();
-		this.model = model;
-		this.changeListener = this.buildChangeListener();
-	}
-
-	protected ChangeListener buildChangeListener() {
-		return new SimpleChangeListener() {
-			@Override
-			protected void modelChanged(ChangeEvent event) {
-				ChangePropertyValueModelAdapter.this.modelChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "change listener command"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the model.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.model.addChangeListener(this.changeListener);
-	}
-
-	/**
-	 * Stop listening to the model.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.model.removeChangeListener(this.changeListener);
-	}
-
-	
-	// ********** change support **********
-
-	/**
-	 * The wrapped model has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void modelChanged(@SuppressWarnings("unused") ChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java
deleted file mode 100644
index b9a0cf9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of {@link AspectCollectionValueModelAdapter} provides
- * basic collection change support.
- * This converts a set of one or more collections into
- * a single {@link #VALUES} collection.
- * <p>
- * The typical subclass will override the following methods (see the descriptions
- * in {@link AspectCollectionValueModelAdapter}):<ul>
- * <li>{@link #getIterable()}
- * <li>{@link #size_()}
- * <li>{@link #iterator_()}
- * <li>{@link #iterator()}
- * <li>{@link #size()}
- * </ul>
- */
-public abstract class CollectionAspectAdapter<S extends Model, E>
-	extends AspectCollectionValueModelAdapter<S, E>
-{
-	/**
-	 * The name of the subject's collections that we use for the value.
-	 */
-	protected final String[] collectionNames;
-		protected static final String[] EMPTY_COLLECTION_NAMES = new String[0];
-
-	/** A listener that listens to the subject's collection aspects. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection aspect adapter for the specified subject
-	 * and collection.
-	 */
-	protected CollectionAspectAdapter(String collectionName, S subject) {
-		this(new String[] {collectionName}, subject);
-	}
-
-	/**
-	 * Construct a collection aspect adapter for the specified subject
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(String[] collectionNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), collectionNames);
-	}
-
-	/**
-	 * Construct a collection aspect adapter for the specified subject holder
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... collectionNames) {
-		super(subjectHolder);
-		this.collectionNames = collectionNames;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-
-	/**
-	 * Construct a collection aspect adapter for the specified subject holder
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> collectionNames) {
-		this(subjectHolder, collectionNames.toArray(new String[collectionNames.size()]));
-	}
-
-	/**
-	 * Construct a collection aspect adapter for an "unchanging" collection in
-	 * the specified subject. This is useful for a collection aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new collection.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_COLLECTION_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		// transform the subject's collection change events into VALUES collection change events
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				CollectionAspectAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				CollectionAspectAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				CollectionAspectAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionAspectAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener: " + Arrays.asList(CollectionAspectAdapter.this.collectionNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected void engageSubject_() {
-    	for (String collectionName : this.collectionNames) {
-			((Model) this.subject).addCollectionChangeListener(collectionName, this.collectionChangeListener);
-		}
-	}
-
-	@Override
-	protected void disengageSubject_() {
-    	for (String collectionName : this.collectionNames) {
-			((Model) this.subject).removeCollectionChangeListener(collectionName, this.collectionChangeListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void itemsAdded(CollectionAddEvent event) {
-		this.fireItemsAdded(event.clone(this, VALUES));
-	}
-
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		this.fireItemsRemoved(event.clone(this, VALUES));
-	}
-
-	protected void collectionCleared(CollectionClearEvent event) {
-		this.fireCollectionCleared(event.clone(this, VALUES));
-	}
-
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.fireCollectionChanged(event.clone(this, VALUES));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java
deleted file mode 100644
index 4c3d8b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to make a {@link CollectionValueModel} behave like
- * a read-only {@link ListValueModel}, sorta.
- * <p>
- * To maintain a reasonably consistent appearance to client code, we
- * keep an internal list somewhat in synch with the wrapped collection.
- * <p>
- * <strong>NB:</strong> Since we only listen to the wrapped collection when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * collection while we are listening to it, results to various methods
- * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, clients will also be listeners.
- */
-public class CollectionListValueModelAdapter<E>
-	extends AbstractListValueModel
-	implements ListValueModel<E>
-{
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<? extends E> collectionHolder;
-
-	/** A listener that forwards any events fired by the collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-	/**
-	 * Our internal list, which holds the same elements as
-	 * the wrapped collection, but keeps them in order.
-	 */
-	// we declare this an ArrayList so we can use #clone() and #ensureCapacity(int)
-	protected final ArrayList<E> list;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified collection value model.
-	 */
-	public CollectionListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		super();
-		if (collectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.collectionHolder = collectionHolder;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-		this.list = new ArrayList<E>(collectionHolder.size());
-		// postpone building the list and listening to the underlying collection
-		// until we have listeners ourselves...
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The wrapped collection has changed, forward an equivalent
-	 * list change event to our listeners.
-	 */
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				CollectionListValueModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				CollectionListValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				CollectionListValueModelAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionListValueModelAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.list);
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageModel() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-		// synch our list *after* we start listening to the collection holder,
-		// since its value might change when a listener is added
-		this.buildList();
-	}
-
-	@Override
-	protected void disengageModel() {
-		this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-		// clear out the list when we are not listening to the collection holder
-		this.list.clear();
-	}
-
-	protected void buildList() {
-		// if the new collection is empty, do nothing
-		int size = this.collectionHolder.size();
-		if (size != 0) {
-			this.buildList(size);
-		}
-	}
-
-	protected void buildList(int size) {
-		this.list.ensureCapacity(size);
-		for (E each : this.collectionHolder) {
-			this.list.add(each);
-		}
-	}
-
-	protected void itemsAdded(CollectionAddEvent event) {
-		this.addItemsToList(this.indexToAddItems(), this.getItems(event), this.list, LIST_VALUES);
-	}
-	
-	protected int indexToAddItems() {
-		return this.list.size();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		this.removeItemsFromList(this.getItems(event), this.list, LIST_VALUES);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) {
-		this.clearList(this.list, LIST_VALUES);
-	}
-	
-	/**
-	 * synchronize our internal list with the wrapped collection
-	 * and fire the appropriate events
-	 */
-	protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) {
-		int size = this.collectionHolder.size();
-		if (size == 0) {
-			if (this.list.isEmpty()) {
-				// no change
-			} else {
-				this.clearList(this.list, LIST_VALUES);
-			}
-		} else {
-			if (this.list.isEmpty()) {
-				this.buildList(size);
-				this.fireItemsAdded(LIST_VALUES, 0, this.list);
-			} else {
-				this.synchronizeList(this.buildSyncList(), this.list, LIST_VALUES);
-			}
-		}
-	}
-
-	protected Iterable<? extends E> buildSyncList() {
-		return this.collectionHolder;
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.list);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java
deleted file mode 100644
index 24d18b2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a collection value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must override:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current collection value
- * </ul>
- * Subclasses might want to override the following methods
- * to improve performance (by not recalculating the value, if possible):<ul>
- * <li>{@link #itemsAdded(CollectionAddEvent event)}
- * <li>{@link #itemsRemoved(CollectionRemoveEvent event)}
- * <li>{@link #collectionCleared(CollectionClearEvent event)}
- * <li>{@link #collectionChanged(CollectionChangeEvent event)}
- * </ul>
- */
-public abstract class CollectionPropertyValueModelAdapter<V>
-	extends AbstractPropertyValueModelAdapter<V>
-{
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<?> collectionModel;
-
-	/** A listener that allows us to synch with changes to the wrapped collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * collection value model.
-	 */
-	protected CollectionPropertyValueModelAdapter(CollectionValueModel<?> collectionModel) {
-		super();
-		this.collectionModel = collectionModel;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				CollectionPropertyValueModelAdapter.this.itemsAdded(event);
-			}		
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				CollectionPropertyValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				CollectionPropertyValueModelAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionPropertyValueModelAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the collection holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.collectionModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	/**
-	 * Stop listening to the collection holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.collectionModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsAdded(@SuppressWarnings("unused") CollectionAddEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were removed from the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsRemoved(@SuppressWarnings("unused") CollectionRemoveEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped collection holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The value of the wrapped collection holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java
deleted file mode 100644
index a791dcb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another collection value model, "lazily" listen to it, and propagate
- * its change notifications. Subclasses must implement the appropriate
- * {@link CollectionValueModel}.
- */
-public abstract class CollectionValueModelWrapper<E>
-	extends AbstractCollectionValueModel
-{
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<? extends E> collectionHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model.
-	 */
-	protected CollectionValueModelWrapper(CollectionValueModel<? extends E> collectionHolder) {
-		super();
-		this.collectionHolder = collectionHolder;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				CollectionValueModelWrapper.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				CollectionValueModelWrapper.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				CollectionValueModelWrapper.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionValueModelWrapper.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** AbstractCollectionValueModel implementation **********
-
-	/**
-	 * Start listening to the collection holder.
-	 */
-	@Override
-	protected void engageModel() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	/**
-	 * Stop listening to the collection holder.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-
-	// ********** helper methods **********
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(CollectionRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsAdded(CollectionAddEvent event);
-
-	/**
-	 * Items were removed from the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsRemoved(CollectionRemoveEvent event);
-
-	/**
-	 * The wrapped collection holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void collectionCleared(CollectionClearEvent event);
-
-	/**
-	 * The value of the wrapped collection holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void collectionChanged(CollectionChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java
deleted file mode 100644
index acedc5e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>CompositeBooleanPropertyValueModel</code> adapts a
- * {@link CollectionValueModel} holding boolean {@link PropertyValueModel}s
- * to a single boolean {@link PropertyValueModel}. The composite value is
- * determined by the {@link CompositeBooleanPropertyValueModel.Adapter} provided
- * at construction. Typically the composite will be either an AND or an OR of
- * all the boolean values.
- * <p>
- * If there are <em>no</em> boolean {@link PropertyValueModel}s, the composite
- * will return its default value; which, by default, is <code>null</code>.
- * <p>
- * <strong>NB:</strong> None of the wrapped boolean models can return a
- * <code>null</code> value or this class will throw an exception. The assumption
- * is that all the wrapped boolean models are configured with "default" values
- * that determine the model's value (TRUE or FALSE) when <code>null</code>.
- */
-public class CompositeBooleanPropertyValueModel
-	extends CompositePropertyValueModel<Boolean>
-{
-	/**
-	 * Calculation of the model's value is delegated to this adapter.
-	 */
-	protected final Adapter adapter;
-
-	/**
-	 * The default setting for the composite boolean property value model;
-	 * for when the underlying collection model is empty.
-	 * The default [default value] is <code>null</code>.
-	 */
-	private final Boolean defaultValue;
-
-
-	// ********** AND factory methods **********
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static CompositeBooleanPropertyValueModel and(PropertyValueModel<Boolean>... array) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, array);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static CompositeBooleanPropertyValueModel and(Boolean defaultValue, PropertyValueModel<Boolean>... array) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, array);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel and(Collection<E> collection) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, collection);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel and(Boolean defaultValue, Collection<E> collection) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, collection);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static CompositeBooleanPropertyValueModel and(CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, collectionModel);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite AND of the
-	 * specified boolean property value models; i.e. the model's value is true
-	 * if all the contained models are true, otherwise its value is false.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static CompositeBooleanPropertyValueModel and(Boolean defaultValue, CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, collectionModel);
-	}
-
-
-	// ********** OR factory methods **********
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static CompositeBooleanPropertyValueModel or(PropertyValueModel<Boolean>... array) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, array);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static CompositeBooleanPropertyValueModel or(Boolean defaultValue, PropertyValueModel<Boolean>... array) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, array);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel or(Collection<E> collection) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, collection);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel or(Boolean defaultValue, Collection<E> collection) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, collection);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public static CompositeBooleanPropertyValueModel or(CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, collectionModel);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite OR of the
-	 * specified boolean property value models; i.e. the model's value is false
-	 * if all the contained models are false, otherwise its value is true.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public static CompositeBooleanPropertyValueModel or(Boolean defaultValue, CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, collectionModel);
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public CompositeBooleanPropertyValueModel(Adapter adapter, PropertyValueModel<Boolean>... array) {
-		this(adapter, null, array);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, PropertyValueModel<Boolean>... array) {
-		super(array);
-		this.adapter = adapter;
-		this.defaultValue = defaultValue;
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel(Adapter adapter, Collection<E> collection) {
-		this(adapter, null, collection);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public <E extends PropertyValueModel<Boolean>> CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, Collection<E> collection) {
-		super(collection);
-		this.adapter = adapter;
-		this.defaultValue = defaultValue;
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * The model's default value, when it contains no nested models, is
-	 * <code>null</code>.
-	 */
-	public CompositeBooleanPropertyValueModel(Adapter adapter, CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		this(adapter, null, collectionModel);
-	}
-
-	/**
-	 * Construct a boolean property value model that is a composite of the specified
-	 * boolean property value models, as defined by the specified adapter.
-	 * When the model contains no nested models, its value will be the
-	 * specified default.
-	 */
-	public CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, CollectionValueModel<? extends PropertyValueModel<Boolean>> collectionModel) {
-		super(collectionModel);
-		this.adapter = adapter;
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** implementation **********
-
-	/**
-	 * Return true if all the contained booleans are true; otherwise return
-	 * false.
-	 */
-	@Override
-	protected Boolean buildValue() {
-		return (this.collectionModel.size() == 0) ? this.defaultValue : this.buildValue_();
-	}
-
-	protected Boolean buildValue_() {
-		return this.adapter.buildValue(this.getBooleans());
-	}
-
-	protected Iterable<Boolean> getBooleans() {
-		return new TransformationIterable<PropertyValueModel<Boolean>, Boolean>(this.getCollectionModel()) {
-			@Override
-			protected Boolean transform(PropertyValueModel<Boolean> booleanModel) {
-				return booleanModel.getValue();
-			}
-		};
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	protected CollectionValueModel<? extends PropertyValueModel<Boolean>> getCollectionModel() {
-		return (CollectionValueModel<? extends PropertyValueModel<Boolean>>) super.getCollectionModel();
-	}
-
-
-	// ********** adapter **********
-
-	/**
-	 * This adapter allows the {@link CompositeBooleanPropertyValueModel} to be
-	 * pluggable.
-	 */
-	public interface Adapter {
-		/**
-		 * Return the composite boolean value of the specified collection
-		 * of boolean models.
-		 */
-		Boolean buildValue(Iterable<Boolean> booleans);
-	}
-
-	/**
-	 * Return true if all the booleans are true; otherwise return false.
-	 */
-	public static final Adapter AND_ADAPTER = new Adapter() {
-		public Boolean buildValue(Iterable<Boolean> booleans) {
-			for (Boolean b : booleans) {
-				if ( ! b.booleanValue()) {
-					return Boolean.FALSE;
-				}
-			}
-			return Boolean.TRUE;
-		}
-		@Override
-		public String toString() {
-			return "AND_ADAPTER"; //$NON-NLS-1$
-		}
-	};
-
-	/**
-	 * Return false if all the booleans are false; otherwise return true.
-	 */
-	public static final Adapter OR_ADAPTER = new Adapter() {
-		public Boolean buildValue(Iterable<Boolean> booleans) {
-			for (Boolean b : booleans) {
-				if (b.booleanValue()) {
-					return Boolean.TRUE;
-				}
-			}
-			return Boolean.FALSE;
-		}
-		@Override
-		public String toString() {
-			return "OR_ADAPTER"; //$NON-NLS-1$
-		}
-	};
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java
deleted file mode 100644
index 72f16a3..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.NullList;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * A <code>CompositeCollectionValueModel</code> wraps another
- * {@link CollectionValueModel} and uses a {@link Transformer}
- * to convert each item in the wrapped collection to yet another
- * {@link CollectionValueModel}. This composite collection contains
- * the combined items from all these component collections.
- * <p>
- * <strong>NB:</strong> The wrapped collection must be an "identity set" that does not
- * contain the same item twice or this class will throw an exception.
- * <p>
- * Terminology:<ul>
- * <li><em>sources</em> - the items in the wrapped collection value model; these
- *    are converted into component CVMs by the transformer
- * <li><em>component CVMs</em> - the component collection value models that are combined
- *    by this composite collection value model
- * <li><em>items</em> - the items held by the component CVMs
- * </ul>
- */
-public class CompositeCollectionValueModel<E1, E2>
-	extends CollectionValueModelWrapper<E1>
-	implements CollectionValueModel<E2>
-{
-	/**
-	 * This is the (optional) user-supplied object that transforms
-	 * the items in the wrapped collection to collection value models.
-	 */
-	private final Transformer<E1, CollectionValueModel<E2>> transformer;
-
-	/**
-	 * Cache of the component collection value models that
-	 * were generated by the transformer; keyed by the item
-	 * in the wrapped collection that was passed to the transformer.
-	 */
-	private final IdentityHashMap<E1, CollectionValueModel<E2>> componentCVMs =
-			new IdentityHashMap<E1, CollectionValueModel<E2>>();
-
-	/**
-	 * Cache of the collections corresponding to the component
-	 * collection value models above; keyed by the component
-	 * collection value models.
-	 * Use {@link ArrayList}s so we can use {@link ArrayList}-specific methods
-	 * (e.g. {@link ArrayList#clone()} and {@link ArrayList#ensureCapacity(int)}).
-	 */
-	private final IdentityHashMap<CollectionValueModel<E2>, ArrayList<E2>> collections =
-			new IdentityHashMap<CollectionValueModel<E2>, ArrayList<E2>>();
-
-	/** Listener that listens to all the component collection value models. */
-	private final CollectionChangeListener componentCVMListener;
-
-	/** Cache the size of the composite collection. */
-	private int size;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model. Use this constructor if<ul>
-	 * <li> the wrapped collection value model already contains other
-	 *       collection value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeCollectionValueModel(CollectionValueModel<? extends E1> collectionHolder) {
-		this(collectionHolder, Transformer.Null.<E1, CollectionValueModel<E2>>instance());
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and transformer.
-	 */
-	public CompositeCollectionValueModel(CollectionValueModel<? extends E1> collectionHolder, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		super(collectionHolder);
-		this.transformer = transformer;
-		this.componentCVMListener = this.buildComponentListener();
-		this.size = 0;
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model. Use this constructor if<ul>
-	 * <li> the wrapped collection value model already contains other
-	 *       collection value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeCollectionValueModel(ListValueModel<? extends E1> listHolder) {
-		this(new ListCollectionValueModelAdapter<E1>(listHolder));
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and transformer.
-	 */
-	public CompositeCollectionValueModel(ListValueModel<? extends E1> listHolder, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		this(new ListCollectionValueModelAdapter<E1>(listHolder), transformer);
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection. Use this constructor if<ul>
-	 * <li> the wrapped collection value model already contains other
-	 *       collection value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeCollectionValueModel(Collection<? extends E1> collection) {
-		this(new StaticCollectionValueModel<E1>(collection));
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection and transformer.
-	 */
-	public CompositeCollectionValueModel(Collection<? extends E1> collection, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		this(new StaticCollectionValueModel<E1>(collection), transformer);
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection. Use this constructor if<ul>
-	 * <li> the wrapped collection value model already contains other
-	 *       collection value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeCollectionValueModel(E1... collection) {
-		this(new StaticCollectionValueModel<E1>(collection));
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection and transformer.
-	 */
-	public CompositeCollectionValueModel(E1[] collection, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		this(new StaticCollectionValueModel<E1>(collection), transformer);
-	}
-
-
-	// ********** initialization **********
-
-	protected CollectionChangeListener buildComponentListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				CompositeCollectionValueModel.this.componentItemsAdded(event);
-			}		
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				CompositeCollectionValueModel.this.componentItemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				CompositeCollectionValueModel.this.componentCollectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CompositeCollectionValueModel.this.componentCollectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "component listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E2> iterator() {
-		return new CompositeIterator<E2>(this.buildCollectionsIterators());
-	}
-
-	protected Iterator<Iterator<E2>> buildCollectionsIterators() {
-		return new TransformationIterator<ArrayList<E2>, Iterator<E2>>(this.collections.values().iterator()) {
-			@Override
-			protected Iterator<E2> transform(ArrayList<E2> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	public int size() {
-		return this.size;
-	}
-
-
-	// ********** CollectionValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the wrapped collection,
-		// since its value might change when a listener is added
-		this.addAllComponentSources();
-	}
-
-	/**
-	 * Transform all the sources to collection value models
-	 * and add their items to our cache, with no event notification.
-	 */
-	protected void addAllComponentSources() {
-		for (E1 source : this.collectionHolder) {
-			this.addComponentSource(source, NullList.<E2>instance());
-		}
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// stop listening to the components...
-		for (CollectionValueModel<E2> componentCVM : this.componentCVMs.values()) {
-			componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener);
-		}
-		// ...and clear the cache
-		this.componentCVMs.clear();
-		this.collections.clear();
-		this.size = 0;
-	}
-
-	/**
-	 * Some component sources were added;
-	 * add their corresponding items to our cache.
-	 */
-	@Override
-	protected void itemsAdded(CollectionAddEvent event) {
-		ArrayList<E2> addedItems = new ArrayList<E2>();
-		for (E1 item : this.getItems(event)) {
-			this.addComponentSource(item, addedItems);
-		}
-		this.fireItemsAdded(VALUES, addedItems);
-	}
-
-	/**
-	 * Transform the specified source to a collection value model
-	 * and add its items to our cache and the "collecting parameter".
-	 */
-	protected void addComponentSource(E1 source, List<E2> addedItems) {
-		CollectionValueModel<E2> componentCVM = this.transform(source);
-		if (this.componentCVMs.put(source, componentCVM) != null) {
-			throw new IllegalStateException("duplicate component: " + source); //$NON-NLS-1$
-		}
-		componentCVM.addCollectionChangeListener(VALUES, this.componentCVMListener);
-		ArrayList<E2> componentCollection = new ArrayList<E2>(componentCVM.size());
-		if (this.collections.put(componentCVM, componentCollection) != null) {
-			throw new IllegalStateException("duplicate collection: " + source); //$NON-NLS-1$
-		}
-		this.addComponentItems(componentCVM, componentCollection);
-		addedItems.addAll(componentCollection);
-	}
-
-	/**
-	 * Add the items in the specified component CVM to the specified component
-	 * collection.
-	 */
-	protected void addComponentItems(CollectionValueModel<E2> componentCVM, ArrayList<E2> componentCollection) {
-		int itemsSize = componentCVM.size();
-		this.size += itemsSize;
-		componentCollection.ensureCapacity(componentCollection.size() + itemsSize);
-		CollectionTools.addAll(componentCollection, componentCVM);
-	}
-
-	/**
-	 * Some component sources were removed;
-	 * remove their corresponding items from our cache.
-	 */
-	@Override
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		ArrayList<E2> removedItems = new ArrayList<E2>();
-		for (E1 item : this.getItems(event)) {
-			this.removeComponentSource(item, removedItems);
-		}
-		this.fireItemsRemoved(VALUES, removedItems);
-	}
-
-	/**
-	 * Remove the items corresponding to the specified source
-	 * from our cache.
-	 */
-	protected void removeComponentSource(E1 source, List<E2> removedItems) {
-		CollectionValueModel<E2> componentCVM = this.componentCVMs.remove(source);
-		if (componentCVM == null) {
-			throw new IllegalStateException("missing component: " + source); //$NON-NLS-1$
-		}
-		componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener);
-		ArrayList<E2> componentCollection = this.collections.remove(componentCVM);
-		if (componentCollection == null) {
-			throw new IllegalStateException("missing collection: " + source); //$NON-NLS-1$
-		}
-		removedItems.addAll(componentCollection);
-		this.removeComponentItems(componentCollection);
-	}
-
-	/**
-	 * Update our size and collection cache.
-	 */
-	protected void removeComponentItems(ArrayList<E2> componentCollection) {
-		this.size -= componentCollection.size();
-		componentCollection.clear();
-	}
-
-	/**
-	 * The component sources cleared;
-	 * clear our cache.
-	 */
-	@Override
-	protected void collectionCleared(CollectionClearEvent event) {
-		this.removeAllComponentSources();
-		this.fireCollectionCleared(VALUES);
-	}
-
-	protected void removeAllComponentSources() {
-		// copy the keys so we don't eat our own tail
-		ArrayList<E1> copy = new ArrayList<E1>(this.componentCVMs.keySet());
-		for (E1 source : copy) {
-			this.removeComponentSource(source, NullList.<E2>instance());
-		}
-	}
-
-	/**
-	 * The component sources changed;
-	 * rebuild our cache.
-	 */
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.removeAllComponentSources();
-		this.addAllComponentSources();
-		this.fireCollectionChanged(VALUES, CollectionTools.collection(this.iterator()));
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Transform the specified object into a collection value model.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Transformer}.
-	 */
-	protected CollectionValueModel<E2> transform(E1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * One of the component collections had items added;
-	 * synchronize our caches.
-	 */
-	protected void componentItemsAdded(CollectionAddEvent event) {
-		int itemsSize = event.getItemsSize();
-		this.size += itemsSize;
-
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		componentCollection.ensureCapacity(componentCollection.size() + itemsSize);
-
-		this.addItemsToCollection(this.getComponentItems(event), componentCollection, VALUES);
-	}
-
-	/**
-	 * One of the component collections had items removed;
-	 * synchronize our caches.
-	 */
-	protected void componentItemsRemoved(CollectionRemoveEvent event) {
-		this.size -= event.getItemsSize();
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		this.removeItemsFromCollection(this.getComponentItems(event), componentCollection, VALUES);
-	}
-
-	/**
-	 * One of the component collections was cleared;
-	 * synchronize our caches by clearing out the appropriate
-	 * collection.
-	 */
-	protected void componentCollectionCleared(CollectionClearEvent event) {
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		ArrayList<E2> removedItems = new ArrayList<E2>(componentCollection);
-		this.removeComponentItems(componentCollection);
-		this.fireItemsRemoved(VALUES, removedItems);
-	}
-
-	/**
-	 * One of the component collections changed;
-	 * synchronize our caches by clearing out the appropriate
-	 * collection and then rebuilding it.
-	 */
-	protected void componentCollectionChanged(CollectionChangeEvent event) {
-		CollectionValueModel<E2> componentCVM = this.componentCVM(event);
-		ArrayList<E2> componentCollection = this.collections.get(componentCVM);
-		this.removeComponentItems(componentCollection);
-		this.addComponentItems(componentCVM, componentCollection);
-		this.fireCollectionChanged(VALUES, CollectionTools.collection(this.iterator()));
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E2> getComponentItems(CollectionAddEvent event) {
-		return (Iterable<E2>) event.getItems();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E2> getComponentItems(CollectionRemoveEvent event) {
-		return (Iterable<E2>) event.getItems();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected CollectionValueModel<E2> componentCVM(CollectionEvent event) {
-		return (CollectionValueModel<E2>) event.getSource();
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java
deleted file mode 100644
index 3b017b0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java
+++ /dev/null
@@ -1,683 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * A <code>CompositeListValueModel</code> wraps another
- * {@link ListValueModel} and uses a {@link Transformer}
- * to convert each item in the wrapped list to yet another
- * {@link ListValueModel}. This composite list contains
- * the combined items from all these component lists.
- * <p>
- * Terminology:<ul>
- * <li><em>sources</em> - the items in the wrapped list value model; these
- *    are converted into component LVMs by the transformer
- * <li><em>component LVMs</em> - the component list value models that are combined
- *    by this composite list value model
- * <li><em>items</em> - the items held by the component LVMs
- * </ul>
- */
-public class CompositeListValueModel<E1, E2>
-	extends ListValueModelWrapper<E1>
-	implements ListValueModel<E2>
-{
-	/**
-	 * This is the (optional) user-supplied object that transforms
-	 * the items in the wrapped list to list value models.
-	 */
-	private final Transformer<E1, ListValueModel<E2>> transformer;
-
-	/**
-	 * Cache of the sources, component LVMs, lists.
-	 */
-	private final ArrayList<Info> infoList = new ArrayList<Info>();
-	protected class Info {
-		// the object passed to the transformer
-		final E1 source;
-		// the list value model generated by the transformer
-		final ListValueModel<E2> componentLVM;
-		// cache of the items held by the component LVM
-		final ArrayList<E2> items;
-		// the component LVM's beginning index within the composite LVM
-		int begin;
-		protected Info(E1 source, ListValueModel<E2> componentLVM, ArrayList<E2> items, int begin) {
-			super();
-			this.source = source;
-			this.componentLVM = componentLVM;
-			this.items = items;
-			this.begin = begin;
-		}
-	}
-
-	/** Listener that listens to all the component list value models. */
-	private final ListChangeListener componentLVMListener;
-
-	/** Cache the size of the composite list. */
-	private int size;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model. Use this constructor if<ul>
-	 * <li> the wrapped list value model already contains other
-	 *       list value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeListValueModel(ListValueModel<? extends E1> listHolder) {
-		this(listHolder, Transformer.Null.<E1, ListValueModel<E2>>instance());
-	}
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model and transformer.
-	 */
-	public CompositeListValueModel(ListValueModel<? extends E1> listHolder, Transformer<E1, ListValueModel<E2>> transformer) {
-		super(listHolder);
-		this.transformer = transformer;
-		this.componentLVMListener = this.buildComponentLVMListener();
-		this.size = 0;
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list. Use this constructor if<ul>
-	 * <li> the wrapped list value model already contains other
-	 *       list value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeListValueModel(List<? extends E1> list) {
-		this(new StaticListValueModel<E1>(list));
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list and transformer.
-	 */
-	public CompositeListValueModel(List<? extends E1> list, Transformer<E1, ListValueModel<E2>> transformer) {
-		this(new StaticListValueModel<E1>(list), transformer);
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list. Use this constructor if<ul>
-	 * <li> the wrapped list value model already contains other
-	 *       list value models, or
-	 * <li> you want to override {@link #transform(E1)}
-	 *       instead of building a {@link Transformer}
-	 * </ul>
-	 */
-	public CompositeListValueModel(E1... list) {
-		this(new StaticListValueModel<E1>(list));
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list and transformer.
-	 */
-	public CompositeListValueModel(E1[] list, Transformer<E1, ListValueModel<E2>> transformer) {
-		this(new StaticListValueModel<E1>(list), transformer);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildComponentLVMListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				CompositeListValueModel.this.componentItemsAdded(event);
-			}		
-			public void itemsRemoved(ListRemoveEvent event) {
-				CompositeListValueModel.this.componentItemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				CompositeListValueModel.this.componentItemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				CompositeListValueModel.this.componentItemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				CompositeListValueModel.this.componentListCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				CompositeListValueModel.this.componentListChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "component LVM listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public E2 get(int index) {
-		if ((index < 0) || (index >= this.size)) {
-			throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + this.size); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		// move backwards through the info list
-		for (int i = this.infoList.size(); i-- > 0; ) {
-			Info info = this.infoList.get(i);
-			if (index >= info.begin) {
-				return info.items.get(index - info.begin);
-			}
-		}
-		throw new IllegalStateException();  // something is wack
-	}
-
-	public Iterator<E2> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E2> listIterator() {
-		return new ReadOnlyCompositeListIterator<E2>(this.buildListsIterators());
-	}
-
-	protected ListIterator<ListIterator<E2>> buildListsIterators() {
-		return new TransformationListIterator<Info, ListIterator<E2>>(this.infoList.listIterator()) {
-			@Override
-			protected ListIterator<E2> transform(Info info) {
-				return info.items.listIterator();
-			}
-		};
-	}
-
-	public int size() {
-		return this.size;
-	}
-
-	public Object[] toArray() {
-		return ArrayTools.array(this.listIterator(), this.size);
-	}
-
-
-	// ********** ListValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the wrapped list,
-		// since its value might change when a listener is added
-		this.addComponentSources(0, this.listHolder, this.listHolder.size(), false);  // false = do not fire event
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// stop listening to the component LVMs...
-		for (Info info : this.infoList) {
-			info.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener);
-		}
-		// ...and clear the cache
-		this.infoList.clear();
-		this.size = 0;
-	}
-
-	/**
-	 * Some component sources were added; update our cache.
-	 */
-	@Override
-	protected void itemsAdded(ListAddEvent event) {
-		this.addComponentSources(event.getIndex(), this.getItems(event), event.getItemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Add infos corresponding to the specified sources to our cache.
-	 * Fire the appropriate event if requested.
-	 */
-	protected void addComponentSources(int addedSourcesIndex, Iterable<? extends E1> addedSources, int addedSourcesSize, boolean fireEvent) {
-		ArrayList<Info> newInfoList = new ArrayList<Info>(addedSourcesSize);
-		// the 'items' are either tacked on to the end or
-		// at the 'begin' index of the first 'info' that is being pushed back
-		int newItemsIndex = (addedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(addedSourcesIndex).begin;
-
-		int begin = newItemsIndex;
-		for (E1 source : addedSources) {
-			ListValueModel<E2> componentLVM = this.transform(source);
-			componentLVM.addListChangeListener(LIST_VALUES, this.componentLVMListener);
-			ArrayList<E2> items = new ArrayList<E2>(componentLVM.size());
-			CollectionTools.addAll(items, componentLVM.listIterator());
-			newInfoList.add(new Info(source, componentLVM, items, begin));
-			begin += items.size();
-		}
-		this.infoList.addAll(addedSourcesIndex, newInfoList);
-		int newItemsSize = begin - newItemsIndex;
-		this.size += newItemsSize;
-
-		// bump the 'begin' index for all the infos that were pushed back by the insert
-		int movedInfosIndex = addedSourcesIndex + addedSourcesSize;
-		for (int i = movedInfosIndex; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += newItemsSize;
-		}
-
-		if (fireEvent) {
-			ArrayList<E2> newItems = new ArrayList<E2>(newItemsSize);
-			for (int i = addedSourcesIndex; i < movedInfosIndex; i++) {
-				newItems.addAll(this.infoList.get(i).items);
-			}
-			this.fireItemsAdded(LIST_VALUES, newItemsIndex, newItems);
-		}
-	}
-
-	/**
-	 * Some component sources were removed; update our cache.
-	 */
-	@Override
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.removeComponentSources(event.getIndex(), event.getItemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Remove the infos corresponding to the specified sources from our cache.
-	 */
-	protected void removeComponentSources(int removedSourcesIndex, int removedSourcesSize, boolean fireEvent) {
-		int removedItemsIndex = this.infoList.get(removedSourcesIndex).begin;
-		int movedSourcesIndex = removedSourcesIndex + removedSourcesSize;
-		int movedItemsIndex = (movedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(movedSourcesIndex).begin;
-		int removedItemsSize = movedItemsIndex - removedItemsIndex;
-		this.size -= removedItemsSize;
-
-		List<Info> subList = this.infoList.subList(removedSourcesIndex, removedSourcesIndex + removedSourcesSize);
-		ArrayList<Info> removedInfoList = new ArrayList<Info>(subList);  // make a copy
-		subList.clear();
-
-		// decrement the 'begin' index for all the infos that were moved forward by the deletes
-		for (int i = removedSourcesIndex; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-
-		for (Info removedInfo : removedInfoList) {
-			removedInfo.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener);
-		}
-
-		if (fireEvent) {
-			ArrayList<E2> removedItems = new ArrayList<E2>(removedItemsSize);
-			for (Info removedInfo : removedInfoList) {
-				removedItems.addAll(removedInfo.items);
-			}
-			this.fireItemsRemoved(LIST_VALUES, removedItemsIndex, removedItems);
-		}
-	}
-
-	/**
-	 * Some component sources were replaced; update our cache.
-	 */
-	@Override
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.replaceComponentSources(event.getIndex(), this.getNewItems(event), event.getItemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Replaced component sources will not (typically) map to a set of replaced
-	 * items, so we remove and add the corresponding lists of items, resulting in
-	 * two events.
-	 */
-	protected void replaceComponentSources(int replacedSourcesIndex, Iterable<? extends E1> newSources, int replacedSourcesSize, boolean fireEvent) {
-		this.removeComponentSources(replacedSourcesIndex, replacedSourcesSize, fireEvent);
-		this.addComponentSources(replacedSourcesIndex, newSources, replacedSourcesSize, fireEvent);
-	}
-
-	/**
-	 * Some component sources were moved; update our cache.
-	 */
-	@Override
-	protected void itemsMoved(ListMoveEvent event) {
-		this.moveComponentSources(event.getTargetIndex(), event.getSourceIndex(), event.getLength(), true);  // true = fire event
-	}
-
-	protected void moveComponentSources(int targetSourcesIndex, int sourceSourcesIndex, int movedSourcesLength, boolean fireEvent) {
-		int sourceItemsIndex = this.infoList.get(sourceSourcesIndex).begin;
-
-		int nextSourceSourceIndex = sourceSourcesIndex + movedSourcesLength;
-		int nextSourceItemIndex = (nextSourceSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextSourceSourceIndex).begin;
-		int moveItemsLength = nextSourceItemIndex - sourceItemsIndex;
-
-		int targetItemsIndex = -1;
-		if (sourceSourcesIndex > targetSourcesIndex) {
-			// move from high to low index
-			targetItemsIndex = this.infoList.get(targetSourcesIndex).begin;
-		} else {
-			// move from low to high index (higher items move down during move)
-			int nextTargetSourceIndex = targetSourcesIndex + movedSourcesLength;
-			targetItemsIndex = (nextTargetSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextTargetSourceIndex).begin;
-			targetItemsIndex = targetItemsIndex - moveItemsLength;
-		}
-
-		CollectionTools.move(this.infoList, targetSourcesIndex, sourceSourcesIndex, movedSourcesLength);
-
-		// update the 'begin' indexes of all the affected 'infos'
-		int min = Math.min(targetSourcesIndex, sourceSourcesIndex);
-		int max = Math.max(targetSourcesIndex, sourceSourcesIndex) + movedSourcesLength;
-		int begin = Math.min(targetItemsIndex, sourceItemsIndex);
-		for (int i = min; i < max; i++) {
-			Info info = this.infoList.get(i);
-			info.begin = begin;
-			begin += info.componentLVM.size();
-		}
-
-		if (fireEvent) {
-			this.fireItemsMoved(LIST_VALUES, targetItemsIndex, sourceItemsIndex, moveItemsLength);
-		}
-	}
-
-	/**
-	 * The component sources were cleared; clear our cache.
-	 */
-	@Override
-	protected void listCleared(ListClearEvent event) {
-		this.clearComponentSources();
-	}
-
-	protected void clearComponentSources() {
-		this.removeComponentSources(0, this.infoList.size(), false);  // false = do not fire event
-		this.fireListCleared(LIST_VALUES);
-	}
-
-	/**
-	 * The component sources changed; rebuild our cache.
-	 */
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		int newSize = this.listHolder.size();
-		if (newSize == 0) {
-			this.clearComponentSources();
-			return;
-		}
-
-		int oldSize = this.infoList.size();
-		if (oldSize == 0) {
-			this.addComponentSources(0, this.listHolder, newSize, true);  // true = fire event
-			return;
-		}
-
-		int min = Math.min(newSize, oldSize);
-		// handle replaced sources individually so we don't fire events for unchanged sources
-		for (int i = 0; i < min; i++) {
-			E1 newSource = this.listHolder.get(i);
-			E1 oldSource = this.infoList.get(i).source;
-			if (this.valuesAreDifferent(newSource, oldSource)) {
-				this.replaceComponentSources(i, new SingleElementIterable<E1>(newSource), 1, true);  // true = fire event
-			}
-		}
-
-		if (newSize == oldSize) {
-			return;
-		}
-
-		if (newSize < oldSize) {
-			this.removeComponentSources(min, oldSize - newSize, true);  // true = fire event
-			return;
-		}
-
-		// newSize > oldSize
-		this.addComponentSources(min, this.buildSubListHolder(min), newSize - oldSize, true);  // true = fire event
-	}
-
-	protected Iterable<? extends E1> buildSubListHolder(int fromIndex) {
-		int listHolderSize = this.listHolder.size();
-		return CollectionTools.list(this.listHolder, listHolderSize).subList(fromIndex, listHolderSize);
-	}
-
-	protected Iterable<? extends E1> buildSubListHolder(int fromIndex, int toIndex) {
-		int listHolderSize = this.listHolder.size();
-		return ((fromIndex == 0) && (toIndex == listHolderSize)) ?
-				this.listHolder :
-				CollectionTools.list(this.listHolder, listHolderSize).subList(fromIndex, toIndex);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Transform the specified object into a list value model.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Transformer}.
-	 */
-	protected ListValueModel<E2> transform(E1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * Return the index of the specified component LVM.
-	 */
-	protected int indexOf(ListValueModel<E2> componentLVM) {
-		for (int i = 0; i < this.infoList.size(); i++) {
-			if (this.infoList.get(i).componentLVM == componentLVM) {
-				return i;
-			}
-		}
-		throw new IllegalArgumentException("invalid component LVM: " + componentLVM); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the index of the specified event's component LVM.
-	 */
-	protected int indexFor(ListEvent event) {
-		return this.indexOf(this.getComponentLVM(event));
-	}
-
-	/**
-	 * Items were added to one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsAdded(ListAddEvent event) {
-		int componentLVMIndex = this.indexFor(event);
-		this.addComponentItems(componentLVMIndex, this.infoList.get(componentLVMIndex), event.getIndex(), this.getComponentItems(event), event.getItemsSize());
-	}
-
-	protected void addComponentItems(int componentLVMIndex, Info info, int addedItemsIndex, Iterable<E2> addedItems, int addedItemsSize) {
-		// update the affected 'begin' indices
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += addedItemsSize;
-		}
-		this.size += addedItemsSize;
-
-		// synchronize the cached list
-		CollectionTools.addAll(info.items, addedItemsIndex, addedItems, addedItemsSize);
-
-		// translate the event
-		this.fireItemsAdded(LIST_VALUES, info.begin + addedItemsIndex, info.items.subList(addedItemsIndex, addedItemsIndex + addedItemsSize));
-	}
-
-	/**
-	 * Items were removed from one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsRemoved(ListRemoveEvent event) {
-		// update the affected 'begin' indices
-		int componentLVMIndex = this.indexFor(event);
-		int removedItemsSize = event.getItemsSize();
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-		this.size -= removedItemsSize;
-
-		// synchronize the cached list
-		Info info = this.infoList.get(componentLVMIndex);
-		int itemIndex = event.getIndex();
-		info.items.subList(itemIndex, itemIndex + event.getItemsSize()).clear();
-
-		// translate the event
-		this.fireItemsRemoved(event.clone(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * Items were replaced in one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsReplaced(ListReplaceEvent event) {
-		// no changes to the 'begin' indices or size
-
-		// synchronize the cached list
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-		int i = event.getIndex();
-		for (E2 item : this.getComponentItems(event)) {
-			info.items.set(i++, item);
-		}
-
-		// translate the event
-		this.fireItemsReplaced(event.clone(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * Items were moved in one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsMoved(ListMoveEvent event) {
-		// no changes to the 'begin' indices or size
-
-		// synchronize the cached list
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-		CollectionTools.move(info.items, event.getTargetIndex(), event.getSourceIndex(), event.getLength());
-
-		// translate the event
-		this.fireItemsMoved(event.clone(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * One of the component lists was cleared;
-	 * synchronize our cache.
-	 */
-	protected void componentListCleared(ListClearEvent event) {
-		int componentLVMIndex = this.indexFor(event);
-		this.clearComponentList(componentLVMIndex, this.infoList.get(componentLVMIndex));
-	}
-
-	protected void clearComponentList(int componentLVMIndex, Info info) {
-		// update the affected 'begin' indices
-		int removedItemsSize = info.items.size();
-		if (removedItemsSize == 0) {
-			return;
-		}
-
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-		this.size -= removedItemsSize;
-
-		// synchronize the cached list
-		ArrayList<E2> items = new ArrayList<E2>(info.items);  // make a copy
-		info.items.clear();
-
-		// translate the event
-		this.fireItemsRemoved(LIST_VALUES, info.begin, items);
-	}
-
-	/**
-	 * One of the component lists changed;
-	 * synchronize our cache by synchronizing the appropriate
-	 * list and firing the appropriate events.
-	 */
-	protected void componentListChanged(ListChangeEvent event) {
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-
-		int newItemsSize = info.componentLVM.size();
-		if (newItemsSize == 0) {
-			this.clearComponentList(componentLVMIndex, info);
-			return;
-		}
-
-		int oldItemsSize = info.items.size();
-		if (oldItemsSize == 0) {
-			this.addComponentItems(componentLVMIndex, info, 0, info.componentLVM, newItemsSize);
-			return;
-		}
-
-		int min = Math.min(newItemsSize, oldItemsSize);
-		// handle replaced items individually so we don't fire events for unchanged items
-		for (int i = 0; i < min; i++) {
-			E2 newItem = info.componentLVM.get(i);
-			E2 oldItem = info.items.set(i, newItem);
-			this.fireItemReplaced(LIST_VALUES, info.begin + i, newItem, oldItem);
-		}
-
-		int delta = newItemsSize - oldItemsSize;
-		if (delta == 0) {  // newItemsSize == oldItemsSize
-			return;
-		}
-
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += delta;
-		}
-		this.size += delta;
-
-		if (delta < 0) {  // newItemsSize < oldItemsSize
-			List<E2> subList = info.items.subList(newItemsSize, oldItemsSize);
-			ArrayList<E2> removedItems = new ArrayList<E2>(subList);  // make a copy
-			subList.clear();
-			this.fireItemsRemoved(LIST_VALUES, info.begin + newItemsSize, removedItems);
-			return;
-		}
-
-		// newItemsSize > oldItemsSize
-		ArrayList<E2> addedItems = new ArrayList<E2>(delta);
-		for (int i = oldItemsSize; i < newItemsSize; i++) {
-			addedItems.add(info.componentLVM.get(i));
-		}
-		info.items.addAll(addedItems);
-		this.fireItemsAdded(LIST_VALUES, info.begin + oldItemsSize, addedItems);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E2> getComponentItems(ListAddEvent event) {
-		return (Iterable<E2>) event.getItems();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E2> getComponentItems(ListReplaceEvent event) {
-		return (Iterable<E2>) event.getNewItems();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListValueModel<E2> getComponentLVM(ListEvent event) {
-		return (ListValueModel<E2>) event.getSource();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java
deleted file mode 100644
index 0654c06..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.IdentityHashBag;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>CompositePropertyValueModel</code> adapts a
- * {@link CollectionValueModel} holding other {@link PropertyValueModel}s
- * to a single {@link PropertyValueModel}.
- * <p>
- * Subclasses must implement:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     component values
- * </ul>
- * <strong>NB:</strong> The wrapped collection must not contain any duplicates
- * or this class will throw an exception.
- */
-public abstract class CompositePropertyValueModel<V>
-	extends CollectionPropertyValueModelAdapter<V>
-{
-	/**
-	 * Cache the component property value models so we can stop listening to
-	 * them when they are removed from the collection value model.
-	 */
-	protected final IdentityHashBag<PropertyValueModel<?>> componentPVMs = 
-			new IdentityHashBag<PropertyValueModel<?>>();
-
-	/**
-	 * Listen to every property value model in the collection value model.
-	 * If one changes, we need to re-calculate our value.
-	 */
-	protected final PropertyChangeListener propertyChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a property value model that is a composite of the specified
-	 * property value models.
-	 */
-	public CompositePropertyValueModel(PropertyValueModel<?>... collection) {
-		this(Arrays.asList(collection));
-	}
-
-	/**
-	 * Construct a property value model that is a composite of the specified
-	 * property value models.
-	 */
-	public <E extends PropertyValueModel<?>> CompositePropertyValueModel(Collection<E> collection) {
-		this(new StaticCollectionValueModel<E>(collection));
-	}
-
-	/**
-	 * Construct a property value model that is a composite of the specified
-	 * property value models.
-	 */
-	public CompositePropertyValueModel(CollectionValueModel<? extends PropertyValueModel<?>> collectionModel) {
-		super(collectionModel);
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				CompositePropertyValueModel.this.propertyChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "property change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Subclasses can override this method if the event can be used to improve
-	 * the performance of building a new value (e.g. some property changes may
-	 * not necessitate the re-calculation of the value).
-	 */
-	protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) {
-		this.propertyChanged();
-	}
-
-
-	// ********** CollectionPropertyValueModelAdapter overrides **********
-
-	@Override
-	protected void engageModel_() {
-		super.engageModel_();
-		this.addComponentPVMs(this.getCollectionModel());
-	}
-
-	protected <E extends PropertyValueModel<?>> void addComponentPVMs(Iterable<E> pvms) {
-		for (PropertyValueModel<?> each : pvms) {
-			this.componentPVMs.add(each);
-			each.addPropertyChangeListener(VALUE, this.propertyChangeListener);
-		}
-	}
-
-	@Override
-	protected void disengageModel_() {
-		this.removeComponentPVMs(this.getCollectionModel());
-		super.disengageModel_();
-	}
-
-	protected <E extends PropertyValueModel<?>> void removeComponentPVMs(Iterable<E> pvms) {
-		for (PropertyValueModel<?> each : pvms) {
-			each.removePropertyChangeListener(VALUE, this.propertyChangeListener);
-			this.componentPVMs.remove(each);
-		}
-	}
-
-	@Override
-	protected void itemsAdded(CollectionAddEvent event) {
-		this.addComponentPVMs(this.getItems(event));
-		super.itemsAdded(event);
-	}
-
-	@Override
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		this.removeComponentPVMs(this.getItems(event));
-		super.itemsRemoved(event);
-	}
-
-	@Override
-	protected void collectionCleared(CollectionClearEvent event) {
-		this.removeAllComponentPVMs();
-		super.collectionCleared(event);
-	}
-
-	protected void removeAllComponentPVMs() {
-		// copy the list so we don't eat our own tail
-		ArrayList<PropertyValueModel<?>> copy = new ArrayList<PropertyValueModel<?>>(this.componentPVMs);
-		this.removeComponentPVMs(copy);
-	}
-
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.removeAllComponentPVMs();
-		this.addComponentPVMs(this.getCollectionModel());
-		super.collectionChanged(event);
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Our constructor accepts only a {@link CollectionValueModel}{@code<? extends }{@link PropertyValueModel}{@code<?>>}.
-	 */
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected CollectionValueModel<? extends PropertyValueModel<?>> getCollectionModel() {
-		return (CollectionValueModel<? extends PropertyValueModel<?>>) this.collectionModel;
-	}
-
-	/**
-	 * Our constructor accepts only a {@link CollectionValueModel}{@code<? extends }{@link PropertyValueModel}{@code<?>>}.
-	 */
-	@SuppressWarnings("unchecked")
-	protected Iterable<? extends PropertyValueModel<?>> getItems(CollectionAddEvent event) {
-		return (Iterable<? extends PropertyValueModel<?>>) event.getItems();
-	}
-
-	/**
-	 * Our constructor accepts only a {@link CollectionValueModel}{@code<? extends }{@link PropertyValueModel}{@code<?>>}.
-	 */
-	@SuppressWarnings("unchecked")
-	protected Iterable<? extends PropertyValueModel<?>> getItems(CollectionRemoveEvent event) {
-		return (Iterable<? extends PropertyValueModel<?>>) event.getItems();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java
deleted file mode 100644
index 6601615..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This wrapper extends a {@link ListValueModel} (or {@link CollectionValueModel})
- * with fixed collections of items on either end.
- * <p>
- * <strong>NB:</strong> Be careful using or wrapping this list value model, since the
- * "extended" items may be unexpected by the client code or wrapper.
- */
-public class ExtendedListValueModelWrapper<E>
-	extends ListValueModelWrapper<E>
-	implements ListValueModel<E>
-{
-	/** the items "prepended" to the wrapped list */
-	protected List<E> prefix;
-
-	/** the items "appended" to the wrapped list */
-	protected List<E> suffix;
-
-
-	// ********** lots o' constructors **********
-
-	/**
-	 * Extend the specified list with a prefix and suffix.
-	 */
-	public ExtendedListValueModelWrapper(List<? extends E> prefix, ListValueModel<? extends E> listHolder, List<? extends E> suffix) {
-		super(listHolder);
-		this.prefix = new ArrayList<E>(prefix);
-		this.suffix = new ArrayList<E>(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix and suffix.
-	 */
-	public ExtendedListValueModelWrapper(E prefix, ListValueModel<? extends E> listHolder, E suffix) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(prefix);
-		this.suffix = Collections.singletonList(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix.
-	 */
-	public ExtendedListValueModelWrapper(List<? extends E> prefix, ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = new ArrayList<E>(prefix);
-		this.suffix = Collections.emptyList();
-	}
-
-	/**
-	 * Extend the specified list with a prefix.
-	 */
-	public ExtendedListValueModelWrapper(E prefix, ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(prefix);
-		this.suffix = Collections.emptyList();
-	}
-
-	/**
-	 * Extend the specified list with a suffix.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder, List<? extends E> suffix) {
-		super(listHolder);
-		this.prefix = Collections.emptyList();
-		this.suffix = new ArrayList<E>(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a suffix.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder, E suffix) {
-		super(listHolder);
-		this.prefix = Collections.emptyList();
-		this.suffix = Collections.singletonList(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix containing a single null item.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(null);
-		this.suffix = Collections.emptyList();
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.listIterator_());
-	}
-
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> listIterator_() {
-		return new ReadOnlyCompositeListIterator<E>(
-			this.prefix.listIterator(),
-			this.listHolder.listIterator(),
-			this.suffix.listIterator()
-		);
-	}
-
-	public E get(int index) {
-		int prefixSize = this.prefix.size();
-		if (index < prefixSize) {
-			return this.prefix.get(index);
-		} else if (index >= prefixSize + this.listHolder.size()) {
-			return this.suffix.get(index - (prefixSize + this.listHolder.size()));
-		} else {
-			return this.listHolder.get(index - prefixSize);
-		}
-	}
-
-	public int size() {
-		return this.prefix.size() + this.listHolder.size() + this.suffix.size();
-	}
-
-	public Object[] toArray() {
-		ArrayList<E> list = new ArrayList<E>(this.size());
-		list.addAll(this.prefix);
-		CollectionTools.addAll(list, this.listHolder.iterator());
-		list.addAll(this.suffix);
-		return list.toArray();
-	}
-
-
-	// ********** ListValueModelWrapper implementation/overrides **********
-
-	@Override
-	protected void itemsAdded(ListAddEvent event) {
-		this.fireItemsAdded(event.clone(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.fireItemsRemoved(event.clone(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.fireItemsReplaced(event.clone(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsMoved(ListMoveEvent event) {
-		this.fireItemsMoved(event.clone(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void listCleared(ListClearEvent event) {
-		this.fireListChanged(LIST_VALUES, this.buildList());  // not "cleared"
-	}
-
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		this.fireListChanged(LIST_VALUES, this.buildList());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-
-	// ********** miscellaneous **********
-
-	public void setPrefix(List<E> prefix) {
-		this.prefix = prefix;
-		this.fireListChanged(LIST_VALUES, this.buildList());
-	}
-
-	public void setSuffix(List<E> suffix) {
-		this.suffix = suffix;
-		this.fireListChanged(LIST_VALUES, this.buildList());
-	}
-
-	private List<E> buildList() {
-		return CollectionTools.list(this.listIterator_());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java
deleted file mode 100644
index 3defd4f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * A <code>FilteringCollectionValueModel</code> wraps another
- * {@link CollectionValueModel} and uses a {@link Filter}
- * to determine which items in the collection are returned by calls
- * to {@link #iterator()}.
- * <p>
- * The filter can be changed at any time; allowing the same
- * adapter to be used with different filter criteria (e.g. when the user
- * wants to view a list of <code>.java</code> files).
- * <p>
- * <strong>NB:</strong> If the objects in the "filtered" collection can change in such a way
- * that they should be removed from the "filtered" collection, you will
- * need to wrap the original collection in an {@link ItemAspectListValueModelAdapter}.
- * For example, if the filter only "accepts" items whose names begin
- * with "X" and the names of the items can change, you will need to
- * wrap the original list of unfiltered items with an
- * {@link ItemPropertyListValueModelAdapter} that listens for changes to each
- * item's name and fires the appropriate event whenever an item's name
- * changes. The event will cause this wrapper to re-filter the changed
- * item and add or remove it from the "filtered" collection as appropriate.
- */
-public class FilteringCollectionValueModel<E>
-	extends CollectionValueModelWrapper<E>
-	implements CollectionValueModel<E>
-{
-	/** This filters the items in the nested collection. */
-	private Filter<E> filter;
-
-	/** Cache the items that were accepted by the filter */
-	private final Collection<E> filteredItems = new ArrayList<E>();
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and a filter that simply accepts every object.
-	 */
-	public FilteringCollectionValueModel(CollectionValueModel<? extends E> collectionHolder) {
-		this(collectionHolder, Filter.Null.<E>instance());
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and filter.
-	 */
-	public FilteringCollectionValueModel(CollectionValueModel<? extends E> collectionHolder, Filter<E> filter) {
-		super(collectionHolder);
-		this.filter = filter;
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and a filter that simply accepts every object.
-	 */
-	public FilteringCollectionValueModel(ListValueModel<E> listHolder) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder));
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and filter.
-	 */
-	public FilteringCollectionValueModel(ListValueModel<E> listHolder, Filter<E> filter) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder), filter);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.filteredItems);
-	}
-
-	public int size() {
-		return this.filteredItems.size();
-	}
-
-
-	// ********** CollectionValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the nested collection,
-		// since its value might change when a listener is added
-		CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder));
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the cache when we are not listening to the nested collection
-		this.filteredItems.clear();
-	}
-
-	@Override
-	protected void itemsAdded(CollectionAddEvent event) {
-		// filter the values before propagating the change event
-		this.addItemsToCollection(this.filter(this.getItems(event)), this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		// do *not* filter the values, because they may no longer be
-		// "accepted" and that might be why they were removed in the first place;
-		// anyway, any extraneous items are harmless
-		this.removeItemsFromCollection(event.getItems(), this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void collectionCleared(CollectionClearEvent event) {
-		this.clearCollection(this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.rebuildFilteredItems();
-	}
-
-
-	// ********** miscellaneous **********
-
-	/**
-	 * Change the filter and rebuild the collection.
-	 */
-	public void setFilter(Filter<E> filter) {
-		this.filter = filter;
-		this.rebuildFilteredItems();
-	}
-
-	/**
-	 * Return an iterable that filters the specified iterable.
-	 */
-	protected Iterable<E> filter(Iterable<? extends E> items) {
-		return new FilteringIterable<E>(items, this.filter);
-	}
-
-	/**
-	 * Synchronize our cache with the wrapped collection.
-	 */
-	protected void rebuildFilteredItems() {
-		this.filteredItems.clear();
-		CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder));
-		this.fireCollectionChanged(VALUES, this.filteredItems);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.filteredItems);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java
deleted file mode 100644
index 5693582..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>FilteringPropertyValueModel</code> wraps another
- * {@link PropertyValueModel} and uses a {@link Filter}
- * to determine when the wrapped value is to be returned by calls
- * to {@link #getValue()}.
- * <p>
- * As an alternative to building a {@link Filter}, a subclass
- * can override {@link #accept(T)}.
- * <p>
- * One, possibly undesirable, side-effect of using this value model is that
- * it must return *something* as the value. The default behavior is
- * to return <code>null</code> whenever the wrapped value is not "accepted",
- * which can be configured and/or overridden ({@link #getDefaultValue()}).
- */
-public class FilteringPropertyValueModel<T>
-	extends PropertyValueModelWrapper<T>
-	implements PropertyValueModel<T>
-{
-	protected final Filter<T> filter;
-	protected final T defaultValue;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model and a disabled filter.
-	 * Use this constructor if you want to override {@link #accept(T)}
-	 * instead of building a {@link Filter}.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder) {
-		this(valueHolder, Filter.Disabled.<T>instance(), null);
-	}
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model, specified default value, and a disabled filter.
-	 * Use this constructor if you want to override {@link #accept(T)}
-	 * instead of building a {@link Filter}
-	 * <em>and</em> you need to specify
-	 * a default value other than <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, T defaultValue) {
-		this(valueHolder, Filter.Disabled.<T>instance(), defaultValue);
-	}
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model and filter.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, Filter<T> filter) {
-		this(valueHolder, filter, null);
-	}
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model, filter, and default value.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, Filter<T> filter, T defaultValue) {
-		super(valueHolder);
-		this.filter = filter;
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return this.filterValue(this.valueHolder.getValue());
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		// filter the values before propagating the change event
-		@SuppressWarnings("unchecked")
-		T eventOldValue = (T) event.getOldValue();
-		Object oldValue = this.filterValue(eventOldValue);
-		@SuppressWarnings("unchecked")
-		T eventNewValue = (T) event.getNewValue();
-		Object newValue = this.filterValue(eventNewValue);
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * If the specified value is "accepted" simply return it,
-	 * otherwise return the default value.
-	 */
-	protected T filterValue(T value) {
-		return this.accept(value) ? value : this.getDefaultValue();
-	}
-
-	/**
-	 * Return whether the filtering property value model should
-	 * return the specified value from a call to
-	 * {@link #getValue()}; the value came
-	 * from the nested property value model
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link Filter}.
-	 */
-	protected boolean accept(T value) {
-		return this.filter.accept(value);
-	}
-
-	/**
-	 * Return the object that should be returned if
-	 * the nested value was rejected by the filter.
-	 * The default is <code>null</code>.
-	 */
-	protected T getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java
deleted file mode 100644
index 61eac0e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.BidiFilter;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>FilteringWritablePropertyValueModel</code> wraps another
- * {@link WritablePropertyValueModel} and uses a {@link BidiFilter}
- * to determine when the wrapped value is to be returned by calls
- * to {@link FilteringPropertyValueModel#getValue() getValue()} and modified by calls to
- * {@link #setValue(T)}.
- * <p>
- * As an alternative to building a {@link BidiFilter}, a subclass
- * can override {@link FilteringPropertyValueModel#accept(T) accept(T)} and {@link #reverseAccept(T)}.
- * <p>
- * One, possibly undesirable, side-effect of using this value model is that
- * it must return *something* as the value. The default behavior is
- * to return <code>null</code> whenever the wrapped value is not "accepted",
- * which can be configured and/or overridden ({@link FilteringPropertyValueModel#getDefaultValue() getDefaultValue()}).
- * <p>
- * Similarly, if an incoming value is not "reverse accepted", <em>nothing</em>
- * will passed through to the wrapped value holder, not even <code>null</code>.
- */
-public class FilteringWritablePropertyValueModel<T>
-	extends FilteringPropertyValueModel<T>
-	implements WritablePropertyValueModel<T>
-{
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model and a disabled filter.
-	 * Use this constructor if you want to override
-	 * {@link #accept(T)} and {@link #reverseAccept(T)}
-	 * instead of building a {@link BidiFilter}.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder) {
-		this(valueHolder, BidiFilter.Disabled.<T>instance(), null);
-	}
-
-	/**
-	 * Construct a filtering property value model with the specified nested
-	 * property value model, specified default value, and a disabled filter.
-	 * Use this constructor if you want to override
-	 * {@link #accept(T)} and {@link #reverseAccept(T)}
-	 * instead of building a {@link BidiFilter}.
-	 * <em>and</em> you need to specify
-	 * a default value other than <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, T defaultValue) {
-		this(valueHolder, BidiFilter.Disabled.<T>instance(), defaultValue);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and filter.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, BidiFilter<T> filter) {
-		this(valueHolder, filter, null);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model, filter, and default value.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, BidiFilter<T> filter, T defaultValue) {
-		super(valueHolder, filter, defaultValue);
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(T value) {
-		if (this.reverseAccept(value)) {
-			this.getValueHolder().setValue(value);
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the filtering writable property value model
-	 * should pass through the specified value to the nested
-	 * writable property value model in a call to
-	 * {@link #setValue(T)}.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a {@link BidiFilter}.
-	 */
-	protected boolean reverseAccept(T value) {
-		return this.getFilter().reverseAccept(value);
-	}
-
-	/**
-	 * Our constructor accepts only a {@link WritablePropertyValueModel}{@code<T>}.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T> getValueHolder() {
-		return (WritablePropertyValueModel<T>) this.valueHolder;
-	}
-
-	/**
-	 * Our constructors accept only a bidirectional filter.
-	 */
-	protected BidiFilter<T> getFilter() {
-		return (BidiFilter<T>) this.filter;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java
deleted file mode 100644
index eff8183..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.EventObject;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.SimpleIntReference;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Abstract list value model that provides behavior for wrapping a {@link ListValueModel}
- * (or {@link CollectionValueModel}) and listening for changes to aspects of the
- * <em>items</em> held by the list (or collection). Changes to the actual list
- * (or collection) are also monitored.
- * 
- * This is useful if you have a collection of items that can be modified by adding
- * or removing items or the items themselves might change in a fashion that
- * might change the list or collection's external appearance.
- * 
- * Subclasses need to override two methods:<ul>
- * <li>{@link #engageItem_(Model)}<p>
- *     begin listening to the appropriate aspect of the specified item and call
- *     {@link #itemAspectChanged(EventObject)} whenever the aspect changes
- * <li>{@link #disengageItem_(Model)}<p>
- *     stop listening to the appropriate aspect of the specified item
- * </ul>
- */
-public abstract class ItemAspectListValueModelAdapter<E>
-	extends ListValueModelWrapper<E>
-	implements ListValueModel<E>
-{
-
-	/**
-	 * Maintain a counter for each of the items in the
-	 * wrapped list holder we are listening to.
-	 */
-	protected final IdentityHashMap<E, SimpleIntReference> counters;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	protected ItemAspectListValueModelAdapter(ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.counters = new IdentityHashMap<E, SimpleIntReference>();
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	protected ItemAspectListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.listHolder.listIterator());
-	}
-
-	public E get(int index) {
-		return this.listHolder.get(index);
-	}
-
-	public int size() {
-		return this.listHolder.size();
-	}
-
-	public Object[] toArray() {
-		return this.listHolder.toArray();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder and the items in the list.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.engageAllItems();
-	}
-
-	protected void engageAllItems() {
-		this.engageItems(this.listHolder);
-	}
-
-	protected void engageItems(Iterable<? extends E> items) {
-		for (E item : items) {
-			this.engageItem(item);
-		}
-	}
-
-	protected void engageItem(E item) {
-		// listen to each item only once
-		SimpleIntReference counter = this.counters.get(item);
-		if (counter == null) {
-			counter = new SimpleIntReference();
-			this.counters.put(item, counter);
-			this.engageItem_((Model) item);
-		}
-		counter.increment();
-	}
-
-	/**
-	 * Start listening to the specified item.
-	 */
-	protected abstract void engageItem_(Model item);
-
-	/**
-	 * Stop listening to the list holder and the items in the list.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.disengageAllItems();
-		super.disengageModel();
-	}
-
-	protected void disengageAllItems() {
-		this.disengageItems(this.listHolder);
-	}
-
-	protected void disengageItems(Iterable<? extends E> items) {
-		for (E item : items) {
-			this.disengageItem(item);
-		}
-	}
-
-	protected void disengageItem(E item) {
-		// stop listening to each item only once
-		SimpleIntReference counter = this.counters.get(item);
-		if (counter == null) {
-			// something is wrong if this happens...  ~bjv
-			throw new IllegalStateException("missing counter: " + item); //$NON-NLS-1$
-		}
-		if (counter.decrement() == 0) {
-			this.counters.remove(item);
-			this.disengageItem_((Model) item);
-		}
-	}
-
-	/**
-	 * Stop listening to the specified item.
-	 */
-	protected abstract void disengageItem_(Model item);
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder.
-	 * Forward the event and begin listening to the added items.
-	 */
-	@Override
-	protected void itemsAdded(ListAddEvent event) {
-		// re-fire event with the wrapper as the source
-		this.fireItemsAdded(event.clone(this, LIST_VALUES));
-		this.engageItems(this.getItems(event));
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder.
-	 * Stop listening to the removed items and forward the event.
-	 */
-	@Override
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.disengageItems(this.getItems(event));
-		// re-fire event with the wrapper as the source
-		this.fireItemsRemoved(event.clone(this, LIST_VALUES));
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder.
-	 * Stop listening to the removed items, forward the event,
-	 * and begin listening to the added items.
-	 */
-	@Override
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.disengageItems(this.getOldItems(event));
-		// re-fire event with the wrapper as the source
-		this.fireItemsReplaced(event.clone(this, LIST_VALUES));
-		this.engageItems(this.getNewItems(event));
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder.
-	 * No need to change any listeners; just forward the event.
-	 */
-	@Override
-	protected void itemsMoved(ListMoveEvent event) {
-		// re-fire event with the wrapper as the source
-		this.fireItemsMoved(event.clone(this, LIST_VALUES));
-	}
-
-	/**
-	 * The wrapped list holder was cleared.
-	 * Stop listening to the removed items and forward the event.
-	 */
-	@Override
-	protected void listCleared(ListClearEvent event) {
-		// we should only need to disengage each item once...
-		// make a copy to prevent a ConcurrentModificationException
-		Collection<E> keys = new ArrayList<E>(this.counters.keySet());
-		this.disengageItems(keys);
-		this.counters.clear();
-		// re-fire event with the wrapper as the source
-		this.fireListCleared(LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder has changed in some dramatic fashion.
-	 * Reconfigure our listeners and forward the event.
-	 */
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		// we should only need to disengage each item once...
-		// make a copy to prevent a ConcurrentModificationException
-		Collection<E> keys = new ArrayList<E>(this.counters.keySet());
-		this.disengageItems(keys);
-		this.counters.clear();
-		// re-fire event with the wrapper as the source
-		this.fireListChanged(event.clone(this));
-		this.engageAllItems();
-	}
-
-
-	// ********** item change support **********
-
-	/**
-	 * The specified item has a bound property that has changed.
-	 * Notify listeners of the change. The listeners will have to determine
-	 * whether the item aspect change is significant.
-	 */
-	protected void itemAspectChanged(@SuppressWarnings("unused") EventObject event) {
-		this.fireListChanged(LIST_VALUES, CollectionTools.list(this.listHolder, this.listHolder.size()));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java
deleted file mode 100644
index b6f817b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to all of the changes
- * of each item in the wrapped list model.
- */
-public class ItemChangeListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-	/** Listener that listens to all the items in the list. */
-	protected final ChangeListener itemChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified items.
-	 */
-	public ItemChangeListValueModelAdapter(ListValueModel<E> listHolder) {
-		super(listHolder);
-		this.itemChangeListener = this.buildItemChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected ChangeListener buildItemChangeListener() {
-		return new SimpleChangeListener() {
-			@Override
-			protected void modelChanged(ChangeEvent event) {
-				ItemChangeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		item.addChangeListener(this.itemChangeListener);
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		item.removeChangeListener(this.itemChangeListener);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java
deleted file mode 100644
index 8079739..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more collection
- * aspects of each item in the wrapped list model.
- */
-public class ItemCollectionListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' collections that we listen to. */
-	protected final String[] collectionNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final CollectionChangeListener itemCollectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item Collections.
-	 */
-	public ItemCollectionListValueModelAdapter(ListValueModel<E> listHolder, String... collectionNames) {
-		super(listHolder);
-		this.collectionNames = collectionNames;
-		this.itemCollectionListener = this.buildItemCollectionListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item Collections.
-	 */
-	public ItemCollectionListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... collectionNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), collectionNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a Collection aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected CollectionChangeListener buildItemCollectionListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item collection listener: " + Arrays.asList(ItemCollectionListValueModelAdapter.this.collectionNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		for (String collectionName : this.collectionNames) {
-			item.addCollectionChangeListener(collectionName, this.itemCollectionListener);
-		}
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		for (String collectionName : this.collectionNames) {
-			item.removeCollectionChangeListener(collectionName, this.itemCollectionListener);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java
deleted file mode 100644
index 79cac2c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more list
- * aspects of each item in the wrapped list model.
- */
-public class ItemListListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the subject's lists that we listen to. */
-	protected final String[] listNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final ListChangeListener itemListListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item List aspects.
-	 */
-	public ItemListListValueModelAdapter(ListValueModel<E> listHolder, String... listNames) {
-		super(listHolder);
-		this.listNames = listNames;
-		this.itemListListener = this.buildItemListListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item List aspects.
-	 */
-	public ItemListListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... listNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), listNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that the List aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected ListChangeListener buildItemListListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item list listener: " + Arrays.asList(ItemListListValueModelAdapter.this.listNames); //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		for (String listName : this.listNames) {
-			item.addListChangeListener(listName, this.itemListListener);
-		}
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		for (String listName : this.listNames) {
-			item.removeListChangeListener(listName, this.itemListListener);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java
deleted file mode 100644
index 870a365..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more
- * properties of each item in the wrapped list model.
- */
-public class ItemPropertyListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' properties that we listen to. */
-	protected final String[] propertyNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final PropertyChangeListener itemPropertyListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item properties.
-	 */
-	public ItemPropertyListValueModelAdapter(ListValueModel<E> listHolder, String... propertyNames) {
-		super(listHolder);
-		this.propertyNames = propertyNames;
-		this.itemPropertyListener = this.buildItemPropertyListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item properties.
-	 */
-	public ItemPropertyListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... propertyNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), propertyNames);
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildItemPropertyListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ItemPropertyListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item property listener: " + Arrays.asList(ItemPropertyListValueModelAdapter.this.propertyNames); //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		for (String propertyName : this.propertyNames) {
-			item.addPropertyChangeListener(propertyName, this.itemPropertyListener);
-		}
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		for (String propertyName : this.propertyNames) {
-			item.removePropertyChangeListener(propertyName, this.itemPropertyListener);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java
deleted file mode 100644
index b4dc5ee..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to the
- * "state" of each item in the wrapped list model.
- */
-public class ItemStateListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-	/** Listener that listens to all the items in the list. */
-	protected final StateChangeListener itemStateListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the item state.
-	 */
-	public ItemStateListValueModelAdapter(ListValueModel<E> listHolder) {
-		super(listHolder);
-		this.itemStateListener = this.buildItemStateListener();
-	}
-
-	/**
-	 * Construct an adapter for the item state.
-	 */
-	public ItemStateListValueModelAdapter(CollectionValueModel<E> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** initialization **********
-
-	protected StateChangeListener buildItemStateListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ItemStateListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item state listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		item.addStateChangeListener(this.itemStateListener);
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		item.removeStateChangeListener(this.itemStateListener);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java
deleted file mode 100644
index 5ae5a96..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more tree
- * aspects of each item in the wrapped list model.
- */
-public class ItemTreeListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' tree that we listen to. */
-	protected final String[] treeNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final TreeChangeListener itemTreeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item trees.
-	 */
-	public ItemTreeListValueModelAdapter(ListValueModel<E> listHolder, String... treeNames) {
-		super(listHolder);
-		this.treeNames = treeNames;
-		this.itemTreeListener = this.buildItemTreeListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item trees.
-	 */
-	public ItemTreeListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... treeNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), treeNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a tree aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected TreeChangeListener buildItemTreeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeAddEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void nodeRemoved(TreeRemoveEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void treeCleared(TreeClearEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item tree listener: " + Arrays.asList(ItemTreeListValueModelAdapter.this.treeNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageItem_(Model item) {
-		for (String treeName : this.treeNames) {
-			item.addTreeChangeListener(treeName, this.itemTreeListener);
-		}
-	}
-
-	@Override
-	protected void disengageItem_(Model item) {
-		for (String treeName : this.treeNames) {
-			item.removeTreeChangeListener(treeName, this.itemTreeListener);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java
deleted file mode 100644
index 82b5eb4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of {@link AspectListValueModelAdapter} provides
- * basic list change support.
- * This converts a set of one or more lists into
- * a single {@link #LIST_VALUES} list.
- * <p>
- * The typical subclass will override the following methods (see the descriptions
- * in {@link AspectListValueModelAdapter}):<ul>
- * <li>{@link #listIterator_()}
- * <li>{@link #get(int)}
- * <li>{@link #size_()}
- * <li>{@link #toArray_()}
- * <li>{@link #listIterator()}
- * <li>{@link #size()}
- * <li>{@link #toArray()}
- * </ul>
- */
-public abstract class ListAspectAdapter<S extends Model, E>
-	extends AspectListValueModelAdapter<S, E>
-{
-	/**
-	 * The name of the subject's lists that we use for the value.
-	 */
-	protected final String[] listNames;
-		protected static final String[] EMPTY_LIST_NAMES = new String[0];
-
-	/** A listener that listens to the subject's list aspects. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list aspect adapter for the specified subject
-	 * and list.
-	 */
-	protected ListAspectAdapter(String listName, S subject) {
-		this(new String[] {listName}, subject);
-	}
-
-	/**
-	 * Construct a list aspect adapter for the specified subject
-	 * and lists.
-	 */
-	protected ListAspectAdapter(String[] listNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), listNames);
-	}
-
-	/**
-	 * Construct a list aspect adapter for the specified subject holder
-	 * and lists.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... listNames) {
-		super(subjectHolder);
-		this.listNames = listNames;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	/**
-	 * Construct a list aspect adapter for the specified subject holder
-	 * and lists.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> listNames) {
-		this(subjectHolder, listNames.toArray(new String[listNames.size()]));
-	}
-
-	/**
-	 * Construct a list aspect adapter for an "unchanging" list in
-	 * the specified subject. This is useful for a list aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new list.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_LIST_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		// transform the subject's list change events into VALUE list change events
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListAspectAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListAspectAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListAspectAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListAspectAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListAspectAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListAspectAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener: " + Arrays.asList(ListAspectAdapter.this.listNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected void engageSubject_() {
-    	for (String listName : this.listNames) {
-			((Model) this.subject).addListChangeListener(listName, this.listChangeListener);
-		}
-	}
-
-	@Override
-	protected void disengageSubject_() {
-    	for (String listName : this.listNames) {
-			((Model) this.subject).removeListChangeListener(listName, this.listChangeListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void itemsAdded(ListAddEvent event) {
-		this.fireItemsAdded(event.clone(this, LIST_VALUES));
-	}
-
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.fireItemsRemoved(event.clone(this, LIST_VALUES));
-	}
-
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.fireItemsReplaced(event.clone(this, LIST_VALUES));
-	}
-
-	protected void itemsMoved(ListMoveEvent event) {
-		this.fireItemsMoved(event.clone(this, LIST_VALUES));
-	}
-
-	protected void listCleared(ListClearEvent event) {
-		this.fireListCleared(event.clone(this, LIST_VALUES));
-	}
-
-	protected void listChanged(ListChangeEvent event) {
-		this.fireListChanged(event.clone(this, LIST_VALUES));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java
deleted file mode 100644
index e37f223..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to make a {@link ListValueModel} behave like
- * a read-only {@link CollectionValueModel}, sorta.
- * <p>
- * We keep an internal collection somewhat in synch with the wrapped list.
- * <p>
- * <strong>NB:</strong> Since we only listen to the wrapped list when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * list while we are listening to it, results to various methods
- * (e.g. {@link #size()}, {@link iterator()}) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- */
-public class ListCollectionValueModelAdapter<E>
-	extends AbstractCollectionValueModel
-	implements CollectionValueModel<E>
-{
-	/** The wrapped list value model. */
-	protected final ListValueModel<? extends E> listHolder;
-
-	/** A listener that forwards any events fired by the list holder. */
-	protected final ListChangeListener listChangeListener;
-
-	/**
-	 * Our internal collection, which holds the same elements as
-	 * the wrapped list.
-	 */
-	// we declare this an ArrayList so we can use #clone() and #ensureCapacity(int)
-	protected final ArrayList<E> collection;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified list value model.
-	 */
-	public ListCollectionValueModelAdapter(ListValueModel<? extends E> listHolder) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-		this.collection = new ArrayList<E>();
-		// postpone building the collection and listening to the underlying list
-		// until we have listeners ourselves...
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The wrapped list has changed, forward an equivalent
-	 * collection change event to our listeners.
-	 */
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListCollectionValueModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListCollectionValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListCollectionValueModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListCollectionValueModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListCollectionValueModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		// try to prevent backdoor modification of the list
-		return new ReadOnlyIterator<E>(this.collection);
-	}
-
-	public int size() {
-		return this.collection.size();
-	}
-
-
-	// ********** AbstractCollectionValueModel implementation **********
-
-	@Override
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		// synch our collection *after* we start listening to the list holder,
-		// since its value might change when a listener is added
-		this.buildCollection();
-	}
-
-	@Override
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		// clear out the collection when we are not listening to the list holder
-		this.collection.clear();
-	}
-
-
-	// ********** behavior **********
-
-	protected void itemsAdded(ListAddEvent event) {
-		this.addItemsToCollection(this.getItems(event), this.collection, VALUES);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.removeItemsFromCollection(this.getItems(event), this.collection, VALUES);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.removeItemsFromCollection(this.getOldItems(event), this.collection, VALUES);
-		this.addItemsToCollection(this.getNewItems(event), this.collection, VALUES);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getOldItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getOldItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getNewItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getNewItems();
-	}
-
-	protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) {
-		// do nothing? moving items in a list has no net effect on a collection...
-	}
-
-	protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) {
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.collection.isEmpty()) {
-			this.collection.clear();
-			this.fireCollectionCleared(VALUES);
-		}
-	}
-
-	/**
-	 * synchronize our internal collection with the wrapped list
-	 * and fire the appropriate events
-	 */
-	protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) {
-		if (this.listHolder.size() == 0) {
-			if (this.collection.isEmpty()) {
-				// no change
-			} else {
-				this.clearCollection(this.collection, VALUES);
-			}
-		} else {
-			if (this.collection.isEmpty()) {
-				this.buildCollection();
-				this.fireItemsAdded(VALUES, this.collection);
-			} else {
-				this.collection.clear();
-				this.buildCollection();
-				this.fireCollectionChanged(VALUES, this.collection);
-			}
-		}
-	}
-
-	protected void buildCollection() {
-		// if the new list is empty, do nothing
-		int size = this.listHolder.size();
-		if (size != 0) {
-			this.buildCollection(size);
-		}
-	}
-
-	protected void buildCollection(int size) {
-		this.collection.ensureCapacity(size);
-		for (E each : this.listHolder) {
-			this.collection.add(each);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collection);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java
deleted file mode 100644
index 753638b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.EventListener;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of {@link AspectAdapter} provides list change support
- * by adapting a subject's state change events to a minimum set
- * of list change events.
- */
-public abstract class ListCurator<S extends Model, E>
-	extends AspectAdapter<S>
-	implements ListValueModel<E>
-{
-	/** How the list looked before the last state change */
-	private final ArrayList<E> record;
-
-	/** A listener that listens for the subject's state to change */
-	private final StateChangeListener stateChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a curator for the specified subject.
-	 */
-	protected ListCurator(S subject) {
-		this(new StaticPropertyValueModel<S>(subject));
-	}
-
-	/**
-	 * Construct a curator for the specified subject holder.
-	 * The subject holder cannot be null.
-	 */
-	protected ListCurator(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-		this.record = new ArrayList<E>();
-		this.stateChangeListener = this.buildStateChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's state has changed, do inventory and report to listeners.
-	 */
-	protected StateChangeListener buildStateChangeListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ListCurator.this.submitInventoryReport();
-			}
-			@Override
-			public String toString() {
-				return "state change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public ListIterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.record);
-	}
-
-	/**
-	 * Return the item at the specified index of the subject's list aspect.
-	 */
-	public E get(int index) {
-		return this.record.get(index);
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 */
-	public int size() {
-		return this.record.size();
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 */
-	public Object[] toArray() {
-		return this.record.toArray();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected ListIterator<E> getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return ListChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return LIST_VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	/**
-	 * The aspect has changed, notify listeners appropriately.
-	 */
-	@Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		this.fireListChanged(LIST_VALUES, this.record);
-	}
-
-	/**
-	 * The subject is not null - add our listener.
-	 */
-	@Override
-	protected void engageSubject_() {
-		((Model) this.subject).addStateChangeListener(this.stateChangeListener);
-		// synch our list *after* we start listening to the subject,
-		// since its value might change when a listener is added
-		CollectionTools.addAll(this.record, this.iteratorForRecord());
-	}
-
-	/**
-	 * The subject is not null - remove our listener.
-	 */
-	@Override
-	protected void disengageSubject_() {
-		((Model) this.subject).removeStateChangeListener(this.stateChangeListener);
-		// clear out the list when we are not listening to the subject
-		this.record.clear();
-	}
-
-
-	// ********** ListCurator protocol **********
-
-	/**
-	 * This is intended to be different from {@link ListValueModel#iterator()}.
-	 * It is intended to be used only when the subject changes or the
-	 * subject's "state" changes (as signified by a state change event).
-	 */
-	protected abstract Iterator<E> iteratorForRecord();
-
-
-	// ********** behavior **********
-
-	void submitInventoryReport() {
-		List<E> newRecord = CollectionTools.list(this.iteratorForRecord());
-		int recordIndex = 0;
-
-		// add items from the new record
-		for (E newItem : newRecord) {
-			this.inventoryNewItem(recordIndex, newItem);
-			recordIndex++;
-		}
-
-		// clean out items that are no longer in the new record
-		for (recordIndex = 0; recordIndex < this.record.size(); ) {
-			E item = this.record.get(recordIndex);
-
-			if (newRecord.contains(item)) {
-				recordIndex++;
-			} else {
-				this.removeItemFromInventory(recordIndex, item);
-			}
-		}
-	}
-
-	private void inventoryNewItem(int recordIndex, E newItem) {
-		List<E> rec = new ArrayList<E>(this.record);
-
-		if ((recordIndex < rec.size()) && rec.get(recordIndex).equals(newItem)) {
-			return;
-		}
-		if (rec.contains(newItem)) {
-			this.removeItemFromInventory(recordIndex, rec.get(recordIndex));
-			this.inventoryNewItem(recordIndex, newItem);
-		} else {
-			this.addItemToInventory(recordIndex, newItem);
-		}
-	}
-
-	private void addItemToInventory(int index, E item) {
-		this.addItemToList(index, item, this.record, LIST_VALUES);
-	}
-
-	private void removeItemFromInventory(int index, @SuppressWarnings("unused") E item) {
-		this.removeItemFromList(index, this.record, LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.record);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java
deleted file mode 100644
index e3f7105..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a list value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must override:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current list value
- * </ul>
- * Subclasses might want to override the following methods
- * to improve performance (by not recalculating the value, if possible):<ul>
- * <li>{@link #itemsAdded(ListAddEvent event)}
- * <li>{@link #itemsRemoved(ListRemoveEvent event)}
- * <li>{@link #itemsReplaced(ListReplaceEvent event)}
- * <li>{@link #itemsMoved(ListMoveEvent event)}
- * <li>{@link #listCleared(ListClearEvent event)}
- * <li>{@link #listChanged(ListChangeEvent event)}
- * </ul>
- */
-public abstract class ListPropertyValueModelAdapter<T>
-	extends AbstractPropertyValueModelAdapter<T>
-{
-	/** The wrapped list value model. */
-	protected final ListValueModel<?> listHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped list holder. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * list value model.
-	 */
-	protected ListPropertyValueModelAdapter(ListValueModel<?> listHolder) {
-		super();
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListPropertyValueModelAdapter.this.itemsAdded(event);
-			}		
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListPropertyValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListPropertyValueModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListPropertyValueModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListPropertyValueModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	/**
-	 * Stop listening to the list holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsAdded(@SuppressWarnings("unused") ListAddEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsRemoved(@SuppressWarnings("unused") ListRemoveEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsReplaced(@SuppressWarnings("unused") ListReplaceEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped list holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The value of the wrapped list holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java
deleted file mode 100644
index 7e01a39..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another list value model, "lazily" listen to it, and propagate
- * its change notifications. Subclasses must implement the appropriate
- * {@link ListValueModel}.
- */
-public abstract class ListValueModelWrapper<E>
-	extends AbstractListValueModel
-{
-	/** The wrapped list value model. */
-	protected final ListValueModel<? extends E> listHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped list holder. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model.
-	 */
-	protected ListValueModelWrapper(ListValueModel<? extends E> listHolder) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListValueModelWrapper.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListValueModelWrapper.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListValueModelWrapper.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListValueModelWrapper.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListValueModelWrapper.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListValueModelWrapper.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder.
-	 */
-	@Override
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	/**
-	 * Stop listening to the list holder.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListAddEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getItems(ListRemoveEvent event) {
-		return (Iterable<E>) event.getItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getNewItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getNewItems();
-	}
-
-	// minimized scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterable<E> getOldItems(ListReplaceEvent event) {
-		return (Iterable<E>) event.getOldItems();
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsAdded(ListAddEvent event);
-
-	/**
-	 * Items were removed from the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsRemoved(ListRemoveEvent event);
-
-	/**
-	 * Items were replaced in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsReplaced(ListReplaceEvent event);
-
-	/**
-	 * Items were moved in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsMoved(ListMoveEvent event);
-
-	/**
-	 * The wrapped list holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void listCleared(ListClearEvent event);
-
-	/**
-	 * The value of the wrapped list holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void listChanged(ListChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java
deleted file mode 100644
index ba1061b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * A read-only collection value model for when you
- * don't need to support a collection. In particular, this
- * is useful for the leaf nodes of a tree that never have
- * children.
- * <p>
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullCollectionValueModel<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullCollectionValueModel() {
-		super();
-	}
-	
-
-	// ********** CollectionValueModel implementation **********
-
-	public int size() {
-		return 0;
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-    	return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java
deleted file mode 100644
index 78801cc..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * An empty list value model for when you don't
- * need to support a list.
- * <p>
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullListValueModel<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullListValueModel() {
-		super();
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	public ListIterator<E> listIterator() {
-		return EmptyListIterator.instance();
-	}
-
-	public int size() {
-		return 0;
-	}
-
-	public E get(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public Object[] toArray() {
-		return EMPTY_ARRAY;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java
deleted file mode 100644
index f445d96..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A property value model for when you
- * don't need to support a value.
- * <p>
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullPropertyValueModel<T>
-	extends AbstractModel
-	implements PropertyValueModel<T>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullPropertyValueModel() {
-		super();
-	}
-	
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return null;
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java
deleted file mode 100644
index ad4b960..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.TreeValueModel;
-
-/**
- * A tree value model for when you
- * don't need to support any nodes.
- * <p>
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullTreeValueModel<E>
-	extends AbstractModel
-	implements TreeValueModel<E>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullTreeValueModel() {
-		super();
-	}
-	
-
-	// ********** TreeValueModel implementation **********
-
-	public Iterator<E> nodes() {
-		return EmptyIterator.instance();
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java
deleted file mode 100644
index 327a734..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This {@link AspectPropertyValueModelAdapter} provides basic property change support.
- * This converts a set of one or more standard properties into
- * a single {@link #VALUE} property.
- * <p>
- * The typical subclass will override the following methods (see the descriptions
- * in {@link AspectPropertyValueModelAdapter}):<ul>
- * <li>{@link #buildValue_()}
- * <li>{@link #setValue_(Object)}
- * <li>{@link #buildValue()}
- * <li>{@link #setValue(Object)}
- * </ul>
- */
-public abstract class PropertyAspectAdapter<S extends Model, V>
-	extends AspectPropertyValueModelAdapter<S, V>
-{
-	/** The name of the subject's properties that we use for the value. */
-	protected final String[] propertyNames;
-		protected static final String[] EMPTY_PROPERTY_NAMES = new String[0];
-
-	/** A listener that listens to the appropriate properties of the subject. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a property aspect adapter for the specified subject
-	 * and property.
-	 */
-	protected PropertyAspectAdapter(String propertyName, S subject) {
-		this(new String[] {propertyName}, subject);
-	}
-
-	/**
-	 * Construct a property aspect adapter for the specified subject
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(String[] propertyNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), propertyNames);
-	}
-
-	/**
-	 * Construct a property aspect adapter for the specified subject holder
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... propertyNames) {
-		super(subjectHolder);
-		this.propertyNames = propertyNames;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-	}
-
-	/**
-	 * Construct a property aspect adapter for the specified subject holder
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> propertyNames) {
-		this(subjectHolder, propertyNames.toArray(new String[propertyNames.size()]));
-	}
-
-	/**
-	 * Construct a property aspect adapter for an "unchanging" property in
-	 * the specified subject. This is useful for a property aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new property. (A {@link TransformationPropertyValueModel} could also be
-	 * used in this situation.)
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_PROPERTY_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		// transform the subject's property change events into VALUE property change events
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyAspectAdapter.this.propertyChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "property change listener: " + Arrays.asList(PropertyAspectAdapter.this.propertyNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-    @Override
-	protected void engageSubject_() {
-    	for (String propertyName : this.propertyNames) {
-			((Model) this.subject).addPropertyChangeListener(propertyName, this.propertyChangeListener);
-		}
-	}
-
-    @Override
-	protected void disengageSubject_() {
-    	for (String propertyName : this.propertyNames) {
-			((Model) this.subject).removePropertyChangeListener(propertyName, this.propertyChangeListener);
-		}
-	}
-
-    protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) {
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java
deleted file mode 100644
index 1d432ae..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * An adapter that allows us to make a {@link PropertyValueModel} behave like
- * a read-only, single-element {@link CollectionValueModel}, sorta.
- * <p>
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a collection with a <code>null</code> element).
- */
-public class PropertyCollectionValueModelAdapter<E>
-	extends AbstractCollectionValueModel
-	implements CollectionValueModel<E>
-{
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends E> valueHolder;
-
-	/** A listener that forwards any events fired by the value holder. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-	/** Cache the value. */
-	protected E value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Convert the specified property value model to a collection
-	 * value model.
-	 */
-	public PropertyCollectionValueModelAdapter(PropertyValueModel<? extends E> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		this.value = null;
-		// postpone building the value and listening to the underlying value
-		// until we have listeners ourselves...
-	}
-
-	/**
-	 * The wrapped value has changed, forward an equivalent
-	 * collection change event to our listeners.
-	 */
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				@SuppressWarnings("unchecked")
-				E eventNewValue = (E) event.getNewValue();
-				PropertyCollectionValueModelAdapter.this.valueChanged(eventNewValue);
-			}
-			@Override
-			public String toString() {
-				return "property change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return (this.value == null) ? EmptyIterator.<E>instance() : this.iterator_();
-	}
-
-	protected Iterator<E> iterator_() {
-		return new SingleElementIterator<E>(this.value);
-	}
-
-	public int size() {
-		return (this.value == null) ? 0 : 1;
-	}
-
-
-	// ********** AbstractCollectionValueModel implementation **********
-
-	@Override
-	protected void engageModel() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// synch our value *after* we start listening to the value holder,
-		// since its value might change when a listener is added
-		this.value = this.valueHolder.getValue();
-	}
-
-	@Override
-	protected void disengageModel() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// clear out the value when we are not listening to the value holder
-		this.value = null;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * synchronize our internal value with the wrapped value
-	 * and fire the appropriate events
-	 */
-	protected void valueChanged(E newValue) {
-		E oldValue = this.value;
-		this.value = newValue;
-		if (oldValue == null) {
-			// we wouldn't get the event if the new value were null too
-			this.fireItemAdded(VALUES, newValue);
-		} else {
-			if (newValue == null) {
-				this.fireItemRemoved(VALUES, oldValue);
-			} else {
-				// we wouldn't get the event if the new value was the same as the old
-				this.fireCollectionChanged(VALUES, Collections.singleton(newValue));
-			}
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java
deleted file mode 100644
index 81fa3cc..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * An adapter that allows us to make a {@link PropertyValueModel} behave like
- * a read-only, single-element {@link ListValueModel}, sorta.
- * <p>
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a collection with a <code>null</code> element).
- */
-public class PropertyListValueModelAdapter<E>
-	extends AbstractListValueModel
-	implements ListValueModel<E>
-{
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends E> valueHolder;
-
-	/** A listener that forwards any events fired by the value holder. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-	/** Cache the value. */
-	protected E value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Convert the specified property value model to a list
-	 * value model.
-	 */
-	public PropertyListValueModelAdapter(PropertyValueModel<? extends E> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		// postpone building the value and listening to the underlying value
-		// until we have listeners ourselves...
-	}
-
-	/**
-	 * The wrapped value has changed, forward an equivalent
-	 * list change event to our listeners.
-	 */
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				@SuppressWarnings("unchecked")
-				E eventNewValue = (E) event.getNewValue();
-				PropertyListValueModelAdapter.this.valueChanged(eventNewValue);
-			}
-			@Override
-			public String toString() {
-				return "property change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return (this.value == null) ?
-					EmptyListIterator.<E>instance()
-				:
-					new SingleElementListIterator<E>(this.value);
-	}
-
-	public int size() {
-		return (this.value == null) ? 0 : 1;
-	}
-
-	public E get(int index) {
-		if (this.value == null) {
-			throw this.buildIOOBE(index, 0);
-		}
-		if (index > 0) {
-			throw this.buildIOOBE(index, 1);
-		}
-		return this.value;
-	}
-
-	protected static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-	public Object[] toArray() {
-		return (this.value == null) ? EMPTY_OBJECT_ARRAY : new Object[] {this.value};
-	}
-
-
-	// ********** behavior **********
-
-	protected IndexOutOfBoundsException buildIOOBE(int index, int size) {
-		return new IndexOutOfBoundsException("Index: " + index + ", Size: " + size); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	@Override
-	protected void engageModel() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// synch our value *after* we start listening to the value holder,
-		// since its value might change when a listener is added
-		this.value = this.valueHolder.getValue();
-	}
-
-	@Override
-	protected void disengageModel() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// clear out the value when we are not listening to the value holder
-		this.value = null;
-	}
-
-	/**
-	 * synchronize our internal value with the wrapped value
-	 * and fire the appropriate events
-	 */
-	protected void valueChanged(E newValue) {
-		E oldValue = this.value;
-		this.value = newValue;
-		if (oldValue == null) {
-			this.fireItemAdded(LIST_VALUES, 0, newValue);
-		} else {
-			if (newValue == null) {
-				this.fireItemRemoved(LIST_VALUES, 0, oldValue);
-			} else {
-				this.fireItemReplaced(LIST_VALUES, 0, newValue, oldValue);
-			}
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java
deleted file mode 100644
index 241b85d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another property value model, "lazily" listen to it, and propagate
- * its change notifications. Subclasses must implement the appropriate
- * {@link PropertyValueModel}.
- * <p>
- * Subclasses must implement the following methods:<ul>
- * <li>{@link #valueChanged(PropertyChangeEvent)}<p>
- *     implement this method to propagate the appropriate change notification
- * </ul>
- */
-public abstract class PropertyValueModelWrapper<V>
-	extends AbstractPropertyValueModel
-{
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends V> valueHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped value holder. */
-	protected final PropertyChangeListener valueChangeListener;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * property value model. The value holder is required.
-	 */
-	protected PropertyValueModelWrapper(PropertyValueModel<? extends V> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.valueChangeListener = this.buildValueChangeListener();
-	}
-	
-	protected PropertyChangeListener buildValueChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyValueModelWrapper.this.valueChanged(event);
-			}
-		    @Override
-			public String toString() {
-				return "value change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-	
-	/**
-	 * Begin listening to the value holder.
-	 */
-	@Override
-	protected void engageModel() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-	}
-	
-	/**
-	 * Stop listening to the value holder.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-	}
-	
-
-	// ********** property change support **********
-
-	/**
-	 * The value of the wrapped value holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void valueChanged(PropertyChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java
deleted file mode 100644
index dcf7b97..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A simple implementation of {@link WritablePropertyValueModel} that actually
- * ... <em>isn't</em> ... writable.  It can however be used in places that require a 
- * {@link WritablePropertyValueModel} and where the developer is sure that no 
- * attempt will be made to write to it.
- */
-public class ReadOnlyWritablePropertyValueModelWrapper<T>
-	extends PropertyValueModelWrapper<T>
-	implements WritablePropertyValueModel<T>
-{
-	public ReadOnlyWritablePropertyValueModelWrapper(PropertyValueModel<? extends T> valueHolder) {
-		super(valueHolder);
-	}
-
-
-	public T getValue() {
-		return this.valueHolder.getValue();
-	}
-
-	public void setValue(T value) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		this.firePropertyChanged(event.clone(this));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java
deleted file mode 100644
index d04722f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.HashBag;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * A <code>SetCollectionValueModel</code> wraps another
- * {@link CollectionValueModel} and returns the items in the collection
- * only once.
- */
-public class SetCollectionValueModel<E>
-	extends CollectionValueModelWrapper<E>
-	implements CollectionValueModel<E>
-{
-	private final HashBag<E> bag = new HashBag<E>();
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and a filter that simply accepts every object.
-	 */
-	public SetCollectionValueModel(CollectionValueModel<? extends E> collectionHolder) {
-		super(collectionHolder);
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and a filter that simply accepts every object.
-	 */
-	public SetCollectionValueModel(ListValueModel<E> listHolder) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder));
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.bag.uniqueIterator());
-	}
-
-	public int size() {
-		return this.bag.uniqueCount();
-	}
-
-
-	// ********** CollectionValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the nested collection,
-		// since its value might change when a listener is added
-		CollectionTools.addAll(this.bag, this.collectionHolder);
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the cache when we are not listening to the nested collection
-		this.bag.clear();
-	}
-
-	@Override
-	protected void itemsAdded(CollectionAddEvent event) {
-		ArrayList<E> addedItems = new ArrayList<E>(event.getItemsSize());
-		int uniqueCount = this.bag.uniqueCount();
-		for (E item : this.getItems(event)) {
-			this.bag.add(item);
-			if (this.bag.uniqueCount() > uniqueCount) {
-				uniqueCount = this.bag.uniqueCount();
-				addedItems.add(item);
-			}
-		}
-		this.fireItemsAdded(VALUES, addedItems);
-	}
-
-	@Override
-	protected void itemsRemoved(CollectionRemoveEvent event) {
-		ArrayList<E> removedItems = new ArrayList<E>(event.getItemsSize());
-		int uniqueCount = this.bag.uniqueCount();
-		for (E item : this.getItems(event)) {
-			if (this.bag.remove(item)) {
-				if (this.bag.uniqueCount() < uniqueCount) {
-					uniqueCount = this.bag.uniqueCount();
-					removedItems.add(item);
-				}
-			} else {
-				throw new IllegalStateException("missing item: " + item); //$NON-NLS-1$
-			}
-		}
-		this.fireItemsRemoved(VALUES, removedItems);
-	}
-
-	@Override
-	protected void collectionCleared(CollectionClearEvent event) {
-		this.clearCollection(this.bag, VALUES);
-	}
-
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.bag.clear();
-		CollectionTools.addAll(this.bag, this.collectionHolder);
-		this.fireCollectionChanged(VALUES, new HashSet<E>(this.bag));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		StringTools.append(sb, this);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java
deleted file mode 100644
index 794eec1..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.HashBag;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-
-/**
- * Implementation of {@link WritableCollectionValueModel} and {@link Collection}
- * that simply holds a collection and notifies listeners of any changes.
- */
-public class SimpleCollectionValueModel<E>
-	extends AbstractModel
-	implements WritableCollectionValueModel<E>, Collection<E>
-{
-	/** The collection. */
-	protected final Collection<E> collection;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model for the specified collection.
-	 */
-	public SimpleCollectionValueModel(Collection<E> collection) {
-		super();
-		if (collection == null) {
-			throw new NullPointerException();
-		}
-		this.collection = collection;
-	}
-
-	/**
-	 * Construct a collection value model with an empty initial collection.
-	 */
-	public SimpleCollectionValueModel() {
-		this(new HashBag<E>());
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, VALUES);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalIterator<E>(this.collection.iterator());
-	}
-
-	public int size() {
-		return this.collection.size();
-	}
-
-
-	// ********** WritableCollectionValueModel implementation **********
-
-	/**
-	 * Allow the collection's elements to be replaced.
-	 */
-	public void setValues(Iterable<E> values) {
-		if (values == null) {
-			throw new NullPointerException();
-		}
-		this.collection.clear();
-		CollectionTools.addAll(this.collection, values);
-		this.fireCollectionChanged(VALUES, this.collection);
-	}
-
-
-	// ********** Collection implementation **********
-
-	public boolean isEmpty() {
-		return this.collection.isEmpty();
-	}
-
-	public boolean contains(Object o) {
-		return this.collection.contains(o);
-	}
-
-	public Object[] toArray() {
-		return this.collection.toArray();
-	}
-
-	public <T extends Object> T[] toArray(T[] a) {
-		return this.collection.toArray(a);
-	}
-
-	public boolean add(E o) {
-		return this.addItemToCollection(o, this.collection, VALUES);
-	}
-
-	public boolean remove(Object o) {
-		return this.removeItemFromCollection(o, this.collection, VALUES);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.collection.containsAll(c);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.addItemsToCollection(c, this.collection, VALUES);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.removeItemsFromCollection(c, this.collection, VALUES);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.retainItemsInCollection(c, this.collection, VALUES);
-	}
-
-	public void clear() {
-		this.clearCollection(this.collection, VALUES);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ((o instanceof Collection<?>) && (o instanceof CollectionValueModel<?>)) {
-			Collection<E> c1 = CollectionTools.collection(this.collection);
-			@SuppressWarnings("unchecked")
-			Collection<E> c2 = CollectionTools.collection(((Collection<E>) o).iterator());
-			return c1.equals(c2);
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return CollectionTools.collection(this.collection).hashCode();
-	}
-
-
-	// ********** miscellaneous **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collection);
-	}
-
-
-	// ********** iterator **********
-
-	private class LocalIterator<T> implements Iterator<T> {
-		private final Iterator<T> iterator;
-		private T next;
-
-		LocalIterator(Iterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			return this.next = this.iterator.next();
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleCollectionValueModel.this.fireItemRemoved(VALUES, this.next);
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java
deleted file mode 100644
index 90943f9..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableListValueModel;
-
-/**
- * Implementation of {@link ListValueModel} and {@link List} that simply holds a
- * list and notifies listeners of any changes.
- */
-public class SimpleListValueModel<E>
-	extends AbstractModel
-	implements WritableListValueModel<E>, List<E>
-{
-	/** The list. */
-	protected List<E> list;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model for the specified list.
-	 */
-	public SimpleListValueModel(List<E> list) {
-		super();
-		if (list == null) {
-			throw new NullPointerException();
-		}
-		this.list = list;
-	}
-
-	/**
-	 * Construct a list value model with an empty initial list.
-	 */
-	public SimpleListValueModel() {
-		this(new ArrayList<E>());
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, LIST_VALUES);
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalIterator<E>(this.list.iterator());
-	}
-
-	public ListIterator<E> listIterator() {
-		return new LocalListIterator<E>(this.list.listIterator());
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-
-	// ********** WritableListValueModel implementation **********
-
-	/**
-	 * Allow the list's elements to be replaced.
-	 */
-	public void setListValues(Iterable<E> list) {
-		if (list == null) {
-			throw new NullPointerException();
-		}
-		this.list.clear();
-		CollectionTools.addAll(this.list, list);
-		this.fireListChanged(LIST_VALUES, this.list);
-	}
-
-
-	// ********** List implementation **********
-
-	public boolean isEmpty() {
-		return this.list.isEmpty();
-	}
-
-	public boolean contains(Object o) {
-		return this.list.contains(o);
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-	public <T extends Object> T[] toArray(T[] a) {
-		return this.list.toArray(a);
-	}
-
-	public boolean add(E o) {
-		return this.addItemToList(o, this.list, LIST_VALUES);
-	}
-
-	public boolean remove(Object o) {
-		return this.removeItemFromList(o, this.list, LIST_VALUES);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.list.containsAll(c);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.addItemsToList(c, this.list, LIST_VALUES);
-	}
-
-	public boolean addAll(int index, Collection<? extends E> c) {
-		return this.addItemsToList(index, c, this.list, LIST_VALUES);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.removeItemsFromList(c, this.list, LIST_VALUES);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.retainItemsInList(c, this.list, LIST_VALUES);
-	}
-
-	public void clear() {
-		this.clearList(this.list, LIST_VALUES);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ((o instanceof List<?>) && (o instanceof ListValueModel<?>)) {
-			List<E> l1 = CollectionTools.list(this.list);
-			@SuppressWarnings("unchecked")
-			List<E> l2 = CollectionTools.list(((List<E>) o).iterator());
-			return l1.equals(l2);
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.list.hashCode();
-	}
-
-	public E set(int index, E element) {
-		return this.setItemInList(index, element, this.list, LIST_VALUES);
-	}
-
-	public void add(int index, E element) {
-		this.addItemToList(index, element, this.list, LIST_VALUES);
-	}
-
-	public E remove(int index) {
-		return this.removeItemFromList(index, this.list, LIST_VALUES);
-	}
-
-	public int indexOf(Object o) {
-		return this.list.indexOf(o);
-	}
-
-	public int lastIndexOf(Object o) {
-		return this.list.lastIndexOf(o);
-	}
-
-	public ListIterator<E> listIterator(int index) {
-		return new LocalListIterator<E>(this.list.listIterator(index));
-	}
-
-	public List<E> subList(int fromIndex, int toIndex) {
-		// TODO hmmm  ~bjv
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** additional behavior **********
-
-	/**
-	 * Move a single element.
-	 */
-	public void move(int targetIndex, int sourceIndex) {
-		this.moveItemInList(targetIndex, sourceIndex, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Move a sub-list of elements.
-	 */
-	public void move(int targetIndex, int sourceIndex, int length) {
-		this.moveItemsInList(targetIndex, sourceIndex, length, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Remove a range of elements.
-	 */
-	public void remove(int index, int length) {
-		this.removeItemsFromList(index, length, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Set a range of elements.
-	 */
-	public void set(int index, List<E> elements) {
-		this.setItemsInList(index, elements, this.list, LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.list);
-	}
-
-
-	// ********** iterators **********
-
-	private class LocalIterator<T> implements Iterator<T> {
-		private final Iterator<T> iterator;
-		private int index = -1;
-		private T next;
-
-		LocalIterator(Iterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			this.next = this.iterator.next();
-			this.index++;
-			return this.next;
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.index, this.next);
-		}
-
-	}
-
-	private class LocalListIterator<T> implements ListIterator<T> {
-		private final ListIterator<T> iterator;
-		private int last = -1;
-		private int next = 0;
-		private T current;
-
-		LocalListIterator(ListIterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			this.current = this.iterator.next();
-			this.last = this.next++;
-			return this.current;
-		}
-
-		public int nextIndex() {
-			return this.iterator.nextIndex();
-		}
-
-		public boolean hasPrevious() {
-			return this.iterator.hasPrevious();
-		}
-
-		public T previous() {
-			this.current = this.iterator.previous();
-			this.last = --this.next;
-			return this.current;
-		}
-
-		public int previousIndex() {
-			return this.iterator.previousIndex();
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void set(T o) {
-			this.iterator.set(o);
-			SimpleListValueModel.this.fireItemReplaced(LIST_VALUES, this.last, o, this.current);
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void add(T o) {
-			this.iterator.add(o);
-			SimpleListValueModel.this.fireItemAdded(LIST_VALUES, this.next, o);
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.last, this.current);
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java
deleted file mode 100644
index 844d1c6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Implementation of {@link WritablePropertyValueModel} that simply holds on to an
- * object and uses it as the value.
- */
-public class SimplePropertyValueModel<T>
-	extends AbstractModel
-	implements WritablePropertyValueModel<T>
-{
-	/** The value. */
-	protected T value;
-
-
-	/**
-	 * Construct a property value model for the specified value.
-	 */
-	public SimplePropertyValueModel(T value) {
-		super();
-		this.value = value;
-	}
-
-	/**
-	 * Construct a property value model with a starting value of null.
-	 */
-	public SimplePropertyValueModel() {
-		this(null);
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, VALUE);
-	}
-
-
-	public T getValue() {
-		return this.value;
-	}
-
-	public void setValue(T value) {
-		T old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE, old, value);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java
deleted file mode 100644
index 0f1ff4c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.Range;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * An adapter that allows us to make a {@link CollectionValueModel}
- * (or {@link ListValueModel}) behave like a {@link ListValueModel}
- * that keeps its contents sorted and notifies listeners appropriately.
- * <p>
- * The {@link Comparator} can be changed at any time; allowing the same
- * adapter to be used with different sort criteria (e.g. when the user
- * wants to sort a list of files first by name, then by date, then by size).
- * <p>
- * <strong>NB:</strong> Since we only listen to the wrapped collection when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * collection while we are listening to it, results to various methods
- * (e.g. {@link #size()}, {@link #get(int)}) will be
- * unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- * 
- * @see SortedListValueModelWrapper
- */
-public class SortedListValueModelAdapter<E>
-	extends CollectionListValueModelAdapter<E>
-{
-	/**
-	 * A comparator used for sorting the elements;
-	 * if it is null, we use "natural ordering".
-	 */
-	protected Comparator<E> comparator;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified collection value model and sort its contents
-	 * using the specified comparator.
-	 */
-	public SortedListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder, Comparator<E> comparator) {
-		super(collectionHolder);
-		this.comparator = comparator;
-	}
-
-	/**
-	 * Wrap the specified collection value model and sort its contents
-	 * based on the elements' "natural ordering".
-	 */
-	public SortedListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		this(collectionHolder, null);
-	}
-
-
-	// ********** accessors **********
-
-	public void setComparator(Comparator<E> comparator) {
-		this.comparator = comparator;
-		this.sortList();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Sort the internal list before the superclass
-	 * sends out change notification.
-	 */
-	@Override
-	protected void buildList(int size) {
-		super.buildList(size);
-		Collections.sort(this.list, this.comparator);
-	}
-
-	/**
-	 * Sort the list after adding the items.
-	 */
-	@Override
-	protected void itemsAdded(CollectionAddEvent event) {
-		@SuppressWarnings("unchecked")
-		ArrayList<E> newList = (ArrayList<E>) this.list.clone();
-		newList.ensureCapacity(newList.size() + event.getItemsSize());
-		CollectionTools.addAll(newList, this.getItems(event));
-		Collections.sort(newList, this.comparator);
-		this.synchronizeList(newList, this.list, LIST_VALUES);
-	}
-
-	@Override
-	protected Iterable<? extends E> buildSyncList() {
-		return CollectionTools.sortedSet(this.collectionHolder, this.comparator, this.collectionHolder.size());
-	}
-
-	/**
-	 * sort the list and notify our listeners, if necessary;
-	 */
-	protected void sortList() {
-		// save the unsorted state of the sorted list so we can minimize the number of "replaced" items
-		@SuppressWarnings("unchecked")
-		ArrayList<E> unsortedList = (ArrayList<E>) this.list.clone();
-		Collections.sort(this.list, this.comparator);
-		Range diffRange = CollectionTools.identityDiffRange(unsortedList, this.list);
-		if (diffRange.size > 0) {
-			List<E> unsortedItems = unsortedList.subList(diffRange.start, diffRange.end + 1);
-			List<E> sortedItems = this.list.subList(diffRange.start, diffRange.end + 1);
-			this.fireItemsReplaced(LIST_VALUES, diffRange.start, sortedItems, unsortedItems);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java
deleted file mode 100644
index 8514f37..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.Range;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * A wrapper that keeps the contents of a {@link ListValueModel} sorted
- * and notifies listeners appropriately.
- * <p>
- * The {@link Comparator} can be changed at any time; allowing the same
- * adapter to be used with different sort criteria (e.g. when the user
- * wants to sort a list of files first by name, then by date, then by size).
- * <p>
- * <strong>NB:</strong> Since we only listen to the wrapped collection when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * collection while we are listening to it, results to various methods
- * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- * 
- * @see SortedListValueModelAdapter
- */
-public class SortedListValueModelWrapper<E>
-	extends ListValueModelWrapper<E>
-	implements ListValueModel<E>
-{
-	/**
-	 * A comparator used for sorting the elements;
-	 * if it is null, we use "natural ordering".
-	 */
-	protected Comparator<E> comparator;
-
-	/**
-	 * Our internal list, which holds the same elements as
-	 * the wrapped list, but keeps them sorted.
-	 */
-	// we declare this an ArrayList so we can use #clone() and #ensureCapacity(int)
-	protected final ArrayList<E> sortedList;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified list value model and sort its contents
-	 * using the specified comparator.
-	 */
-	public SortedListValueModelWrapper(ListValueModel<? extends E> listHolder, Comparator<E> comparator) {
-		super(listHolder);
-		this.comparator = comparator;
-		this.sortedList = new ArrayList<E>(listHolder.size());
-		// postpone building the sorted list and listening to the wrapped list
-		// until we have listeners ourselves...
-	}
-
-	/**
-	 * Wrap the specified list value model and sort its contents
-	 * based on the elements' "natural ordering".
-	 */
-	public SortedListValueModelWrapper(ListValueModel<? extends E> listHolder) {
-		this(listHolder, null);
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.sortedList);
-	}
-
-	public E get(int index) {
-		return this.sortedList.get(index);
-	}
-
-	public int size() {
-		return this.sortedList.size();
-	}
-
-	public Object[] toArray() {
-		return this.sortedList.toArray();
-	}
-
-
-	// ********** accessors **********
-
-	public void setComparator(Comparator<E> comparator) {
-		this.comparator = comparator;
-		this.sortList();
-	}
-
-
-	// ********** behavior **********
-
-    @Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch the sorted list *after* we start listening to the wrapped list holder,
-		// since its value might change when a listener is added
-		this.buildSortedList();
-	}
-
-    @Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the sorted list when we are not listening to the wrapped list holder
-		this.sortedList.clear();
-	}
-
-	protected void buildSortedList() {
-		// if the new list is empty, do nothing
-		int size = this.listHolder.size();
-		if (size != 0) {
-			this.buildSortedList(size);
-		}
-	}
-
-	protected void buildSortedList(int size) {
-		this.sortedList.ensureCapacity(size);
-		for (E each : this.listHolder) {
-			this.sortedList.add(each);
-		}
-		Collections.sort(this.sortedList, this.comparator);
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list.
-	 */
-    @Override
-	protected void itemsAdded(ListAddEvent event) {
-		// first add the items and notify our listeners...
-		this.addItemsToList(this.getItems(event), this.sortedList, LIST_VALUES);
-		// ...then sort the list and notify our listeners
-		this.sortList();
-	}
-
-	/**
-	 * Items were removed from the wrapped list.
-	 */
-    @Override
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.removeItemsFromList(this.getItems(event), this.sortedList, LIST_VALUES);
-		// no sorting needed
-	}
-
-	/**
-	 * Items were replaced in the wrapped list.
-	 */
-    @Override
-	protected void itemsReplaced(ListReplaceEvent event) {
-		// first remove the old items and notify our listeners...
-		this.removeItemsFromList(this.getOldItems(event), this.sortedList, LIST_VALUES);
-		// then add the new items and notify our listeners...
-		this.addItemsToList(this.getNewItems(event), this.sortedList, LIST_VALUES);
-		// ...then sort the list and notify our listeners
-		this.sortList();
-	}
-
-	/**
-	 * Items were moved in the wrapped list.
-	 */
-    @Override
-	protected void itemsMoved(ListMoveEvent event) {
-    	// do nothing - sort order should remain unchanged
-	}
-
-	/**
-	 * The wrapped list was cleared.
-	 */
-    @Override
-	protected void listCleared(ListClearEvent event) {
-    	this.clearList(this.sortedList, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list has changed in some dramatic fashion.
-	 * Rebuild our sorted list and notify our listeners.
-	 */
-    @Override
-	protected void listChanged(ListChangeEvent event) {
-		int size = this.listHolder.size();
-		if (size == 0) {
-			if (this.sortedList.isEmpty()) {
-				// no change
-			} else {
-				this.clearList(this.sortedList, LIST_VALUES);
-			}
-		} else {
-			if (this.sortedList.isEmpty()) {
-				this.buildSortedList(size);
-				this.fireItemsAdded(LIST_VALUES, 0, this.sortedList);
-			} else {
-				this.sortedList.clear();
-				this.buildSortedList(size);
-				this.fireListChanged(LIST_VALUES, this.sortedList);
-			}
-		}
-	}
-
-	/**
-	 * sort the sorted list and notify our listeners, if necessary;
-	 */
-	protected void sortList() {
-		// save the unsorted state of the sorted list so we can minimize the number of "replaced" items
-		@SuppressWarnings("unchecked")
-		ArrayList<E> unsortedList = (ArrayList<E>) this.sortedList.clone();
-		Collections.sort(this.sortedList, this.comparator);
-		Range diffRange = CollectionTools.identityDiffRange(unsortedList, this.sortedList);
-		if (diffRange.size > 0) {
-			List<E> unsortedItems = unsortedList.subList(diffRange.start, diffRange.end + 1);
-			List<E> sortedItems = this.sortedList.subList(diffRange.start, diffRange.end + 1);
-			this.fireItemsReplaced(LIST_VALUES, diffRange.start, sortedItems, unsortedItems);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.sortedList);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java
deleted file mode 100644
index 6d179ff..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a model, "lazily" listen to it, and convert
- * its state change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must implement:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current model
- * </ul>
- * Subclasses might want to override the following methods
- * to improve performance (by not recalculating the value, if possible):<ul>
- * <li>{@link #stateChanged(StateChangeEvent event)}
- * </ul>
- */
-public abstract class StatePropertyValueModelAdapter<T>
-	extends AbstractPropertyValueModelAdapter<T>
-{
-	/** The wrapped model. */
-	protected final Model model;
-
-	/** A listener that allows us to synch with changes to the wrapped model. */
-	protected final StateChangeListener stateChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped model.
-	 */
-	protected StatePropertyValueModelAdapter(Model model) {
-		super();
-		this.model = model;
-		this.stateChangeListener = this.buildStateChangeListener();
-	}
-
-	protected StateChangeListener buildStateChangeListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				StatePropertyValueModelAdapter.this.stateChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "state change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the model.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.model.addStateChangeListener(this.stateChangeListener);
-	}
-
-	/**
-	 * Stop listening to the model.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.model.removeStateChangeListener(this.stateChangeListener);
-	}
-
-	
-	// ********** state change support **********
-
-	/**
-	 * The model's state changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void stateChanged(@SuppressWarnings("unused") StateChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java
deleted file mode 100644
index 8545286..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-
-/**
- * Implementation of {@link CollectionValueModel} that can be used for
- * returning an iterator on a static collection, but still allows listeners to be added.
- * Listeners will <em>never</em> be notified of any changes, because there should be none.
- */
-public class StaticCollectionValueModel<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	/** The elements. */
-	protected final Object[] elements;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static collection value model for the specified array.
-	 */
-	public StaticCollectionValueModel(E... elements) {
-		super();
-		this.elements = elements.clone();
-	}
-
-	/**
-	 * Construct a static collection value model for the specified elements.
-	 */
-	public StaticCollectionValueModel(Iterable<? extends E> elements) {
-		super();
-		this.elements = ArrayTools.array(elements);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public int size() {
-		return this.elements.length;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		// we can cast here since our constructors require the elements to be
-		// of type E and ArrayIterator is read-only
-		return (Iterator<E>) new ArrayIterator<Object>(this.elements);
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(Arrays.toString(this.elements));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java
deleted file mode 100644
index c08b6f4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * Implementation of {@link ListValueModel} that can be used for
- * returning a list iterator on a static list, but still allows listeners to be added.
- * Listeners will <em>never</em> be notified of any changes, because there should be none.
- */
-public class StaticListValueModel<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-	/** The elements. */
-	protected final Object[] elements;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static list value model for the specified elements.
-	 */
-	public StaticListValueModel(E... elements) {
-		super();
-		this.elements = elements.clone();
-	}
-
-	/**
-	 * Construct a static list value model for the specified elements.
-	 */
-	public StaticListValueModel(Iterable<? extends E> elements) {
-		super();
-		this.elements = ArrayTools.array(elements);
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		// we can cast here since our constructors require the elements to be
-		// of type E and ArrayIterator is read-only
-		return (Iterator<E>) new ArrayIterator<Object>(this.elements);
-	}
-
-	@SuppressWarnings("unchecked")
-	public ListIterator<E> listIterator() {
-		// we can cast here since our constructors require the elements to be
-		// of type E and ArrayListIterator is read-only
-		return (ListIterator<E>) new ArrayListIterator<Object>(this.elements);
-	}
-
-	public int size() {
-		return this.elements.length;
-	}
-
-	@SuppressWarnings("unchecked")
-	public E get(int index) {
-		// we can cast here since our constructors require the elements to be
-		// of type E
-		return (E) this.elements[index];
-	}
-
-	public Object[] toArray() {
-		return this.elements.clone();
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(Arrays.toString(this.elements));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java
deleted file mode 100644
index 678f5aa..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * Implementation of {@link PropertyValueModel} that can be used for
- * returning a static value, but still allows listeners to be added.
- * Listeners will <em>never</em> be notified of any changes, because there should be none.
- */
-public class StaticPropertyValueModel<T>
-	extends AbstractModel
-	implements PropertyValueModel<T>
-{
-	/** The value. */
-	protected final T value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static property value model for the specified value.
-	 */
-	public StaticPropertyValueModel(T value) {
-		super();
-		this.value = value;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return this.value;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java
deleted file mode 100644
index 576e608..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.model.value.TreeValueModel;
-
-/**
- * Implementation of {@link TreeValueModel} that can be used for
- * returning an iterator on a static tree, but still allows listeners to be added.
- * Listeners will <em>never</em> be notified of any changes, because there should be none.
- */
-public class StaticTreeValueModel<E>
-	extends AbstractModel
-	implements TreeValueModel<E>
-{
-	/** The tree's nodes. */
-	protected final Iterable<? extends E> nodes;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a read-only tree value model for the specified nodes.
-	 */
-	public StaticTreeValueModel(Iterable<? extends E> nodes) {
-		super();
-		if (nodes == null) {
-			throw new NullPointerException();
-		}
-		this.nodes = nodes;
-	}
-
-	// ********** TreeValueModel implementation **********
-
-	public Iterator<E> nodes() {
-		return new ReadOnlyIterator<E>(this.nodes.iterator());
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.nodes);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java
deleted file mode 100644
index 4a241b3..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to transform a {@link ListValueModel}
- * (or adapted {@link CollectionValueModel}) into a read-only {@link ListValueModel}
- * whose items are tranformations of the items in the wrapped
- * {@link ListValueModel}. It will keep its contents in synch with
- * the contents of the wrapped {@link ListValueModel} and notifies its
- * listeners of any changes.
- * <p>
- * The {@link Transformer} can be changed at any time; allowing the same
- * adapter to be used with different transformations.
- * <p>
- * As an alternative to building a {@link Transformer},
- * a subclass of <code>TransformationListValueModelAdapter</code> can
- * either override {@link #transformItem_(Object)} or,
- * if something other than null should be returned when the wrapped item
- * is null, override {@link #transformItem(Object)}.
- * <p>
- * <strong>NB:</strong> Since we only listen to the wrapped list when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * list while we are listening to it, results to various methods
- * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, clients will also be listeners.
- * 
- * @see Transformer
- */
-public class TransformationListValueModel<E1, E2>
-	extends ListValueModelWrapper<E1>
-	implements ListValueModel<E2>
-{
-
-	/** This transforms the items, unless the subclass overrides {@link #transformItem(Object)}). */
-	protected Transformer<E1, E2> transformer;
-
-	/** The list of transformed items. */
-	protected final List<E2> transformedList;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model with the specified nested
-	 * list value model and transformer.
-	 */
-	public TransformationListValueModel(ListValueModel<? extends E1> listHolder, Transformer<E1, E2> transformer) {
-		super(listHolder);
-		this.transformer = transformer;
-		this.transformedList = new ArrayList<E2>();
-	}
-
-	/**
-	 * Construct a list value model with the specified nested
-	 * list value model and the default transformer.
-	 * Use this constructor if you want to override
-	 * {@link #transformItem_(Object)} or {@link #transformItem(Object)}
-	 * method instead of building a {@link Transformer}.
-	 */
-	public TransformationListValueModel(ListValueModel<? extends E1> listHolder) {
-		super(listHolder);
-		this.transformer = this.buildTransformer();
-		this.transformedList = new ArrayList<E2>();
-	}
-
-	/**
-	 * Construct a list value model with the specified nested
-	 * collection value model and transformer.
-	 */
-	public TransformationListValueModel(CollectionValueModel<? extends E1> collectionHolder, Transformer<E1, E2> transformer) {
-		this(new CollectionListValueModelAdapter<E1>(collectionHolder), transformer);
-	}
-
-	/**
-	 * Construct a list value model with the specified nested
-	 * collection value model and the default transformer.
-	 * Use this constructor if you want to override
-	 * {@link #transformItem_(Object)} or {@link #transformItem(Object)}
-	 * method instead of building a {@link Transformer}.
-	 */
-	public TransformationListValueModel(CollectionValueModel<? extends E1> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E1>(collectionHolder));
-	}
-
-	protected Transformer<E1, E2> buildTransformer() {
-		return new DefaultTransformer();
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E2> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E2> listIterator() {
-		return new ReadOnlyListIterator<E2>(this.transformedList);
-	}
-
-	public E2 get(int index) {
-		return this.transformedList.get(index);
-	}
-
-	public int size() {
-		return this.transformedList.size();
-	}
-
-	public Object[] toArray() {
-		return this.transformedList.toArray();
-	}
-
-	// ********** behavior **********
-
-    @Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch the transformed list *after* we start listening to the list holder,
-		// since its value might change when a listener is added
-		this.transformedList.addAll(this.transformItems(this.listHolder));
-	}
-
-    @Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the list when we are not listening to the collection holder
-		this.transformedList.clear();
-	}
-
-	/**
-	 * Transform the items in the specified list value model.
-	 */
-	protected List<E2> transformItems(ListValueModel<? extends E1> lvm) {
-		return this.transformItems(lvm, lvm.size());
-	}
-
-	/**
-	 * Transform the items associated with the specified event.
-	 */
-	protected List<E2> transformItems(ListAddEvent event) {
-		return this.transformItems(this.getItems(event), event.getItemsSize());
-	}
-
-	/**
-	 * Transform the items associated with the specified event.
-	 */
-	protected List<E2> transformItems(ListRemoveEvent event) {
-		return this.transformItems(this.getItems(event), event.getItemsSize());
-	}
-
-	/**
-	 * Transform the new items associated with the specified event.
-	 */
-	protected List<E2> transformNewItems(ListReplaceEvent event) {
-		return this.transformItems(this.getNewItems(event), event.getItemsSize());
-	}
-
-	/**
-	 * Transform the old items associated with the specified event.
-	 */
-	protected List<E2> transformOldItems(ListReplaceEvent event) {
-		return this.transformItems(this.getOldItems(event), event.getItemsSize());
-	}
-
-	/**
-	 * Transform the specified items.
-	 */
-	protected List<E2> transformItems(Iterable<? extends E1> items, int size) {
-		List<E2> result = new ArrayList<E2>(size);
-		for (E1 item : items) {
-			result.add(this.transformItem(item));
-		}
-		return result;
-	}
-
-	/**
-	 * Transform the specified item.
-	 */
-	protected E2 transformItem(E1 item) {
-		return this.transformer.transform(item);
-	}
-
-	/**
-	 * Transform the specified, non-null, item and return the result.
-	 */
-	protected E2 transformItem_(@SuppressWarnings("unused") E1 item) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * Change the transformer and rebuild the collection.
-	 */
-	public void setTransformer(Transformer<E1, E2> transformer) {
-		this.transformer = transformer;
-		this.rebuildTransformedList();
-	}
-
-	/**
-	 * Synchronize our cache with the wrapped collection.
-	 */
-	protected void rebuildTransformedList() {
-		this.synchronizeList(this.transformItems(this.listHolder), this.transformedList, LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.transformedList);
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder.
-	 * Transform them, add them to our transformation list,
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsAdded(ListAddEvent event) {
-		this.addItemsToList(event.getIndex(), this.transformItems(event), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder.
-	 * Remove the corresponding items from our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsRemoved(ListRemoveEvent event) {
-		this.removeItemsFromList(event.getIndex(), event.getItemsSize(), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder.
-	 * Replace the corresponding items in our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsReplaced(ListReplaceEvent event) {
-		this.setItemsInList(event.getIndex(), this.transformNewItems(event), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder.
-	 * Move the corresponding items in our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsMoved(ListMoveEvent event) {
-    	this.moveItemsInList(event.getTargetIndex(), event.getSourceIndex(), event.getLength(), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder was cleared.
-	 * Clear our transformation list and notify our listeners.
-	 */
-    @Override
-	protected void listCleared(ListClearEvent event) {
-    	this.clearList(this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder has changed in some dramatic fashion.
-	 * Rebuild our transformation list and notify our listeners.
-	 */
-    @Override
-	protected void listChanged(ListChangeEvent event) {
-		this.rebuildTransformedList();
-	}
-
-
-	// ********** default transformer **********
-
-	/**
-	 * The default transformer will return null if the wrapped item is null.
-	 * If the wrapped item is not null, it is transformed by a subclass
-	 * implementation of {@link TransformationListValueModel#transformItem_(Object)}.
-	 */
-	protected class DefaultTransformer implements Transformer<E1, E2> {
-		public E2 transform(E1 item) {
-			return (item == null) ? null : TransformationListValueModel.this.transformItem_(item);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java
deleted file mode 100644
index 6c7dadb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>TransformationPropertyValueModel</code> wraps another
- * {@link PropertyValueModel} and uses a {@link Transformer}
- * to transform the wrapped value before it is returned by {@link #getValue()}.
- * <p>
- * As an alternative to building a {@link Transformer},
- * a subclass of <code>TransformationPropertyValueModel</code> can
- * either override {@link #transform_(Object)} or,
- * if something other than null should be returned when the wrapped value
- * is null, override {@link #transform(Object)}.
- * 
- * @see Transformer
- */
-public class TransformationPropertyValueModel<T1, T2>
-	extends PropertyValueModelWrapper<T1>
-	implements PropertyValueModel<T2>
-{
-	protected final Transformer<T1, T2> transformer;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and the default transformer.
-	 * Use this constructor if you want to override
-	 * {@link #transform_(Object)} or {@link #transform(Object)}
-	 * method instead of building a {@link Transformer}.
-	 */
-	public TransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder) {
-		super(valueHolder);
-		this.transformer = this.buildTransformer();
-	}
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and transformer.
-	 */
-	public TransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder, Transformer<T1, T2> transformer) {
-		super(valueHolder);
-		this.transformer = transformer;
-	}
-
-	protected Transformer<T1, T2> buildTransformer() {
-		return new DefaultTransformer();
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T2 getValue() {
-		// transform the object returned by the nested value model before returning it
-		return this.transform(this.valueHolder.getValue());
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		// transform the values before propagating the change event
-	    @SuppressWarnings("unchecked")
-	    T1 eventOldValue = (T1) event.getOldValue();
-		Object oldValue = this.transformOld(eventOldValue);
-	    @SuppressWarnings("unchecked")
-	    T1 eventNewValue = (T1) event.getNewValue();
-		Object newValue = this.transformNew(eventNewValue);
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Transform the specified value and return the result.
-	 * This is called by
-	 * {@link #getValue()},
-	 * {@link #transformOld(Object)}, and
-	 * {@link #transformNew(Object)}.
-	 */
-	protected T2 transform(T1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * Transform the specified, non-null, value and return the result.
-	 */
-	protected T2 transform_(@SuppressWarnings("unused") T1 value) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-	/**
-	 * Transform the specified old value and return the result.
-	 * By default, call {@link #transform(Object)}.
-	 * This is called by {@link #valueChanged(PropertyChangeEvent)}.
-	 */
-	protected T2 transformOld(T1 value) {
-		return this.transform(value);
-	}
-	
-	/**
-	 * Transform the specified new value and return the result.
-	 * By default, call {@link #transform(Object)}.
-	 * This is called by {@link #valueChanged(PropertyChangeEvent)}.
-	 */
-	protected T2 transformNew(T1 value) {
-		return this.transform(value);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-
-	// ********** default transformer **********
-
-	/**
-	 * The default transformer will return null if the wrapped value is null.
-	 * If the wrapped value is not null, it is transformed by a subclass
-	 * implementation of {@link TransformationPropertyValueModel#transform_(Object)}.
-	 */
-	protected class DefaultTransformer implements Transformer<T1, T2> {
-		public T2 transform(T1 value) {
-			return (value == null) ? null : TransformationPropertyValueModel.this.transform_(value);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java
deleted file mode 100644
index 1d42d4c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.BidiTransformer;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>TransformationWritablePropertyValueModel</code> wraps another
- * {@link WritablePropertyValueModel} and uses a {@link BidiTransformer}
- * to:<ul>
- * <li>transform the wrapped value before it is returned by {@link #getValue()}
- * <li>"reverse-transform" the new value that comes in via
- * {@link #setValue(Object)}
- * </ul>
- * As an alternative to building a {@link BidiTransformer},
- * a subclass of <code>TransformationWritablePropertyValueModel</code> can
- * override {@link #transform_(Object)} and {@link #reverseTransform_(Object)};
- * or, if something other than null should be returned when the wrapped value
- * is null or the new value is null, override {@link #transform(Object)}
- * and {@link #reverseTransform(Object)}.
- */
-public class TransformationWritablePropertyValueModel<T1, T2>
-	extends TransformationPropertyValueModel<T1, T2>
-	implements WritablePropertyValueModel<T2>
-{
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and the default bidi transformer.
-	 * Use this constructor if you want to override the
-	 * {@link #transform_(Object)} and {@link #reverseTransform_(Object)}
-	 * (or {@link #transform(Object)} and {@link #reverseTransform(Object)})
-	 * methods instead of building a {@link BidiTransformer}.
-	 */
-	public TransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and bidi transformer.
-	 */
-	public TransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder, BidiTransformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-	@Override
-	protected BidiTransformer<T1, T2> buildTransformer() {
-		return new DefaultBidiTransformer();
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(T2 value) {
-		// "reverse-transform" the object before passing it to the the nested value model
-		this.getValueHolder().setValue(this.reverseTransform(value));
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * "Reverse-transform" the specified value and return the result.
-	 * This is called by {@link #setValue(Object)}.
-	 */
-	protected T1 reverseTransform(T2 value) {
-		return this.getTransformer().reverseTransform(value);
-	}
-
-	/**
-	 * "Reverse-transform" the specified, non-<code>null</code>,
-	 * value and return the result.
-	 */
-	protected T1 reverseTransform_(@SuppressWarnings("unused") T2 value) {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Our constructors accept only a {@link WritablePropertyValueModel<T1>},
-	 * so this cast should be safe.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T1> getValueHolder() {
-		return (WritablePropertyValueModel<T1>) this.valueHolder;
-	}
-
-	/**
-	 * Our constructors accept only a {@link BidiTransformer<T1, T2>},
-	 * so this cast should be safe.
-	 */
-	protected BidiTransformer<T1, T2> getTransformer() {
-		return (BidiTransformer<T1, T2>) this.transformer;
-	}
-
-
-	// ********** default bidi transformer **********
-
-	/**
-	 * The default bidi transformer will return <code>null</code> if the
-	 * wrapped value is <code>null</code>.
-	 * If the wrapped value is not <code>null</code>, it is transformed by a subclass
-	 * implementation of {@link #transform_(Object)}.
-	 * The default bidi transformer will also return <code>null</code>
-	 * if the new value is <code>null</code>.
-	 * If the new value is not <code>null</code>, it is reverse-transformed
-	 * by a subclass implementation of {@link #reverseTransform_(Object)}.
-	 */
-	protected class DefaultBidiTransformer
-		extends DefaultTransformer
-		implements BidiTransformer<T1, T2>
-	{
-		public T1 reverseTransform(T2 value) {
-			return (value == null) ? null : TransformationWritablePropertyValueModel.this.reverseTransform_(value);
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java
deleted file mode 100644
index 178d1ed..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of {@link AspectTreeValueModelAdapter} provides
- * basic tree change support.
- * This converts a set of one or more trees into
- * a single {@link #NODES} tree.
- * <p>
- * The typical subclass will override the following methods (see the descriptions
- * in {@link AspectTreeValueModelAdapter}):<ul>
- * <li>{@link #nodes_()}
- * <li>{@link #nodes()}
- * </ul>
- */
-public abstract class TreeAspectAdapter<S extends Model, E>
-	extends AspectTreeValueModelAdapter<S, E>
-{
-	/**
-	 * The name of the subject's trees that we use for the value.
-	 */
-	protected final String[] treeNames;
-		protected static final String[] EMPTY_TREE_NAMES = new String[0];
-
-	/** A listener that listens to the subject's tree aspects. */
-	protected final TreeChangeListener treeChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a tree aspect adapter for the specified subject
-	 * and tree.
-	 */
-	protected TreeAspectAdapter(String treeName, S subject) {
-		this(new String[] {treeName}, subject);
-	}
-
-	/**
-	 * Construct a tree aspect adapter for the specified subject
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(String[] treeNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), treeNames);
-	}
-
-	/**
-	 * Construct a tree aspect adapter for the specified subject holder
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... treeNames) {
-		super(subjectHolder);
-		this.treeNames = treeNames;
-		this.treeChangeListener = this.buildTreeChangeListener();
-	}
-
-	/**
-	 * Construct a tree aspect adapter for the specified subject holder
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> treeNames) {
-		this(subjectHolder, treeNames.toArray(new String[treeNames.size()]));
-	}
-
-	/**
-	 * Construct a tree aspect adapter for an "unchanging" tree in
-	 * the specified subject. This is useful for a tree aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new tree.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_TREE_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	protected TreeChangeListener buildTreeChangeListener() {
-		// transform the subject's tree change events into VALUE tree change events
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeAddEvent event) {
-				TreeAspectAdapter.this.nodeAdded(event);
-			}
-			public void nodeRemoved(TreeRemoveEvent event) {
-				TreeAspectAdapter.this.nodeRemoved(event);
-			}
-			public void treeCleared(TreeClearEvent event) {
-				TreeAspectAdapter.this.treeCleared(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				TreeAspectAdapter.this.treeChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "tree change listener: " + Arrays.asList(TreeAspectAdapter.this.treeNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-    @Override
-	protected void engageSubject_() {
-    	for (String treeName : this.treeNames) {
-			((Model) this.subject).addTreeChangeListener(treeName, this.treeChangeListener);
-		}
-	}
-
-    @Override
-	protected void disengageSubject_() {
-    	for (String treeName : this.treeNames) {
-			((Model) this.subject).removeTreeChangeListener(treeName, this.treeChangeListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void nodeAdded(TreeAddEvent event) {
-		this.fireNodeAdded(event.clone(this, NODES));
-	}
-
-	protected void nodeRemoved(TreeRemoveEvent event) {
-		this.fireNodeRemoved(event.clone(this, NODES));
-	}
-
-	protected void treeCleared(TreeClearEvent event) {
-		this.fireTreeCleared(event.clone(this, NODES));
-	}
-
-	protected void treeChanged(TreeChangeEvent event) {
-		this.fireTreeChanged(event.clone(this, NODES));
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java
deleted file mode 100644
index 66258c2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.common.utility.model.value.TreeValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a tree value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * <p>
- * Subclasses must override:<ul>
- * <li>{@link #buildValue()}<p>
- *     to return the current property value, as derived from the
- *     current collection value
- * </ul>
- * Subclasses might want to override the following methods
- * to improve performance (by not recalculating the value, if possible):<ul>
- * <li>{@link #nodeAdded(TreeChangeEvent event)}
- * <li>{@link #nodeRemoved(TreeChangeEvent event)}
- * <li>{@link #treeCleared(TreeChangeEvent event)}
- * <li>{@link #treeChanged(TreeChangeEvent event)}
- * </ul>
- */
-public abstract class TreePropertyValueModelAdapter<T>
-	extends AbstractPropertyValueModelAdapter<T>
-{
-	/** The wrapped tree value model. */
-	protected final TreeValueModel<?> treeHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped tree holder. */
-	protected final TreeChangeListener treeChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * tree value model.
-	 */
-	protected TreePropertyValueModelAdapter(TreeValueModel<?> treeHolder) {
-		super();
-		this.treeHolder = treeHolder;
-		this.treeChangeListener = this.buildTreeChangeListener();
-	}
-
-	protected TreeChangeListener buildTreeChangeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeAddEvent event) {
-				TreePropertyValueModelAdapter.this.nodeAdded(event);
-			}
-			public void nodeRemoved(TreeRemoveEvent event) {
-				TreePropertyValueModelAdapter.this.nodeRemoved(event);
-			}
-			public void treeCleared(TreeClearEvent event) {
-				TreePropertyValueModelAdapter.this.treeCleared(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				TreePropertyValueModelAdapter.this.treeChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "tree change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the tree holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.treeHolder.addTreeChangeListener(TreeValueModel.NODES, this.treeChangeListener);
-	}
-
-	/**
-	 * Stop listening to the tree holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.treeHolder.removeTreeChangeListener(TreeValueModel.NODES, this.treeChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.treeHolder);
-	}
-
-	
-	// ********** state change support **********
-
-	/**
-	 * Nodes were added to the wrapped tree holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void nodeAdded(@SuppressWarnings("unused") TreeAddEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Nodes were removed from the wrapped tree holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void nodeRemoved(@SuppressWarnings("unused") TreeRemoveEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped tree holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void treeCleared(@SuppressWarnings("unused") TreeClearEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped tree holder changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void treeChanged(@SuppressWarnings("unused") TreeChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java
deleted file mode 100644
index 5876d5e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Abstract class that provides support for wrapping a {@link WritablePropertyValueModel}
- * and listening for changes to <em>aspects</em> of the <em>value</em> contained
- * by the {@link WritablePropertyValueModel}. Changes to the {@link WritablePropertyValueModel}'s
- * value are also monitored.
- * <p>
- * This is useful if you have a value that may change, but whose aspects can also
- * change in a fashion that might be of interest to the client.
- * <p>
- * <strong>NB:</strong> Clients will need to listen for two different change notifications:
- * a property change event will be be fired when the <em>value</em> changes;
- * a state change event will be fired when an <em>aspect</em> of the value changes.
- * <p>
- * Subclasses need to override two methods:<ul>
- * <li>{@link #engageValue_()}<p>
- *     begin listening to the appropriate aspect of the value and call
- *     {@link #valueAspectChanged()} whenever the aspect changes
- *     (this will fire a state change event)
- * <li>{@link #disengageValue_()}<p>
- *     stop listening to the appropriate aspect of the value
- * </ul>
- */
-public abstract class ValueAspectAdapter<V>
-	extends PropertyValueModelWrapper<V>
-	implements WritablePropertyValueModel<V>
-{
-	/** Cache the value so we can disengage. Null until we have a listener*/
-	protected V value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	protected ValueAspectAdapter(WritablePropertyValueModel<V> valueHolder) {
-		super(valueHolder);
-		this.value = null;
-	}
-
-	/**
-	 * Override to allow both property and state change listeners.
-	 */
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new ChangeSupport(this);
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public V getValue() {
-		return this.value;
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(V value) {
-		this.getValueHolder().setValue(value);
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		this.disengageValue();
-		this.engageValue();
-		this.firePropertyChanged(event.clone(this));
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void addStateChangeListener(StateChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addStateChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-	@Override
-	public synchronized void removeStateChangeListener(StateChangeListener listener) {
-		super.removeStateChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** AbstractPropertyValueModel overrides **********
-
-	/**
-	 * Extend to check for state change listeners.
-	 */
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyStateChangeListeners() || super.hasListeners();
-	}
-
-
-	// ********** PropertyValueModelWrapper overrides **********
-
-	/**
-	 * Extend to engage an aspect of the value model's value.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.engageValue();
-	}
-
-	/**
-	 * Extend to disengage an aspect of the value model's value.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.disengageValue();
-		super.disengageModel();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to an aspect of the current value.
-	 */
-	protected void engageValue() {
-		this.value = this.valueHolder.getValue();
-		if (this.value != null) {
-			this.engageValue_();
-		}
-	}
-
-	/**
-	 * Start listening to some aspect of the current value.
-	 * At this point we can be sure the value is not null.
-	 */
-	protected abstract void engageValue_();
-
-	/**
-	 * Stop listening to an aspect of the current value.
-	 */
-	protected void disengageValue() {
-		if (this.value != null) {
-			this.disengageValue_();
-			this.value = null;
-		}
-	}
-
-	/**
-	 * Stop listening to an aspect of the current value.
-	 * At this point we can be sure the value is not null.
-	 */
-	protected abstract void disengageValue_();
-
-	/**
-	 * Subclasses should call this method whenever the value's aspect changes.
-	 */
-	protected void valueAspectChanged() {
-		this.fireStateChanged();
-	}
-
-	/**
-	 * Our constructor accepts only a {@link WritablePropertyValueModel}{@code<V>}.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<V> getValueHolder() {
-		return (WritablePropertyValueModel<V>) this.valueHolder;
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java
deleted file mode 100644
index 36dca8e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to all the aspects
- * of the value in the wrapped value model.
- */
-public class ValueChangeAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** Listener that listens to the value. */
-	protected final ChangeListener valueAspectListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a change adapter for the specified value.
-	 */
-	public ValueChangeAdapter(WritablePropertyValueModel<V> valueHolder) {
-		super(valueHolder);
-		this.valueAspectListener = this.buildValueAspectListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected ChangeListener buildValueAspectListener() {
-		return new SimpleChangeListener() {
-			@Override
-			protected void modelChanged(ChangeEvent event) {
-				ValueChangeAdapter.this.valueAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		this.value.addChangeListener(this.valueAspectListener);
-	}
-
-	@Override
-	protected void disengageValue_() {
-		this.value.removeChangeListener(this.valueAspectListener);
-	}
-
-
-	// ********** change events **********
-
-	protected void valueAspectChanged(@SuppressWarnings("unused") ChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java
deleted file mode 100644
index a06dfbb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to one or more collection
- * aspects of the value in the wrapped value model.
- */
-public class ValueCollectionAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** The names of the value's collections that we listen to. */
-	protected final String[] collectionNames;
-
-	/** Listener that listens to the value. */
-	protected final CollectionChangeListener valueCollectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value collections.
-	 */
-	public ValueCollectionAdapter(WritablePropertyValueModel<V> valueHolder, String... collectionNames) {
-		super(valueHolder);
-		this.collectionNames = collectionNames;
-		this.valueCollectionListener = this.buildValueCollectionListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected CollectionChangeListener buildValueCollectionListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionAddEvent event) {
-				ValueCollectionAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionRemoveEvent event) {
-				ValueCollectionAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionClearEvent event) {
-				ValueCollectionAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				ValueCollectionAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value collection listener: " + Arrays.asList(ValueCollectionAdapter.this.collectionNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		for (String collectionName : this.collectionNames) {
-			this.value.addCollectionChangeListener(collectionName, this.valueCollectionListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String collectionName : this.collectionNames) {
-			this.value.removeCollectionChangeListener(collectionName, this.valueCollectionListener);
-		}
-	}
-
-
-	// ********** change events **********
-
-	protected void itemsAdded(@SuppressWarnings("unused") CollectionAddEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void itemsRemoved(@SuppressWarnings("unused") CollectionRemoveEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java
deleted file mode 100644
index ba69a17..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to one or more list
- * aspects of the value in the wrapped value model.
- */
-public class ValueListAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** The names of the value's lists that we listen to. */
-	protected final String[] listNames;
-
-	/** Listener that listens to the value. */
-	protected final ListChangeListener valueListListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value lists.
-	 */
-	public ValueListAdapter(WritablePropertyValueModel<V> valueHolder, String... listNames) {
-		super(valueHolder);
-		this.listNames = listNames;
-		this.valueListListener = this.buildValueListListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildValueListListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ValueListAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ValueListAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ValueListAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ValueListAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ValueListAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ValueListAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value list listener: " + Arrays.asList(ValueListAdapter.this.listNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		for (String listName : this.listNames) {
-			this.value.addListChangeListener(listName, this.valueListListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String listName : this.listNames) {
-			this.value.removeListChangeListener(listName, this.valueListListener);
-		}
-	}
-
-
-	// ********** change events **********
-
-	protected void itemsAdded(@SuppressWarnings("unused") ListAddEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void itemsRemoved(@SuppressWarnings("unused") ListRemoveEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void itemsReplaced(@SuppressWarnings("unused") ListReplaceEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java
deleted file mode 100644
index cbb6be7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to one or more
- * properties of the value in the wrapped value model.
- */
-public class ValuePropertyAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** The names of the value's properties we listen to. */
-	protected final String[] propertyNames;
-
-	/** Listener that listens to the value. */
-	protected final PropertyChangeListener valuePropertyListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value properties.
-	 */
-	public ValuePropertyAdapter(WritablePropertyValueModel<V> valueHolder, String... propertyNames) {
-		super(valueHolder);
-		this.propertyNames = propertyNames;
-		this.valuePropertyListener = this.buildValuePropertyListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValuePropertyListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ValuePropertyAdapter.this.propertyChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value property listener: " + Arrays.asList(ValuePropertyAdapter.this.propertyNames); //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		for (String propertyName : this.propertyNames) {
-			this.value.addPropertyChangeListener(propertyName, this.valuePropertyListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String propertyName : this.propertyNames) {
-			this.value.removePropertyChangeListener(propertyName, this.valuePropertyListener);
-		}
-	}
-
-
-	// ********** change events **********
-
-	protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java
deleted file mode 100644
index ed9e637..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to the
- * "state" of the value in the wrapped value model.
- */
-public class ValueStateAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** Listener that listens to value. */
-	protected final StateChangeListener valueStateListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the value state.
-	 */
-	public ValueStateAdapter(WritablePropertyValueModel<V> valueHolder) {
-		super(valueHolder);
-		this.valueStateListener = this.buildValueStateListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected StateChangeListener buildValueStateListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ValueStateAdapter.this.stateChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value state listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		this.value.addStateChangeListener(this.valueStateListener);
-	}
-
-	@Override
-	protected void disengageValue_() {
-		this.value.removeStateChangeListener(this.valueStateListener);
-	}
-
-
-	// ********** change events **********
-
-	protected void stateChanged(@SuppressWarnings("unused") StateChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java
deleted file mode 100644
index a8ec0af..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend {@link ValueAspectAdapter} to listen to one or more
- * tree aspects of the value in the wrapped value model.
- */
-public class ValueTreeAdapter<V extends Model>
-	extends ValueAspectAdapter<V>
-{
-	/** The names of the value's trees that we listen to. */
-	protected final String[] treeNames;
-
-	/** Listener that listens to the value. */
-	protected final TreeChangeListener valueTreeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value trees.
-	 */
-	public ValueTreeAdapter(WritablePropertyValueModel<V> valueHolder, String... treeNames) {
-		super(valueHolder);
-		this.treeNames = treeNames;
-		this.valueTreeListener = this.buildValueTreeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected TreeChangeListener buildValueTreeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeAddEvent event) {
-				ValueTreeAdapter.this.nodeAdded(event);
-			}
-			public void nodeRemoved(TreeRemoveEvent event) {
-				ValueTreeAdapter.this.nodeRemoved(event);
-			}
-			public void treeCleared(TreeClearEvent event) {
-				ValueTreeAdapter.this.treeCleared(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				ValueTreeAdapter.this.treeChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value tree listener: " + Arrays.asList(ValueTreeAdapter.this.treeNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueAspectAdapter implementation **********
-
-	@Override
-	protected void engageValue_() {
-		for (String treeName : this.treeNames) {
-			this.value.addTreeChangeListener(treeName, this.valueTreeListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String treeName : this.treeNames) {
-			this.value.removeTreeChangeListener(treeName, this.valueTreeListener);
-		}
-	}
-
-
-	// ********** change events **********
-
-	protected void nodeAdded(@SuppressWarnings("unused") TreeAddEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void nodeRemoved(@SuppressWarnings("unused") TreeRemoveEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void treeCleared(@SuppressWarnings("unused") TreeClearEvent event) {
-		this.valueAspectChanged();
-	}
-
-	protected void treeChanged(@SuppressWarnings("unused") TreeChangeEvent event) {
-		this.valueAspectChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java
deleted file mode 100644
index be61d49..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * An adapter that allows us to make a {@link WritablePropertyValueModel} behave like
- * a single-element {@link WritableCollectionValueModel}, sorta.
- * <p>
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a collection with a <code>null</code> element).
- * Also, only a single-element collection can be written to the adapter.
- */
-public class WritablePropertyCollectionValueModelAdapter<E>
-	extends PropertyCollectionValueModelAdapter<E>
-	implements WritableCollectionValueModel<E>
-{
-
-	// ********** constructor **********
-
-	/**
-	 * Convert the specified writable property value model to a writable
-	 * collection value model.
-	 */
-	public WritablePropertyCollectionValueModelAdapter(WritablePropertyValueModel<E> valueHolder) {
-		super(valueHolder);
-	}
-
-
-	// ********** WritableCollectionValueModel implementation **********
-
-	public void setValues(Iterable<E> values) {
-		Iterator<E> stream = values.iterator();
-		if (stream.hasNext()) {
-			E newValue = stream.next();
-			if (stream.hasNext()) {
-				throw new IllegalArgumentException("non-singleton collection: " + values); //$NON-NLS-1$
-			}
-			this.getValueHolder().setValue(newValue);
-		} else {
-			this.getValueHolder().setValue(null);
-		}
-	}
-
-	// our constructor takes only writable property value models
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<E> getValueHolder() {
-		return (WritablePropertyValueModel<E>) this.valueHolder;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java
deleted file mode 100644
index c9f3084..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.common.utility.model.value.WritableListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * An adapter that allows us to make a {@link WritablePropertyValueModel} behave like
- * a single-element {@link WritableListValueModel}, sorta.
- * <p>
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a list with a <code>null</code> element).
- * Also, only a single-element list can be written to the adapter.
- */
-public class WritablePropertyListValueModelAdapter<E>
-	extends PropertyListValueModelAdapter<E>
-	implements WritableListValueModel<E>
-{
-
-	// ********** constructor **********
-
-	/**
-	 * Convert the specified writable property value model to a writable
-	 * collection value model.
-	 */
-	public WritablePropertyListValueModelAdapter(WritablePropertyValueModel<E> valueHolder) {
-		super(valueHolder);
-	}
-
-
-	// ********** WritableListValueModel implementation **********
-
-	public void setListValues(Iterable<E> listValues) {
-		Iterator<E> stream = listValues.iterator();
-		if (stream.hasNext()) {
-			E newValue = stream.next();
-			if (stream.hasNext()) {
-				throw new IllegalArgumentException("non-singleton list: " + listValues); //$NON-NLS-1$
-			}
-			this.getValueHolder().setValue(newValue);
-		} else {
-			this.getValueHolder().setValue(null);
-		}
-	}
-
-	// our constructor takes only writable property value models
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<E> getValueHolder() {
-		return (WritablePropertyValueModel<E>) this.valueHolder;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java
deleted file mode 100644
index 2b6670a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.prefs;
-
-import java.util.EventListener;
-import java.util.prefs.PreferenceChangeEvent;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-
-import org.eclipse.jpt.common.utility.internal.BidiStringConverter;
-import org.eclipse.jpt.common.utility.internal.model.value.AspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This adapter wraps a Preference and converts it into a PropertyValueModel.
- * It listens for the appropriate "preference" changes and converts them into
- * VALUE property changes. It also allows the specification of a default value
- * for the Preference, which, by default, is null (and is probably *not* a very
- * good default).
- * 
- * You can configure whether the preference's value is returned,
- * unchanged, as a string or as some other object (e.g. an Integer) by
- * setting the adapter's converter. Internally, the preference's value
- * is stored as the converted object; and the conversions take place
- * when reading or writing from the preferences node or retrieving the
- * value from an event fired by the preferences node.
- * 
- * This adapter is a bit different from most other adapters because the
- * change events fired off by a Preferences node are asynchronous from
- * the change itself. (AbstractPreferences uses an event dispatch daemon.)
- * As a result, a client can set our value with #setValue(Object) and we
- * will return from that method before we ever receive notification from
- * the Preferences node that *it* has changed. This means we cannot
- * rely on that event to keep our internally cached value in synch.
- */
-public class PreferencePropertyValueModel<P>
-	extends AspectAdapter<Preferences>
-	implements WritablePropertyValueModel<P>
-{
-	/** The key to the preference we use for the value. */
-	protected final String key;
-
-	/**
-	 * Cache the current (object) value of the preference so we
-	 * can pass an "old value" when we fire a property change event.
-	 */
-	protected P value;
-
-	/**
-	 * The default (object) value returned if there is no value
-	 * associated with the preference.
-	 */
-	protected final P defaultValue;
-
-	/**
-	 * This converter is used to convert the preference's
-	 * string value to and from an object.
-	 */
-	protected final BidiStringConverter<P> converter;
-
-	/** A listener that listens to the appropriate preference. */
-	protected final PreferenceChangeListener preferenceChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified preference.
-	 * The default value of the preference will be null.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key) {
-		this(preferences, key, null);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue) {
-		this(preferences, key, defaultValue, BidiStringConverter.Default.<P>instance());
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue, BidiStringConverter<P> converter) {
-		this(new StaticPropertyValueModel<Preferences>(preferences), key, defaultValue, converter);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public static PreferencePropertyValueModel<Boolean> forBoolean(Preferences preferences, String key, boolean defaultValue) {
-		return new PreferencePropertyValueModel<Boolean>(
-				preferences,
-				key,
-				defaultValue ? Boolean.TRUE : Boolean.FALSE,
-				BidiStringConverter.BooleanConverter.instance()
-			);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public static PreferencePropertyValueModel<Integer> forInteger(Preferences preferences, String key, int defaultValue) {
-		return new PreferencePropertyValueModel<Integer>(
-				preferences,
-				key,
-				Integer.valueOf(defaultValue),
-				BidiStringConverter.IntegerConverter.instance()
-			);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference.
-	 * The default value of the preference will be null.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key) {
-		this(preferencesHolder, key, null);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key, P defaultValue) {
-		this(preferencesHolder, key, defaultValue, BidiStringConverter.Default.<P>instance());
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key, P defaultValue, BidiStringConverter<P> converter) {
-		super(preferencesHolder);
-		this.key = key;
-		this.defaultValue = defaultValue;
-		this.converter = converter;
-		this.preferenceChangeListener = this.buildPreferenceChangeListener();
-		// our value is null when we are not listening to the preference
-		this.value = null;
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * A preference has changed, notify the listeners if necessary.
-	 */
-	protected PreferenceChangeListener buildPreferenceChangeListener() {
-		// transform the preference change events into VALUE property change events
-		return new PreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				PreferencePropertyValueModel.this.preferenceChanged(event.getKey(), event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "preference change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ValueModel implementation **********
-
-	/**
-	 * Return the cached (converted) value.
-	 */
-	@Override
-	public synchronized P getValue() {
-		return this.value;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Set the cached value, then set the appropriate preference value.
-	 */
-	public synchronized void setValue(P value) {
-		if (this.hasNoListeners()) {
-			return;		// no changes allowed when we have no listeners
-		}
-
-		Object old = this.value;
-		this.value = value;
-		this.fireAspectChanged(old, value);
-
-		if ((this.subject != null) && this.preferenceIsToBeSet(old, value)) {
-			this.setValue_(value);
-		}
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return PropertyChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUE;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(VALUE);
-	}
-
-	@Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-	@Override
-	protected synchronized void engageSubject_() {
-		this.subject.addPreferenceChangeListener(this.preferenceChangeListener);
-		this.value = this.buildValue();
-	}
-
-	@Override
-	protected synchronized void disengageSubject_() {
-		try {
-			this.subject.removePreferenceChangeListener(this.preferenceChangeListener);
-		} catch (IllegalStateException ex) {
-			// for some odd reason, we are not allowed to remove a listener from a "dead"
-			// preferences node; so handle the exception that gets thrown here
-			if ( ! ex.getMessage().equals("Node has been removed.")) { //$NON-NLS-1$
-				// if it is not the expected exception, re-throw it
-				throw ex;
-			}
-		}
-		this.value = null;
-	}
-
-
-	// ********** AbstractModel implementation **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.key);
-		sb.append(" => "); //$NON-NLS-1$
-		sb.append(this.value);
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the preference's key.
-	 */
-	public String getKey() {
-		return this.key;
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Return the preference's value.
-	 * At this point the subject may be null.
-	 */
-	protected P buildValue() {
-		return (this.subject == null) ? null : this.buildValue_();
-	}
-
-	/**
-	 * Return the appropriate preference, converted to the appropriate object.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected P buildValue_() {
-		return this.convertToObject(this.subject.get(this.key, this.convertToString(this.defaultValue)));
-	}
-
-	/**
-	 * Set the appropriate preference after converting the value to a string.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected void setValue_(P value) {
-		this.subject.put(this.key, this.convertToString(value));
-	}
-
-	/**
-	 * Return whether the specified new value should be passed
-	 * through to the preference. By default, only if the value has changed,
-	 * will it be passed through to the preference. This also has the
-	 * effect of not creating new preferences in the "backing store"
-	 * if the new value is the same as the default value.
-	 * 
-	 * Subclasses can override this method to return true if they
-	 * would like to ALWAYS pass through the new value to the preference.
-	 */
-	protected boolean preferenceIsToBeSet(Object oldValue, Object newValue) {
-		return this.attributeValueHasChanged(oldValue, newValue);
-	}
-
-	/**
-	 * Convert the specified object to a string that can be stored as
-	 * the value of the preference.
-	 */
-	protected String convertToString(P o) {
-		return this.converter.convertToString(o);
-	}
-
-	/**
-	 * Convert the specified preference value string to an
-	 * appropriately-typed object to be returned to the client.
-	 */
-	protected P convertToObject(String s) {
-		return this.converter.convertToObject(s);
-	}
-
-	protected void preferenceChanged(String prefKey, @SuppressWarnings("unused") String newValue) {
-		if (prefKey.equals(this.key)) {
-			this.preferenceChanged();
-		}
-	}
-
-	/**
-	 * The underlying preference changed; either because we changed it
-	 * in #setValue_(Object) or a third-party changed it.
-	 * If this is called because of our own change, the event will be
-	 * swallowed because the old and new values are the same.
-	 */
-	protected synchronized void preferenceChanged() {
-		Object old = this.value;
-		this.value = this.buildValue();
-		this.fireAspectChanged(old, this.value);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java
deleted file mode 100644
index f12a84f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.prefs;
-
-import java.util.EventListener;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.prefs.BackingStoreException;
-import java.util.prefs.PreferenceChangeEvent;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.common.utility.internal.model.value.AspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-
-/**
- * This adapter wraps a Preferences node and converts its preferences into a
- * CollectionValueModel of PreferencePropertyValueModels. It listens for
- * "preference" changes and converts them into VALUE collection changes.
- */
-public class PreferencesCollectionValueModel<P>
-	extends AspectAdapter<Preferences>
-	implements CollectionValueModel<PreferencePropertyValueModel<P>>
-{
-
-	/** Cache the current preferences, stored in models and keyed by name. */
-	protected final HashMap<String, PreferencePropertyValueModel<P>> preferences;
-
-	/** A listener that listens to the preferences node for added or removed preferences. */
-	protected final PreferenceChangeListener preferenceChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified preferences node.
-	 */
-	public PreferencesCollectionValueModel(Preferences preferences) {
-		this(new StaticPropertyValueModel<Preferences>(preferences));
-	}
-
-	/**
-	 * Construct an adapter for the specified preferences node.
-	 */
-	public PreferencesCollectionValueModel(PropertyValueModel<? extends Preferences> preferencesHolder) {
-		super(preferencesHolder);
-		this.preferences = new HashMap<String, PreferencePropertyValueModel<P>>();
-		this.preferenceChangeListener = this.buildPreferenceChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * A preferences have changed, notify the listeners.
-	 */
-	protected PreferenceChangeListener buildPreferenceChangeListener() {
-		// transform the preference change events into VALUE collection change events
-		return new PreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				PreferencesCollectionValueModel.this.preferenceChanged(event.getKey(), event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "preference change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	/**
-	 * Return an iterator on the preference models.
-	 */
-	public synchronized Iterator<PreferencePropertyValueModel<P>> iterator() {
-		return this.preferences.values().iterator();
-	}
-
-	public synchronized int size() {
-		return this.preferences.size();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends EventListener> getListenerClass() {
-		return CollectionChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUES;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-	@Override
-	protected void fireAspectChanged(Object oldValue, Object newValue) {
-    	@SuppressWarnings("unchecked") Iterator<PreferencePropertyValueModel<P>> iterator = (Iterator<PreferencePropertyValueModel<P>>) newValue;
-		this.fireCollectionChanged(VALUES, CollectionTools.collection(iterator));
-	}
-
-    @Override
-	protected void engageSubject_() {
-		this.subject.addPreferenceChangeListener(this.preferenceChangeListener);
-		for (Iterator<PreferencePropertyValueModel<P>> stream = this.preferenceModels(); stream.hasNext(); ) {
-			PreferencePropertyValueModel<P> preferenceModel = stream.next();
-			this.preferences.put(preferenceModel.getKey(), preferenceModel);
-		}
-	}
-
-    @Override
-	protected void disengageSubject_() {
-		try {
-			this.subject.removePreferenceChangeListener(this.preferenceChangeListener);
-		} catch (IllegalStateException ex) {
-			// for some odd reason, we are not allowed to remove a listener from a "dead"
-			// preferences node; so handle the exception that gets thrown here
-			if ( ! ex.getMessage().equals("Node has been removed.")) { //$NON-NLS-1$
-				// if it is not the expected exception, re-throw it
-				throw ex;
-			}
-		}
-		this.preferences.clear();
-	}
-
-
-	// ********** AbstractModel implementation **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.subject);
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Return an iterator on the preference models.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected Iterator<PreferencePropertyValueModel<P>> preferenceModels() {
-		String[] keys;
-		try {
-			keys = this.subject.keys();
-		} catch (BackingStoreException ex) {
-			throw new RuntimeException(ex);
-		}
-		return new TransformationIterator<String, PreferencePropertyValueModel<P>>(new ArrayIterator<String>(keys)) {
-			@Override
-			protected PreferencePropertyValueModel<P> transform(String key) {
-				return PreferencesCollectionValueModel.this.buildPreferenceModel(key);
-			}
-		};
-	}
-
-	/**
-	 * Override this method to tweak the model used to wrap the
-	 * specified preference (e.g. to customize the model's converter).
-	 */
-	protected PreferencePropertyValueModel<P> buildPreferenceModel(String key) {
-		return new PreferencePropertyValueModel<P>(this.subjectHolder, key);
-	}
-
-	protected synchronized void preferenceChanged(String key, String newValue) {
-		if (newValue == null) {
-			// a preference was removed
-			PreferencePropertyValueModel<P> preferenceModel = this.preferences.remove(key);
-			this.fireItemRemoved(VALUES, preferenceModel);
-		} else if ( ! this.preferences.containsKey(key)) {
-			// a preference was added
-			PreferencePropertyValueModel<P> preferenceModel = this.buildPreferenceModel(key);
-			this.preferences.put(key, preferenceModel);
-			this.fireItemAdded(VALUES, preferenceModel);
-		} else {
-			// a preference's value changed - do nothing
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java
deleted file mode 100644
index 0a3ab42..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.io.Serializable;
-import javax.swing.event.EventListenerList;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreeModel;
-
-/**
- * Abstract class that should have been provided by the JDK
- * (à la javax.swing.AbstractListModel). This class provides:
- * - support for a collection of listeners
- * - a number of convenience methods for firing events for those listeners
- */
-public abstract class AbstractTreeModel
-	implements TreeModel, Serializable
-{
-	/** Our listeners. */
-	protected final EventListenerList listenerList;
-
-
-	// ********** constructors/initialization **********
-
-	protected AbstractTreeModel() {
-		super();
-		this.listenerList = new EventListenerList();
-	}
-
-
-	// ********** partial TreeModel implementation **********
-
-	public void addTreeModelListener(TreeModelListener l) {
-		this.listenerList.add(TreeModelListener.class, l);
-	}
-
-	public void removeTreeModelListener(TreeModelListener l) {
-		this.listenerList.remove(TreeModelListener.class, l);
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return the model's current collection of listeners.
-	 * (There seems to be a pattern of making this type of method public;
-	 * although it should probably be protected....)
-	 */
-	public TreeModelListener[] treeModelListeners() {
- 		return this.listenerList.getListeners(TreeModelListener.class);
-	}
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoTreeModelListeners() {
-		return this.listenerList.getListenerCount(TreeModelListener.class) == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasTreeModelListeners() {
-		return ! this.hasNoTreeModelListeners();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the nodes changed, but the nodes themselves
-	 * are still the same objects.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesChanged(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesChanged(event);
-			}
-		}
-	}
-
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the node changed, but the node itself is the same object.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeChanged(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesChanged(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the root changed, but the root itself is the same object.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeRootChanged(Object root) {
-		this.fireTreeNodesChanged(new Object[] {root}, null, null);
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesInserted(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesInserted(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeInserted(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesInserted(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesRemoved(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesRemoved(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeRemoved(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesRemoved(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeStructureChanged(Object[] path) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path);
-				}
-				((TreeModelListener) listeners[i+1]).treeStructureChanged(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeRootReplaced(Object newRoot) {
-		this.fireTreeStructureChanged(new Object[] {newRoot});
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java
deleted file mode 100644
index 78069cd..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JCheckBox) in synch with a PropertyValueModel that
- * holds a boolean.
- * 
- * Maybe not the richest class in our toolbox, but it was the
- * victim of refactoring....  ~bjv
- */
-public class CheckBoxModelAdapter
-	extends ToggleButtonModelAdapter
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 */
-	public CheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder, boolean defaultValue) {
-		super(booleanHolder, defaultValue);
-	}
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 * The default value will be false.
-	 */
-	public CheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder) {
-		super(booleanHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java
deleted file mode 100644
index e101823..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-
-/**
- * This adapter is used by the table model adapter to
- * convert a model object into the models used for each of
- * the cells for the object's corresponding row in the table.
- */
-public interface ColumnAdapter {
-	/**
-	 * Return the number of columns in the table.
-	 * Typically this is static.
-	 */
-	int columnCount();
-
-	/**
-	 * Return the name of the specified column.
-	 */
-	String columnName(int index);
-
-	/**
-	 * Return the class of the specified column.
-	 */
-	Class<?> columnClass(int index);
-
-	/**
-	 * Return whether the specified column is editable.
-	 * Typically this is the same for every row.
-	 */
-	boolean columnIsEditable(int index);
-
-	/**
-	 * Return the cell models for the specified subject
-	 * that corresponds to a single row in the table.
-	 */
-	WritablePropertyValueModel<Object>[] cellModels(Object subject);
-
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java
deleted file mode 100644
index 7cb5f7d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import javax.swing.ComboBoxModel;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ComboBoxModel can be used to keep a ListDataListener
- * (e.g. a JComboBox) in synch with a ListValueModel (or a CollectionValueModel).
- * For combo boxes, the model object that holds the current selection is
- * typically a different model object than the one that holds the collection
- * of choices.
- * 
- * For example, a MWReference (the selectionOwner) has an attribute
- * "sourceTable" (the collectionOwner)
- * which holds on to a collection of MWDatabaseFields. When the selection
- * is changed this model will keep the listeners aware of the changes.
- * The inherited list model will keep its listeners aware of changes to the
- * collection model
- * 
- * In addition to the collection holder required by the superclass,
- * an instance of this ComboBoxModel must be supplied with a
- * selection holder, which is a PropertyValueModel that provides access
- * to the selection (typically a PropertyAspectAdapter).
- */
-public class ComboBoxModelAdapter
-	extends ListModelAdapter
-	implements ComboBoxModel
-{
-	protected final WritablePropertyValueModel<Object> selectionHolder;
-	protected final PropertyChangeListener selectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder and selection holder are required;
-	 */
-	public ComboBoxModelAdapter(ListValueModel<?> listHolder, WritablePropertyValueModel<Object> selectionHolder) {
-		super(listHolder);
-		if (selectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.selectionHolder = selectionHolder;
-		this.selectionListener = this.buildSelectionListener();
-	}
-
-	/**
-	 * Constructor - the collection holder and selection holder are required;
-	 */
-	public ComboBoxModelAdapter(CollectionValueModel<?> collectionHolder, WritablePropertyValueModel<Object> selectionHolder) {
-		super(collectionHolder);
-		if (selectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.selectionHolder = selectionHolder;
-		this.selectionListener = this.buildSelectionListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildSelectionListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildSelectionListener_());
-	}
-
-	protected PropertyChangeListener buildSelectionListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				// notify listeners that the selection has changed
-				ComboBoxModelAdapter.this.fireSelectionChanged();
-			}
-			@Override
-			public String toString() {
-				return "selection listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ComboBoxModel implementation **********
-
-	public Object getSelectedItem() {
-		return this.selectionHolder.getValue();
-	}
-
-	public void setSelectedItem(Object selectedItem) {
-		this.selectionHolder.setValue(selectedItem);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Extend to engage the selection holder.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.selectionHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener);
-	}
-
-	/**
-	 * Extend to disengage the selection holder.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.selectionHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener);
-		super.disengageModel();
-	}
-
-	/**
-	 * Notify the listeners that the selection has changed.
-	 */
-	protected void fireSelectionChanged() {
-		// I guess this will work...
-		this.fireContentsChanged(this, -1, -1);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.selectionHolder + ":" + this.listHolder); //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java
deleted file mode 100644
index 61ef8ce..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.Calendar;
-import java.util.Date;
-import javax.swing.SpinnerDateModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerDateModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a date.
- * 
- * This class must be a sub-class of SpinnerDateModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see ListSpinnerModelAdapter
- * @see NumberSpinnerModelAdapter
- */
-public class DateSpinnerModelAdapter
-	extends SpinnerDateModel
-{
-
-	/**
-	 * The default spinner value; used when the underlying model date value is null.
-	 * The default is the current date.
-	 */
-	private final Date defaultValue;
-
-	/** A value model on the underlying date. */
-	private final WritablePropertyValueModel<Object> dateHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying date. */
-	private final PropertyChangeListener dateChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the date holder is required.
-	 * The default spinner value is the current date.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder) {
-		this(dateHolder, new Date());
-	}
-
-	/**
-	 * Constructor - the date holder and default value are required.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Date defaultValue) {
-		this(dateHolder, null, null, Calendar.DAY_OF_MONTH, defaultValue);
-	}
-
-	/**
-	 * Constructor - the date holder is required.
-	 * The default spinner value is the current date.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Comparable<?> start, Comparable<?> end, int calendarField) {
-		this(dateHolder, start, end, calendarField, new Date());
-	}
-
-	/**
-	 * Constructor - the date holder is required.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Comparable<?> start, Comparable<?> end, int calendarField, Date defaultValue) {
-		super(dateHolder.getValue() == null ? defaultValue : (Date) dateHolder.getValue(), start, end, calendarField);
-		this.dateHolder = dateHolder;
-		this.dateChangeListener = this.buildDateChangeListener();
-		// postpone listening to the underlying date
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildDateChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildDateChangeListener_());
-	}
-
-	protected PropertyChangeListener buildDateChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DateSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "date listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.dateHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying date directly.
-	 * The resulting event will be ignored: @see #synchronize(Object).
-	 */
-	@Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.dateHolder.setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying date if necessary.
-	 */
-	@Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.dateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener);
-			this.synchronize(this.dateHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying date if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.dateHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Date getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the spinner date has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.dateHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java
deleted file mode 100644
index 1f7f404..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-import java.util.EventObject;
-
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.event.EventListenerList;
-import javax.swing.event.UndoableEditEvent;
-import javax.swing.event.UndoableEditListener;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Document;
-import javax.swing.text.Element;
-import javax.swing.text.PlainDocument;
-import javax.swing.text.Position;
-import javax.swing.text.Segment;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.text.Document can be used to keep a DocumentListener
- * (e.g. a JTextField) in synch with a PropertyValueModel that holds a string.
- * 
- * NB: This model should only be used for "small" documents;
- * i.e. documents used by text fields, not text panes.
- * @see #synchronizeDelegate(String)
- */
-public class DocumentAdapter
-	implements Document, Serializable
-{
-
-	/** The delegate document whose behavior we "enhance". */
-	protected final Document delegate;
-
-	/** A listener that allows us to forward any changes made to the delegate document. */
-	protected final CombinedListener delegateListener;
-
-	/** A value model on the underlying model string. */
-	protected final WritablePropertyValueModel<String> stringHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying model string. */
-	protected transient PropertyChangeListener stringListener;
-
-    /** The event listener list for the document. */
-    protected final EventListenerList listenerList = new EventListenerList();
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the string holder is required.
-	 * Wrap the specified document.
-	 */
-	public DocumentAdapter(WritablePropertyValueModel<String> stringHolder, Document delegate) {
-		super();
-		if (stringHolder == null || delegate == null) {
-			throw new NullPointerException();
-		}
-		this.stringHolder = stringHolder;
-		// postpone listening to the underlying model string
-		// until we have listeners ourselves...
-		this.delegate = delegate;
-		this.stringListener = this.buildStringListener();
-		this.delegateListener = this.buildDelegateListener();
-	}
-
-	/**
-	 * Constructor - the string holder is required.
-	 * Wrap a plain document.
-	 */
-	public DocumentAdapter(WritablePropertyValueModel<String> stringHolder) {
-		this(stringHolder, new PlainDocument());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildStringListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildStringListener_());
-	}
-
-	protected PropertyChangeListener buildStringListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DocumentAdapter.this.stringChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "string listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	protected CombinedListener buildDelegateListener() {
-		return new InternalListener();
-	}
-
-
-	// ********** Document implementation **********
-
-	public int getLength() {
-		return this.delegate.getLength();
-	}
-
-	/**
-	 * Extend to start listening to the underlying models if necessary.
-	 */
-	public void addDocumentListener(DocumentListener listener) {
-		if (this.listenerList.getListenerCount(DocumentListener.class) == 0) {
-			this.delegate.addDocumentListener(this.delegateListener);
-			this.engageStringHolder();
-		}
-		this.listenerList.add(DocumentListener.class, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying models if appropriate.
-	 */
-	public void removeDocumentListener(DocumentListener listener) {
-		this.listenerList.remove(DocumentListener.class, listener);
-		if (this.listenerList.getListenerCount(DocumentListener.class) == 0) {
-			this.disengageStringHolder();
-			this.delegate.removeDocumentListener(this.delegateListener);
-		}
-	}
-
-	/**
-	 * Extend to start listening to the delegate document if necessary.
-	 */
-	public void addUndoableEditListener(UndoableEditListener listener) {
-		if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) {
-			this.delegate.addUndoableEditListener(this.delegateListener);
-		}
-		this.listenerList.add(UndoableEditListener.class, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the delegate document if appropriate.
-	 */
-	public void removeUndoableEditListener(UndoableEditListener listener) {
-		this.listenerList.remove(UndoableEditListener.class, listener);
-		if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) {
-			this.delegate.removeUndoableEditListener(this.delegateListener);
-		}
-	}
-
-	public Object getProperty(Object key) {
-		return this.delegate.getProperty(key);
-	}
-
-	public void putProperty(Object key, Object value) {
-		this.delegate.putProperty(key, value);
-	}
-
-	/**
-	 * Extend to update the underlying model string directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(String).
-	 */
-	public void remove(int offset, int len) throws BadLocationException {
-		this.delegate.remove(offset, len);
-		this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength()));
-	}
-
-	/**
-	 * Extend to update the underlying model string directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(String).
-	 */
-	public void insertString(int offset, String insertedString, AttributeSet a) throws BadLocationException {
-		this.delegate.insertString(offset, insertedString, a);
-		this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength()));
-	}
-
-	public String getText(int offset, int length) throws BadLocationException {
-		return this.delegate.getText(offset, length);
-	}
-
-	public void getText(int offset, int length, Segment txt) throws BadLocationException {
-		this.delegate.getText(offset, length, txt);
-	}
-
-	public Position getStartPosition() {
-		return this.delegate.getStartPosition();
-	}
-
-	public Position getEndPosition() {
-		return this.delegate.getEndPosition();
-	}
-
-	public Position createPosition(int offs) throws BadLocationException {
-		return this.delegate.createPosition(offs);
-	}
-
-	public Element[] getRootElements() {
-		return this.delegate.getRootElements();
-	}
-
-	public Element getDefaultRootElement() {
-		return this.delegate.getDefaultRootElement();
-	}
-
-	public void render(Runnable r) {
-		this.delegate.render(r);
-	}
-
-
-	// ********** queries **********
-
-	public DocumentListener[] documentListeners() {
-		return this.listenerList.getListeners(DocumentListener.class);
-	}
-
-	public UndoableEditListener[] undoableEditListeners() {
-		return this.listenerList.getListeners(UndoableEditListener.class);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * A third party has modified the underlying model string.
-	 * Synchronize the delegate document accordingly.
-	 */
-	protected void stringChanged(PropertyChangeEvent event) {
-		this.synchronizeDelegate((String) event.getNewValue());
-	}
-
-	/**
-	 * Replace the document's entire text string with the new string.
-	 */
-	protected void synchronizeDelegate(String s) {
-		try {
-			int len = this.delegate.getLength();
-			// check to see whether the delegate has already been synchronized
-			// (via #insertString() or #remove())
-			if ( ! this.delegate.getText(0, len).equals(s)) {
-				this.delegate.remove(0, len);
-				this.delegate.insertString(0, s, null);
-			}
-		} catch (BadLocationException ex) {
-			throw new IllegalStateException(ex.getMessage());	// this should not happen...
-		}
-	}
-
-	protected void engageStringHolder() {
-		this.stringHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.stringListener);
-		this.synchronizeDelegate(this.stringHolder.getValue());
-	}
-
-	protected void disengageStringHolder() {
-		this.stringHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.stringListener);
-	}
-
-	protected void delegateChangedUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].changedUpdate(ee);
-		}
-	}
-
-	protected void delegateInsertUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].insertUpdate(ee);
-		}
-	}
-
-	protected void delegateRemoveUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].removeUpdate(ee);
-		}
-	}
-
-	protected void delegateUndoableEditHappened(UndoableEditEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		UndoableEditEvent ee = new UndoableEditEvent(this, event.getEdit());
-		UndoableEditListener[] listeners = this.undoableEditListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].undoableEditHappened(ee);
-		}
-	}
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.stringHolder);
-	}
-
-	private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException {
-		// read in any hidden stuff
-		s.defaultReadObject();
-		this.stringListener = this.buildStringListener();
-	}
-
-
-// ********** inner class **********
-
-	protected interface CombinedListener extends DocumentListener, UndoableEditListener, Serializable {
-		// just consolidate the two interfaces
-	}
-
-	protected class InternalListener implements CombinedListener {
-		private static final long serialVersionUID = 1L;
-		public void changedUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateChangedUpdate(event);
-		}
-		public void insertUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateInsertUpdate(event);
-		}
-		public void removeUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateRemoveUpdate(event);
-		}
-		public void undoableEditHappened(UndoableEditEvent event) {
-			DocumentAdapter.this.delegateUndoableEditHappened(event);
-		}
-	}
-	
-	protected static class InternalDocumentEvent
-		extends EventObject
-		implements DocumentEvent
-	{
-		protected DocumentEvent delegate;
-	
-		protected InternalDocumentEvent(Document document, DocumentEvent delegate) {
-			super(document);
-			this.delegate = delegate;
-		}
-		public ElementChange getChange(Element elem) {
-			return this.delegate.getChange(elem);
-		}
-		public Document getDocument() {
-			return (Document) this.source;
-		}
-		public int getLength() {
-			return this.delegate.getLength();
-		}
-		public int getOffset() {
-			return this.delegate.getOffset();
-		}
-		public EventType getType() {
-			return this.delegate.getType();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java
deleted file mode 100644
index 2d1c1e4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import javax.swing.AbstractListModel;
-import javax.swing.event.ListDataListener;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This javax.swing.ListModel can be used to keep a ListDataListener
- * (e.g. a JList) in synch with a ListValueModel (or a CollectionValueModel).
- * 
- * An instance of this ListModel *must* be supplied with a value model,
- * which is a ListValueModel on the bound list or a CollectionValueModel
- * on the bound collection. This is required - the list (or collection)
- * itself can be null, but the value model that holds it cannot.
- */
-public class ListModelAdapter
-	extends AbstractListModel
-{
-	/** A value model on the underlying model list. */
-	protected ListValueModel<?> listHolder;
-
-	/**
-	 * Cache the size of the list for "dramatic" changes.
-	 * @see #listChanged(ListChangeEvent)
-	 */
-	protected int listSize;
-
-	/** A listener that allows us to forward changes made to the underlying model list. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Default constructor - initialize stuff.
-	 */
-	private ListModelAdapter() {
-		super();
-		this.listSize = 0;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	public ListModelAdapter(ListValueModel<?> listHolder) {
-		this();
-		this.setModel(listHolder);
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	public ListModelAdapter(CollectionValueModel<?> collectionHolder) {
-		this();
-		this.setModel(collectionHolder);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				ListModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				ListModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				ListModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				ListModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListClearEvent event) {
-				ListModelAdapter.this.listCleared();
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListModelAdapter.this.listChanged();
-			}
-			@Override
-			public String toString() {
-				return "list listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ListModel implementation **********
-
-	public int getSize() {
-		return this.listHolder.size();
-	}
-
-	public Object getElementAt(int index) {
-		return this.listHolder.get(index);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model list if necessary.
-	 */
-    @Override
-	public void addListDataListener(ListDataListener l) {
-		if (this.hasNoListDataListeners()) {
-			this.engageModel();
-			this.listSize = this.listHolder.size();
-		}
-		super.addListDataListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model list if appropriate.
-	 */
-    @Override
-	public void removeListDataListener(ListDataListener l) {
-		super.removeListDataListener(l);
-		if (this.hasNoListDataListeners()) {
-			this.disengageModel();
-			this.listSize = 0;
-		}
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the underlying list model.
-	 */
-	public ListValueModel<?> model() {
-		return this.listHolder;
-	}
-	
-	/**
-	 * Set the underlying list model.
-	 */
-	public void setModel(ListValueModel<?> listHolder) {
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		boolean hasListeners = this.hasListDataListeners();
-		if (hasListeners) {
-			this.disengageModel();
-		}
-		this.listHolder = listHolder;
-		if (hasListeners) {
-			this.engageModel();
-			this.listChanged();
-		}
-	}
-
-	/**
-	 * Set the underlying collection model.
-	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public void setModel(CollectionValueModel<?> collectionHolder) {
-		this.setModel(new CollectionListValueModelAdapter(collectionHolder));
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoListDataListeners() {
-		return this.getListDataListeners().length == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasListDataListeners() {
-		return ! this.hasNoListDataListeners();
-	}
-
-
-	// ********** behavior **********
-
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsAdded(ListAddEvent event) {
-		int start = event.getIndex();
-		int end = start + event.getItemsSize() - 1;
-		this.fireIntervalAdded(this, start, end);
-		this.listSize += event.getItemsSize();
-	}
-
-	/**
-	 * Items were removed from the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsRemoved(ListRemoveEvent event) {
-		int start = event.getIndex();
-		int end = start + event.getItemsSize() - 1;
-		this.fireIntervalRemoved(this, start, end);
-		this.listSize -= event.getItemsSize();
-	}
-
-	/**
-	 * Items were replaced in the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsReplaced(ListReplaceEvent event) {
-		int start = event.getIndex();
-		int end = start + event.getItemsSize() - 1;
-		this.fireContentsChanged(this, start, end);
-	}
-
-	/**
-	 * Items were moved in the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsMoved(ListMoveEvent event) {
-		int start = Math.min(event.getSourceIndex(), event.getTargetIndex());
-		int end = Math.max(event.getSourceIndex(), event.getTargetIndex()) + event.getLength() - 1;
-		this.fireContentsChanged(this, start, end);
-	}
-
-	/**
-	 * The underlying model list was cleared.
-	 * Notify listeners of the changes.
-	 */
-	protected void listCleared() {
-		if (this.listSize != 0) {
-			this.fireIntervalRemoved(this, 0, this.listSize - 1);
-			this.listSize = 0;
-		}
-	}
-
-	/**
-	 * The underlying model list has changed "dramatically".
-	 * Notify listeners of the changes.
-	 */
-	protected void listChanged() {
-		if (this.listSize != 0) {
-			this.fireIntervalRemoved(this, 0, this.listSize - 1);
-		}
-		this.listSize = this.listHolder.size();
-		if (this.listSize != 0) {
-			this.fireIntervalAdded(this, 0, this.listSize - 1);
-		}
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java
deleted file mode 100644
index af3e0b0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.swing.SpinnerListModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerListModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value
- * in the list.
- * 
- * This class must be a sub-class of SpinnerListModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * NB: This model should only be used for values that have a reasonably
- * inexpensive #equals() implementation.
- * @see #synchronize(Object)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see DateSpinnerModelAdapter
- * @see NumberSpinnerModelAdapter
- */
-public class ListSpinnerModelAdapter
-	extends SpinnerListModel
-{
-
-	/**
-	 * The default spinner value; used when the underlying model value is null.
-	 * The default is the first item on the list.
-	 */
-	private final Object defaultValue;
-
-	/** A value model on the underlying value. */
-	private final WritablePropertyValueModel<Object> valueHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying value. */
-	private final PropertyChangeListener valueChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the model value itself as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder) {
-		this(valueHolder, valueHolder.getValue());
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object defaultValue) {
-		this(valueHolder, new Object[] {defaultValue}, defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the first item in the list of values as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object[] values) {
-		this(valueHolder, values, values[0]);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object[] values, Object defaultValue) {
-		this(valueHolder, Arrays.asList(values), defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the first item in the list of values as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, List<Object> values) {
-		this(valueHolder, values, values.get(0));
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, List<Object> values, Object defaultValue) {
-		super(values);
-		this.valueHolder = valueHolder;
-		this.valueChangeListener = this.buildValueChangeListener();
-		// postpone listening to the underlying value
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValueChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildValueChangeListener_());
-	}
-
-	protected PropertyChangeListener buildValueChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ListSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "value listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.valueHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying value directly.
-	 * The resulting event will be ignored: @see #synchronize(Object).
-	 */
-    @Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.valueHolder.setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying value if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-			this.synchronize(this.valueHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying value if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Object getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the spinner value has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.valueHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java
deleted file mode 100644
index 4a62463..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerNumberModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a number.
- * 
- * This class must be a sub-class of SpinnerNumberModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see DateSpinnerModelAdapter
- * @see ListSpinnerModelAdapter
- */
-public class NumberSpinnerModelAdapter
-	extends SpinnerNumberModel
-{
-
-	/**
-	 * The default spinner value; used when the
-	 * underlying model number value is null.
-	 */
-	private final Number defaultValue;
-
-	/** A value model on the underlying number. */
-	private final WritablePropertyValueModel<Number> numberHolder;
-
-	/**
-	 * A listener that allows us to synchronize with
-	 * changes made to the underlying number.
-	 */
-	private final PropertyChangeListener numberChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the number holder is required.
-	 * The default spinner value is zero.
-	 * The step size is one.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder) {
-		this(numberHolder, 0);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * The step size is one.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int defaultValue) {
-		this(numberHolder, null, null, Integer.valueOf(1), Integer.valueOf(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * Use the minimum value as the default spinner value.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int minimum, int maximum, int stepSize) {
-		this(numberHolder, minimum, maximum, stepSize, minimum);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int minimum, int maximum, int stepSize, int defaultValue) {
-		this(numberHolder, Integer.valueOf(minimum), Integer.valueOf(maximum), Integer.valueOf(stepSize), Integer.valueOf(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * Use the minimum value as the default spinner value.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, double minimum, double maximum, double stepSize) {
-		this(numberHolder, minimum, maximum, stepSize, minimum);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, double minimum, double maximum, double stepSize, double defaultValue) {
-		this(numberHolder, Double.valueOf(minimum), Double.valueOf(maximum), Double.valueOf(stepSize), Double.valueOf(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, Comparable<?> minimum, Comparable<?> maximum, Number stepSize, Number defaultValue) {
-		super(numberHolder.getValue() == null ? defaultValue : (Number) numberHolder.getValue(), minimum, maximum, stepSize);
-		this.numberHolder = numberHolder;
-		this.numberChangeListener = this.buildNumberChangeListener();
-		// postpone listening to the underlying number
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildNumberChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildNumberChangeListener_());
-	}
-
-	protected PropertyChangeListener buildNumberChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				NumberSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "number listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.numberHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying number directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(Object).
-	 */
-    @Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.numberHolder.setValue((Number) value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying number if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.numberHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener);
-			this.synchronize(this.numberHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying number if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.numberHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Number getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the date has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.numberHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java
deleted file mode 100644
index 81647b2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import javax.swing.DefaultListSelectionModel;
-import javax.swing.ListModel;
-import javax.swing.event.ListDataEvent;
-import javax.swing.event.ListDataListener;
-import javax.swing.event.ListSelectionListener;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-
-/**
- * This ListSelectionModel is aware of the ListModel and
- * provides convenience methods to access and set the
- * selected *objects*, as opposed to the selected *indexes*.
- */
-public class ObjectListSelectionModel
-	extends DefaultListSelectionModel
-{
-	/** The list model referenced by the list selection model. */
-	private final ListModel listModel;
-
-	/** A listener that allows us to clear the selection when the list model has changed. */
-	private final ListDataListener listDataListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list selection model for the specified list model.
-	 */
-	public ObjectListSelectionModel(ListModel listModel) {
-		super();
-		this.listModel = listModel;
-		this.listDataListener = this.buildListDataListener();
-	}
-
-
-	// ********** initialization **********
-
-	private ListDataListener buildListDataListener() {
-		return new ListDataListener() {
-			public void intervalAdded(ListDataEvent event) {
-				// this does not affect the selection
-			}
-			public void intervalRemoved(ListDataEvent event) {
-				// this does not affect the selection
-			}
-			public void contentsChanged(ListDataEvent event) {
-				ObjectListSelectionModel.this.listModelContentsChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list data listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	/**
-	 * Typically, the selection does not need to be cleared when the
-	 * contents of the list have changed. Most of the time this just
-	 * means an item has changed in a way that affects its display string
-	 * or icon. We typically only use the class for edits involving
-	 * single selection.
-	 * A subclass can override this method if the selection
-	 * should be cleared because a change could mean the selection is invalid.
-	 */
-	protected void listModelContentsChanged(@SuppressWarnings("unused") ListDataEvent event) {
-		/**this.clearSelection();*/
-	}
-
-
-	// ********** ListSelectionModel implementation **********
-
-	@Override
-	public void addListSelectionListener(ListSelectionListener l) {
-		if (this.hasNoListSelectionListeners()) {
-			this.listModel.addListDataListener(this.listDataListener);
-		}
-		super.addListSelectionListener(l);
-	}
-
-	@Override
-	public void removeListSelectionListener(ListSelectionListener l) {
-		super.removeListSelectionListener(l);
-		if (this.hasNoListSelectionListeners()) {
-			this.listModel.removeListDataListener(this.listDataListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoListSelectionListeners() {	// private-protected
-		return this.getListSelectionListeners().length == 0;
-	}
-
-	/**
-	 * Return the list model referenced by the list selection model.
-	 */
-	public ListModel getListModel() {
-		return this.listModel;
-	}
-
-	public int selectedValuesSize() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return 0;
-		}
-
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				n++;
-			}
-		}
-		return n;
-	}
-
-	/**
-	 * Return the first selected value.
-	 * Return null if the selection is empty.
-	 */
-	public Object selectedValue() {
-		int index = this.getMinSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		if (this.getListModel().getSize() <= index) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * Return an array of the selected values.
-	 */
-	public Object[] selectedValues() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return new Object[0];
-		}
-
-		int maxSize = (max - min) + 1;
-		Object[] temp = new Object[maxSize];
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				temp[n++] = this.getListModel().getElementAt(i);
-			}
-		}
-		if (n == maxSize) {
-			// all the elements in the range were selected
-			return temp;
-		}
-		// only some of the elements in the range were selected
-		Object[] result = new Object[n];
-		System.arraycopy(temp, 0, result, 0, n);
-		return result;
-	}
-
-	/**
-	 * Return an array of the selected indices in order.
-	 */
-	public int[] selectedIndices() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return new int[0];
-		}
-
-		int maxSize = (max - min) + 1;
-		int[] temp = new int[maxSize];
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				temp[n++] = i;
-			}
-		}
-		if (n == maxSize) {
-			// all the elements in the range were selected
-			Arrays.sort(temp);
-			return temp;
-		}
-		// only some of the elements in the range were selected
-		int[] result = new int[n];
-		System.arraycopy(temp, 0, result, 0, n);
-		Arrays.sort(result);
-		return result;
-	}
-
-	/**
-	 * Set the selected value.
-	 */
-	public void setSelectedValue(Object object) {
-		this.setSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		this.clearSelection();
-		this.addSelectedValuesInternal(objects);
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Collection<?> objects) {
-		this.setSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Object[] objects) {
-		this.setSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * Add the specified object to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValue(Object object) {
-		this.addSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		this.addSelectedValuesInternal(objects);
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Collection<?> objects) {
-		this.addSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Object[] objects) {
-		this.addSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * Remove the specified object from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValue(Object object) {
-		this.removeSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		ListModel lm = this.getListModel();
-		int lmSize = lm.getSize();
-		while (objects.hasNext()) {
-			int index = this.indexOf(objects.next(), lm, lmSize);
-			this.removeSelectionInterval(index, index);
-		}
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Collection<?> objects) {
-		this.removeSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Object[] objects) {
-		this.removeSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getAnchorSelectionIndex()
-	 * Return null if the anchor selection is empty.
-	 */
-	public Object getAnchorSelectedValue() {
-		int index = this.getAnchorSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#setAnchorSelectionIndex(int)
-	 */
-	public void setAnchorSelectedValue(Object object) {
-		this.setAnchorSelectionIndex(this.indexOf(object));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getLeadSelectionIndex()
-	 * Return null if the lead selection is empty.
-	 */
-	public Object getLeadSelectedValue() {
-		int index = this.getLeadSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#setLeadSelectionIndex(int)
-	 */
-	public void setLeadSelectedValue(Object object) {
-		this.setLeadSelectionIndex(this.indexOf(object));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getMaxSelectionIndex()
-	 * Return null if the max selection is empty.
-	 */
-	public Object getMaxSelectedValue() {
-		int index = this.getMaxSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getMinSelectionIndex()
-	 * Return null if the min selection is empty.
-	 */
-	public Object getMinSelectedValue() {
-		int index = this.getMinSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#isSelectedIndex(int)
-	 */
-	public boolean valueIsSelected(Object object) {
-		return this.isSelectedIndex(this.indexOf(object));
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects,
-	 * without wrapping the actions in "adjusting" events.
-	 */
-	private void addSelectedValuesInternal(Iterator<?> objects) {
-		ListModel lm = this.getListModel();
-		int listModelSize = lm.getSize();
-		while (objects.hasNext()) {
-			int index = this.indexOf(objects.next(), lm, listModelSize);
-			this.addSelectionInterval(index, index);
-		}
-	}
-
-	/**
-	 * Return the index in the list model of the specified object.
-	 * Return -1 if the object is not in the list model.
-	 */
-	private int indexOf(Object object) {
-		ListModel lm = this.getListModel();
-		return this.indexOf(object, lm, lm.getSize());
-	}
-
-	/**
-	 * Return the index in the list model of the specified object.
-	 * Return -1 if the object is not in the list model.
-	 */
-	// we're just jerking around with performance optimizations here
-	// (in memory of Phil...);
-	// call this method inside loops that do not modify the listModel
-	private int indexOf(Object object, ListModel lm, int listModelSize) {
-		for (int i = listModelSize; i-- > 0; ) {
-			if (lm.getElementAt(i).equals(object)) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java
deleted file mode 100644
index 9fe9fca..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.MutableTreeNode;
-import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
-
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-
-/**
- * This TreeModel implementation provides a tree with a "null" root that
- * has a set of "primitive" children. These "primitive" children do not have
- * children themselves, making the tree a maximum of 2 levels deep.
- * This model automatically synchronizes the root's children with a
- * ListValueModel that holds a collection of primitive (non-model) objects
- * (e.g. Strings).
- * 
- * This is useful for providing an "editable" list of primitives. Since the JDK
- * does not provide us with an editable listbox, we must use an editable tree.
- * We wrap everything in DefaultMutableTreeNodes.
- * 
- * Subclasses must implement #primitiveChanged(int, Object) and update
- * the model appropriately. This method is called when the user edits the
- * list directly and presses <Enter>.
- * 
- * The JTree using this model must be configured as "editable":
- * 	tree.setEditable(true);
- */
-// TODO convert to use an adapter instead of requiring subclass
-public abstract class PrimitiveListTreeModel
-	extends DefaultTreeModel
-{
-	/** a model on the list of primitives */
-	private final ListValueModel<?> listHolder;
-
-	/** a listener that handles the adding, removing, and replacing of the primitives */
-	private final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-	
-	/**
-	 * Public constructor - the list holder is required
-	 */
-	public PrimitiveListTreeModel(ListValueModel<?> listHolder) {
-		super(new DefaultMutableTreeNode(null, true));  // true = the root can have children
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-		// postpone listening to the model until we have listeners ourselves
-	}
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new PrimitiveListChangeListener();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Subclasses should override this method to update the 
-	 * model appropriately. The primitive at the specified index was
-	 * edited directly by the user and the new value is as specified.
-	 * Convert the value appropriately and place it in the model.
-	 */
-	protected abstract void primitiveChanged(int index, Object newValue);
-
-
-	// ********** TreeModel implementation **********
-
-	/**
-	 * Override to change the underlying model instead of changing the node directly.
-	 */
-    @Override
-	public void valueForPathChanged(TreePath path, Object newValue) {
-		TreeNode node = (TreeNode) path.getLastPathComponent();
-		int index = ((TreeNode) this.getRoot()).getIndex(node);
-		this.primitiveChanged(index, newValue);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTreeModelListener(TreeModelListener l) {
-		if (this.getTreeModelListeners().length == 0) {
-			this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-			this.synchronizeList();
-		}
-		super.addTreeModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeTreeModelListener(TreeModelListener l) {
-		super.removeTreeModelListener(l);
-		if (this.getTreeModelListeners().length == 0) {
-			this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Synchronize our list of nodes with the list of primitives
-	 */
-	void synchronizeList() {
-		this.clearList();
-		this.buildList();
-	}
-
-	void clearList() {
-		int childcount = this.root.getChildCount();
-		for (int i = childcount - 1; i >= 0; i--) {
-			this.removeNodeFromParent((MutableTreeNode)this.root.getChildAt(i));
-		}
-	}
-		
-	private void buildList() {
-		for (Iterator<?> stream = this.listHolder.iterator(); stream.hasNext(); ) {
-			this.addPrimitive(stream.next());
-		}
-	}
-
-	/**
-	 * Add the specified primitive to the end of the list.
-	 */
-	private void addPrimitive(Object primitive) {
-		this.insertPrimitive(this.root.getChildCount(), primitive);
-	}
-
-	/**
-	 * Create a node for the specified primitive
-	 * and insert it as a child of the root.
-	 */
-	void insertPrimitive(int index, Object primitive) {
-		DefaultMutableTreeNode node = new DefaultMutableTreeNode(primitive, false); // don't allow children on the child node
-		this.insertNodeInto(node, (MutableTreeNode) this.root, index);
-	}
-
-	/**
-	 * Remove node at the specified index.
-	 */
-	MutableTreeNode removeNode(int index) {
-		MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index);
-		this.removeNodeFromParent(node);
-		return node;
-	}
-
-	/**
-	 * Replace the user object of the node at childIndex.
-	 */
-	void replacePrimitive(int index, Object primitive) {
-		MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index);
-		node.setUserObject(primitive);
-		this.nodeChanged(node);
-	}
-
-
-	// ********** inner class **********
-
-	private class PrimitiveListChangeListener implements ListChangeListener {
-		PrimitiveListChangeListener() {
-			super();
-		}
-
-		public void itemsAdded(ListAddEvent event) {
-			int i = event.getIndex();
-			for (Object item : event.getItems()) {
-				PrimitiveListTreeModel.this.insertPrimitive(i++, item);
-			}
-		}
-
-		public void itemsRemoved(ListRemoveEvent event) {
-			for (int i = 0; i < event.getItemsSize(); i++) {
-				PrimitiveListTreeModel.this.removeNode(event.getIndex());
-			}
-		}
-
-		public void itemsReplaced(ListReplaceEvent event) {
-			int i = event.getIndex();
-			for (Object item : event.getNewItems()) {
-				PrimitiveListTreeModel.this.replacePrimitive(i++, item);
-			}
-		}
-
-		public void itemsMoved(ListMoveEvent event) {
-			ArrayList<MutableTreeNode> temp = new ArrayList<MutableTreeNode>(event.getLength());
-			for (int i = 0; i < event.getLength(); i++) {
-				temp.add(PrimitiveListTreeModel.this.removeNode(event.getSourceIndex()));
-			}
-			int i = event.getTargetIndex();
-			for (MutableTreeNode node : temp) {
-				PrimitiveListTreeModel.this.insertPrimitive(i++, node);
-			}
-		}
-
-		public void listCleared(ListClearEvent event) {
-			PrimitiveListTreeModel.this.clearList();
-		}
-
-		public void listChanged(ListChangeEvent event) {
-			PrimitiveListTreeModel.this.synchronizeList();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java
deleted file mode 100644
index 83d3113..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.common.utility.internal.BidiFilter;
-import org.eclipse.jpt.common.utility.internal.BidiTransformer;
-import org.eclipse.jpt.common.utility.internal.model.value.FilteringWritablePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.TransformationWritablePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JRadioButton) in synch with a (typically shared)
- * PropertyValueModel that holds one value out of a set of values.
- * 
- * NOTE: Do *not* use this model with a ButtonGroup, since the
- * shared value holder and the wrappers built by this adapter will
- * keep the appropriate radio button checked. Also, this allows
- * us to uncheck all the radio buttons in a group when the shared
- * value is null.
- */
-public class RadioButtonModelAdapter
-	extends ToggleButtonModelAdapter
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public RadioButtonModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object buttonValue, boolean defaultValue) {
-		super(buildBooleanHolder(valueHolder, buttonValue), defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * The default value will be false.
-	 */
-	public RadioButtonModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object buttonValue) {
-		super(buildBooleanHolder(valueHolder, buttonValue));
-	}
-
-
-	// ********** static methods **********
-
-	/**
-	 * Build up a set of wrappers that will convert the
-	 * specified value holder and button value to/from a boolean.
-	 * 
-	 * If the value holder's value matches the button value,
-	 * the wrapper will return true. Likewise, if the value holder's
-	 * value is set to true, the wrapper will set the value holder's
-	 * value to the button value.
-	 */
-	public static WritablePropertyValueModel<Boolean> buildBooleanHolder(WritablePropertyValueModel<Object> valueHolder, Object buttonValue) {
-		WritablePropertyValueModel<Object> filteringPVM = new FilteringWritablePropertyValueModel<Object>(valueHolder, new RadioButtonFilter(buttonValue));
-		return new TransformationWritablePropertyValueModel<Object, Boolean>(filteringPVM, new RadioButtonTransformer(buttonValue));
-	}
-
-
-	// ********** overrides **********
-
-	/**
-	 * The user cannot de-select a radio button - the user
-	 * can only *select* a radio button. Only the model can
-	 * cause a radio button to be de-selected. We use the
-	 * ARMED flag to indicate whether we are being de-selected
-	 * by the user.
-	 */
-    @Override
-	public void setSelected(boolean b) {
-		// do not allow the user to de-select a radio button
-		// radio buttons can
-		if ((b == false) && this.isArmed()) {
-			return;
-		}
-		super.setSelected(b);
-	}
-
-
-	// ********** inner classes **********
-
-	/**
-	 * This filter will only pass through a new value to the wrapped
-	 * value holder when it matches the configured button value.
-	 */
-	public static class RadioButtonFilter implements BidiFilter<Object> {
-		private Object buttonValue;
-
-		public RadioButtonFilter(Object buttonValue) {
-			super();
-			this.buttonValue = buttonValue;
-		}
-
-		/**
-		 * always return the wrapped value
-		 */
-		public boolean accept(Object value) {
-			return true;
-		}
-
-		/**
-		 * pass through the value to the wrapped property value model
-		 * *only* when it matches our button value
-		 */
-		public boolean reverseAccept(Object value) {
-			return (value != null) && value.equals(this.buttonValue);
-		}
-
-	}
-
-	/**
-	 * This transformer will convert the wrapped value to Boolean.TRUE
-	 * when it matches the configured button value.
-	 */
-	public static class RadioButtonTransformer implements BidiTransformer<Object, Boolean> {
-		private Object buttonValue;
-
-		public RadioButtonTransformer(Object buttonValue) {
-			super();
-			this.buttonValue = buttonValue;
-		}
-
-		/**
-		 * if the wrapped value matches our button value return true,
-		 * if it is some other value return false;
-		 * but if it is null simply pass it through because it will cause the
-		 * button model's default value to be used
-		 */
-		public Boolean transform(Object value) {
-			return (value == null) ? null : Boolean.valueOf(value.equals(this.buttonValue));
-		}
-
-		/**
-		 * if the new value is true, pass through the our button value;
-		 * otherwise pass through null
-		 */
-		public Object reverseTransform(Boolean value) {
-			return (value.booleanValue()) ? this.buttonValue : null;
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java
deleted file mode 100644
index 2490cae..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import javax.swing.AbstractSpinnerModel;
-import javax.swing.SpinnerModel;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value.
- * 
- * Note: it is likely you want to use one of the following classes instead of
- * this one:
- *     DateSpinnerModelAdapter
- *     NumberSpinnerModelAdapter
- *     ListSpinnerModelAdapter
- * 
- * NB: This model should only be used for values that have a fairly
- * inexpensive #equals() implementation.
- * @see #synchronizeDelegate(Object)
- */
-public class SpinnerModelAdapter
-	extends AbstractSpinnerModel
-{
-	/** The delegate spinner model whose behavior we "enhance". */
-	protected final SpinnerModel delegate;
-
-	/** A listener that allows us to forward any changes made to the delegate spinner model. */
-	protected final ChangeListener delegateListener;
-
-	/** A value model on the underlying value. */
-	protected final WritablePropertyValueModel<Object> valueHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying value. */
-	protected final PropertyChangeListener valueListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder and delegate are required.
-	 */
-	public SpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, SpinnerModel delegate) {
-		super();
-		if (valueHolder == null || delegate == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.delegate = delegate;
-		// postpone listening to the underlying value
-		// until we have listeners ourselves...
-		this.valueListener = this.buildValueListener();
-		this.delegateListener = this.buildDelegateListener();
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * This will wrap a simple number spinner model.
-	 */
-	public SpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder) {
-		this(valueHolder, new SpinnerNumberModel());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValueListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildValueListener_());
-	}
-
-	protected PropertyChangeListener buildValueListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				SpinnerModelAdapter.this.valueChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	/**
-	 * expand access a bit for inner class
-	 */
-	@Override
-	protected void fireStateChanged() {
-		super.fireStateChanged();
-	}
-
-	protected ChangeListener buildDelegateListener() {
-		return new ChangeListener() {
-			public void stateChanged(ChangeEvent event) {
-				// forward the event, with this as the source
-				SpinnerModelAdapter.this.fireStateChanged();
-			}
-			@Override
-			public String toString() {
-				return "delegate listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	public Object getValue() {
-		return this.delegate.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying value directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(Object).
-	 */
-	public void setValue(Object value) {
-		this.delegate.setValue(value);
-		this.valueHolder.setValue(value);
-	}
-
-	public Object getNextValue() {
-		return this.delegate.getNextValue();
-	}
-
-	public Object getPreviousValue() {
-		return this.delegate.getPreviousValue();
-	}
-
-	/**
-	 * Extend to start listening to the underlying value if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.listenerList.getListenerCount(ChangeListener.class) == 0) {
-			this.delegate.addChangeListener(this.delegateListener);
-			this.engageValueHolder();
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying value if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.listenerList.getListenerCount(ChangeListener.class) == 0) {
-			this.disengageValueHolder();
-			this.delegate.removeChangeListener(this.delegateListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * A third party has modified the underlying value.
-	 * Synchronize the delegate model accordingly.
-	 */
-	protected void valueChanged(PropertyChangeEvent event) {
-		this.synchronizeDelegate(event.getNewValue());
-	}
-
-	/**
-	 * Set the delegate's value if it has changed.
-	 */
-	protected void synchronizeDelegate(Object value) {
-		// check to see whether the delegate has already been synchronized
-		// (via #setValue())
-		if ( ! this.delegate.getValue().equals(value)) {
-			this.delegate.setValue(value);
-		}
-	}
-
-	protected void engageValueHolder() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueListener);
-		this.synchronizeDelegate(this.valueHolder.getValue());
-	}
-
-	protected void disengageValueHolder() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueListener);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.valueHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java
deleted file mode 100644
index 8c29c13..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.swing.event.TableModelListener;
-import javax.swing.table.AbstractTableModel;
-
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This TableModel can be used to keep a TableModelListener (e.g. a JTable)
- * in synch with a ListValueModel that holds a collection of model objects,
- * each of which corresponds to a row in the table.
- * Typically, each column of the table will be bound to a different aspect
- * of the contained model objects.
- * 
- * For example, a MWTable has an attribute 'databaseFields' that holds
- * a collection of MWDatabaseFields that would correspond to the rows of
- * a JTable; and each MWDatabaseField has a number
- * of attributes (e.g. name, type, size) that can be bound to the columns of
- * a row in the JTable. As these database fields are added, removed, and
- * changed, this model will keep the listeners aware of the changes.
- * 
- * An instance of this TableModel must be supplied with a
- * list holder (e.g. the 'databaseFields'), which is a value
- * model on the bound collection This is required - the
- * collection itself can be null, but the list value model that
- * holds it is required. Typically this list will be sorted (@see
- * SortedListValueModelAdapter).
- * 
- * This TableModel must also be supplied with a ColumnAdapter that
- * will be used to configure the headers, renderers, editors, and contents
- * of the various columns.
- * 
- * Design decision:
- * Cell listener options (from low space/high time to high space/low time):
- * 	- 1 cell listener listening to every cell (this is the current implementation)
- * 	- 1 cell listener per row
- * 	- 1 cell listener per cell
- */
-public class TableModelAdapter<E>
-	extends AbstractTableModel
-{
-	/**
-	 * a list of user objects that are converted to
-	 * rows via the column adapter
-	 */
-	private ListValueModel<? extends E> listHolder;
-	private final ListChangeListener listChangeListener;
-
-	/**
-	 * each row is an array of cell models
-	 */
-	// declare as ArrayList so we can use #ensureCapacity(int)
-	private final ArrayList<WritablePropertyValueModel<Object>[]> rows;
-
-	/**
-	 * client-supplied adapter that provides with the various column
-	 * settings and converts the objects in the LVM
-	 * into an array of cell models
-	 */
-	private final ColumnAdapter columnAdapter;
-
-	/**
-	 * the single listener that listens to every cell's model
-	 */
-	private final PropertyChangeListener cellListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a table model adapter for the specified objects
-	 * and adapter.
-	 */
-	public TableModelAdapter(ListValueModel<? extends E> listHolder, ColumnAdapter columnAdapter) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.columnAdapter = columnAdapter;
-		this.listChangeListener = this.buildListChangeListener();
-		this.rows = new ArrayList<WritablePropertyValueModel<Object>[]>();
-		this.cellListener = this.buildCellListener();
-	}
-
-	/**
-	 * Construct a table model adapter for the specified objects
-	 * and adapter.
-	 */
-	public TableModelAdapter(CollectionValueModel<? extends E> collectionHolder, ColumnAdapter columnAdapter) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), columnAdapter);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				TableModelAdapter.this.addRows(event.getIndex(), event.getItemsSize(), this.getItems(event));
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				TableModelAdapter.this.removeRows(event.getIndex(), event.getItemsSize());
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				TableModelAdapter.this.replaceRows(event.getIndex(), this.getNewItems(event));
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				TableModelAdapter.this.moveRows(event.getTargetIndex(), event.getSourceIndex(), event.getLength());
-			}
-			public void listCleared(ListClearEvent event) {
-				TableModelAdapter.this.clearTable();
-			}
-			public void listChanged(ListChangeEvent event) {
-				TableModelAdapter.this.rebuildTable();
-			}
-			// minimized scope of suppressed warnings
-			@SuppressWarnings("unchecked")
-			protected Iterable<Object> getItems(ListAddEvent event) {
-				return (Iterable<Object>) event.getItems();
-			}
-			// minimized scope of suppressed warnings
-			@SuppressWarnings("unchecked")
-			protected Iterable<Object> getNewItems(ListReplaceEvent event) {
-				return (Iterable<Object>) event.getNewItems();
-			}
-			@Override
-			public String toString() {
-				return "list listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	protected PropertyChangeListener buildCellListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildCellListener_());
-	}
-
-	protected PropertyChangeListener buildCellListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				TableModelAdapter.this.cellChanged((WritablePropertyValueModel<Object>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "cell listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** TableModel implementation **********
-
-	public int getColumnCount() {
-		return this.columnAdapter.columnCount();
-	}
-
-	public int getRowCount() {
-		return this.rows.size();
-	}
-
-    @Override
-	public String getColumnName(int column) {
-		return this.columnAdapter.columnName(column);
-	}
-
-    @Override
-	public Class<?> getColumnClass(int columnIndex) {
-		return this.columnAdapter.columnClass(columnIndex);
-	}
-
-    @Override
-	public boolean isCellEditable(int rowIndex, int columnIndex) {
-		return this.columnAdapter.columnIsEditable(columnIndex);
-	}
-
-	public Object getValueAt(int rowIndex, int columnIndex) {
-		WritablePropertyValueModel<Object>[] row = this.rows.get(rowIndex);
-		return row[columnIndex].getValue();
-	}
-
-	@Override
-	public void setValueAt(Object value, int rowIndex, int columnIndex) {
-		WritablePropertyValueModel<Object>[] row = this.rows.get(rowIndex);
-		row[columnIndex].setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTableModelListener(TableModelListener l) {
-		if (this.hasNoTableModelListeners()) {
-			this.engageModel();
-		}
-		super.addTableModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-    @Override
-	public void removeTableModelListener(TableModelListener l) {
-		super.removeTableModelListener(l);
-		if (this.hasNoTableModelListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the underlying list model.
-	 */
-	public ListValueModel<? extends E> getModel() {
-		return this.listHolder;
-	}
-
-	/**
-	 * Set the underlying list model.
-	 */
-	public void setModel(ListValueModel<E> listHolder) {
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		boolean hasListeners = this.hasTableModelListeners();
-		if (hasListeners) {
-			this.disengageModel();
-		}
-		this.listHolder = listHolder;
-		if (hasListeners) {
-			this.engageModel();
-			this.fireTableDataChanged();
-		}
-	}
-
-	/**
-	 * Set the underlying collection model.
-	 */
-	public void setModel(CollectionValueModel<E> collectionHolder) {
-		this.setModel(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoTableModelListeners() {
-		return this.listenerList.getListenerCount(TableModelListener.class) == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasTableModelListeners() {
-		return ! this.hasNoTableModelListeners();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list of objects and the various aspects
-	 * of the objects that make up the rows.
-	 */
-	private void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		this.engageAllCells();
-	}
-
-	/**
-	 * Convert the objects into rows and listen to the cells.
-	 */
-	private void engageAllCells() {
-		this.rows.ensureCapacity(this.listHolder.size());
-		for (Iterator<? extends E> stream = this.listHolder.iterator(); stream.hasNext(); ) {
-			WritablePropertyValueModel<Object>[] row = this.columnAdapter.cellModels(stream.next());
-			this.engageRow(row);
-			this.rows.add(row);
-		}
-	}
-
-	/**
-	 * Listen to the cells in the specified row.
-	 */
-	private void engageRow(WritablePropertyValueModel<Object>[] row) {
-		for (int i = row.length; i-- > 0; ) {
-			row[i].addPropertyChangeListener(PropertyValueModel.VALUE, this.cellListener);
-		}
-	}
-
-	/**
-	 * Stop listening.
-	 */
-	private void disengageModel() {
-		this.disengageAllCells();
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	private void disengageAllCells() {
-		for (WritablePropertyValueModel<Object>[] row : this.rows) {
-			this.disengageRow(row);
-		}
-		this.rows.clear();
-	}
-
-	private void disengageRow(WritablePropertyValueModel<Object>[] row) {
-		for (int i = row.length; i-- > 0; ) {
-			row[i].removePropertyChangeListener(PropertyValueModel.VALUE, this.cellListener);
-		}
-	}
-
-	/**
-	 * brute-force search for the cell(s) that changed...
-	 */
-	void cellChanged(WritablePropertyValueModel<Object> cellHolder) {
-		for (int i = this.rows.size(); i-- > 0; ) {
-			WritablePropertyValueModel<Object>[] row = this.rows.get(i);
-			for (int j = row.length; j-- > 0; ) {
-				if (row[j] == cellHolder) {
-					this.fireTableCellUpdated(i, j);
-				}
-			}
-		}
-	}
-
-	/**
-	 * convert the items to rows
-	 */
-	void addRows(int index, int size, Iterable<Object> items) {
-		List<WritablePropertyValueModel<Object>[]> newRows = new ArrayList<WritablePropertyValueModel<Object>[]>(size);
-		for (Object item : items) {
-			WritablePropertyValueModel<Object>[] row = this.columnAdapter.cellModels(item);
-			this.engageRow(row);
-			newRows.add(row);
-		}
-		this.rows.addAll(index, newRows);
-		this.fireTableRowsInserted(index, index + size - 1);
-	}
-
-	void removeRows(int index, int size) {
-		for (int i = 0; i < size; i++) {
-			this.disengageRow(this.rows.remove(index));
-		}
-		this.fireTableRowsDeleted(index, index + size - 1);
-	}
-
-	void replaceRows(int index, Iterable<Object> items) {
-		int i = index;
-		for (Object item : items) {
-			WritablePropertyValueModel<Object>[] row = this.rows.get(i);
-			this.disengageRow(row);
-			row = this.columnAdapter.cellModels(item);
-			this.engageRow(row);
-			this.rows.set(i, row);
-			i++;
-		}
-		this.fireTableRowsUpdated(index, i - 1);
-	}
-
-	void moveRows(int targetIndex, int sourceIndex, int length) {
-		ArrayList<WritablePropertyValueModel<Object>[]> temp = new ArrayList<WritablePropertyValueModel<Object>[]>(length);
-		for (int i = 0; i < length; i++) {
-			temp.add(this.rows.remove(sourceIndex));
-		}
-		this.rows.addAll(targetIndex, temp);
-
-		int start = Math.min(targetIndex, sourceIndex);
-		int end = Math.max(targetIndex, sourceIndex) + length - 1;
-		this.fireTableRowsUpdated(start, end);
-	}
-
-	void clearTable() {
-		this.disengageAllCells();
-		this.fireTableDataChanged();
-	}
-
-	void rebuildTable() {
-		this.disengageAllCells();
-		this.engageAllCells();
-		this.fireTableDataChanged();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java
deleted file mode 100644
index 044b265..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.awt.event.ActionListener;
-import java.awt.event.ItemListener;
-import javax.swing.JToggleButton.ToggleButtonModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JCheckBox or a JRadioButton) in synch with a PropertyValueModel
- * on a boolean.
- */
-public class ToggleButtonModelAdapter
-	extends ToggleButtonModel
-{
-	/**
-	 * The default setting for the toggle button; for when the underlying model is null.
-	 * The default [default value] is false (i.e. the toggle button is unchecked/empty).
-	 */
-	protected final boolean defaultValue;
-
-	/** A value model on the underlying model boolean. */
-	protected final WritablePropertyValueModel<Boolean> booleanHolder;
-
-	/**
-	 * A listener that allows us to synchronize with
-	 * changes made to the underlying model boolean.
-	 */
-	protected final PropertyChangeListener booleanChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 */
-	public ToggleButtonModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder, boolean defaultValue) {
-		super();
-		if (booleanHolder == null) {
-			throw new NullPointerException();
-		}
-		this.booleanHolder = booleanHolder;
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-		// postpone listening to the underlying model
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 * The default value will be false.
-	 */
-	public ToggleButtonModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder) {
-		this(booleanHolder, false);
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildBooleanChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
-	}
-
-	protected PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ToggleButtonModelAdapter.this.booleanChanged(event);
-			}
-		    @Override
-			public String toString() {
-				return "boolean listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** ButtonModel implementation **********
-
-	/**
-	 * Extend to update the underlying model if necessary.
-	 */
-    @Override
-	public void setSelected(boolean b) {
-		if (this.isSelected() != b) {	// stop the recursion!
-			super.setSelected(b);//put the super call first, otherwise the following gets called twice
-			this.booleanHolder.setValue(Boolean.valueOf(b));
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addActionListener(ActionListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addActionListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeActionListener(ActionListener l) {
-		super.removeActionListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addItemListener(ItemListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addItemListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeItemListener(ItemListener l) {
-		super.removeItemListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addChangeListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener l) {
-		super.removeChangeListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether we have no listeners at all.
-	 */
-	protected boolean hasNoListeners() {
-		return this.listenerList.getListenerCount() == 0;
-	}
-
-	protected boolean getDefaultValue() {
-		return this.defaultValue;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Synchronize with the specified value.
-	 * If it is null, use the default value (which is typically false).
-	 */
-	protected void setSelected(Boolean value) {
-		if (value == null) {
-			this.setSelected(this.getDefaultValue());
-		} else {
-			this.setSelected(value.booleanValue());
-		}
-	}
-
-	/**
-	 * The underlying model has changed - synchronize accordingly.
-	 */
-	protected void booleanChanged(PropertyChangeEvent event) {
-		this.setSelected((Boolean) event.getNewValue());
-	}
-
-	protected void engageModel() {
-		this.booleanHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-		this.setSelected(this.booleanHolder.getValue());
-	}
-
-	protected void disengageModel() {
-		this.booleanHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-    @Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.booleanHolder);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java
deleted file mode 100644
index 12f0faf..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java
+++ /dev/null
@@ -1,914 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.IdentityHashMap;
-import java.util.List;
-
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreePath;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTStateChangeListenerWrapper;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel;
-
-/**
- * This javax.swing.tree.TreeModel can be used to keep a TreeModelListener
- * (e.g. a JTree) in synch with a tree of TreeNodeValueModel objects. Unlike
- * javax.swing.tree.DefaultTreeModel, you do not add and remove nodes with
- * methods implemented here. You can add and remove nodes by adding and
- * removing them directly to/from the nodes (or, more typically, the domain
- * objects the nodes are wrapping and listening to).
- * 
- * Due to limitations in JTree, the root of the tree can never be null,
- * which, typically, should not be a problem. (If you want to display an empty
- * tree you can set the JTree's treeModel to null.)
- */
-public class TreeModelAdapter<T>
-	extends AbstractTreeModel
-{
-	/**
-	 * A value model on the underlying tree's root node and its
-	 * corresponding listener. This allows clients to swap out
-	 * the entire tree. Due to limitations in JTree, the root should
-	 * never be set to null while we have listeners.
-	 */
-	private final PropertyValueModel<TreeNodeValueModel<T>> rootHolder;
-	private final PropertyChangeListener rootListener;
-
-	/**
-	 * A listener that notifies us when a node's internal
-	 * "state" changes (as opposed to the node's value or list of
-	 * children), allowing us to forward notification to our listeners.
-	 */
-	private final StateChangeListener nodeStateListener;
-
-	/**
-	 * A listener that notifies us when a node's "value"
-	 * changes (as opposed to the node's state or list of
-	 * children), allowing us to forward notification to our listeners.
-	 * Typically, this will only happen with nodes that hold
-	 * primitive data.
-	 */
-	private final PropertyChangeListener nodeValueListener;
-
-	/**
-	 * A listener that notifies us when an underlying node's
-	 * "list" of children changes, allowing us to keep our
-	 * internal tree in synch with the underlying tree model.
-	 */
-	private final ListChangeListener childrenListener;
-
-	/* these attributes make up our internal tree */
-	/**
-	 * The root cannot be null while we have listeners, which is
-	 * most of the time. The root is cached so we can disengage
-	 * from it when it has been swapped out.
-	 */
-	private TreeNodeValueModel<T> root;
-
-	/**
-	 * Map the nodes to their lists of children.
-	 * We cache these so we can swap out the entire list of children
-	 * when we receive a #listChanged() event (which does not include
-	 * the items that were affected).
-	 * @see EventChangePolicy#rebuildChildren()
-	 */
-	final IdentityHashMap<TreeNodeValueModel<T>, List<TreeNodeValueModel<T>>> childrenLists;
-
-	/**
-	 * Map the children models to their parents.
-	 * We cache these so we can figure out the "real" source of the
-	 * list change events (the parent).
-	 * @see EventChangePolicy#parent()
-	 */
-	final IdentityHashMap<ListValueModel<TreeNodeValueModel<T>>, TreeNodeValueModel<T>> parents;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a tree model for the specified root.
-	 */
-	public TreeModelAdapter(PropertyValueModel<TreeNodeValueModel<T>> rootHolder) {
-		super();
-		if (rootHolder == null) {
-			throw new NullPointerException();
-		}
-		this.rootHolder = rootHolder;
-		this.rootListener = this.buildRootListener();
-		this.nodeStateListener = this.buildNodeStateListener();
-		this.nodeValueListener = this.buildNodeValueListener();
-		this.childrenListener = this.buildChildrenListener();
-		this.childrenLists = new IdentityHashMap<TreeNodeValueModel<T>, List<TreeNodeValueModel<T>>>();
-		this.parents = new IdentityHashMap<ListValueModel<TreeNodeValueModel<T>>, TreeNodeValueModel<T>>();
-	}
-
-	/**
-	 * Construct a tree model for the specified root.
-	 */
-	public TreeModelAdapter(TreeNodeValueModel<T> root) {
-		this(new StaticPropertyValueModel<TreeNodeValueModel<T>>(root));
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildRootListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildRootListener_());
-	}
-
-	protected PropertyChangeListener buildRootListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				TreeModelAdapter.this.rootChanged();
-			}
-			@Override
-			public String toString() {
-				return "root listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	protected PropertyChangeListener buildNodeValueListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildNodeValueListener_());
-	}
-
-	protected PropertyChangeListener buildNodeValueListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				TreeModelAdapter.this.nodeChanged((TreeNodeValueModel<T>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "node value listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	protected StateChangeListener buildNodeStateListener() {
-		return new AWTStateChangeListenerWrapper(this.buildNodeStateListener_());
-	}
-
-	protected StateChangeListener buildNodeStateListener_() {
-		return new StateChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void stateChanged(StateChangeEvent event) {
-				TreeModelAdapter.this.nodeChanged((TreeNodeValueModel<T>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "node state listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	protected ListChangeListener buildChildrenListener() {
-		return new AWTListChangeListenerWrapper(this.buildChildrenListener_());
-	}
-
-	protected ListChangeListener buildChildrenListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListAddEvent event) {
-				new AddEventChangePolicy(event).addChildren();
-			}
-			public void itemsRemoved(ListRemoveEvent event) {
-				new RemoveEventChangePolicy(event).removeChildren();
-			}
-			public void itemsReplaced(ListReplaceEvent event) {
-				new ReplaceEventChangePolicy(event).replaceChildren();
-			}
-			public void itemsMoved(ListMoveEvent event) {
-				new MoveEventChangePolicy(event).moveChildren();
-			}
-			public void listCleared(ListClearEvent event) {
-				new ClearEventChangePolicy(event).clearChildren();
-			}
-			public void listChanged(ListChangeEvent event) {
-				new ChangeEventChangePolicy(event).rebuildChildren();
-			}
-			@Override
-			public String toString() {
-				return "children listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** TreeModel implementation **********
-
-	public Object getRoot() {
-		return this.root;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Object getChild(Object parent, int index) {
-		return ((TreeNodeValueModel<T>) parent).child(index);
-	}
-
-	@SuppressWarnings("unchecked")
-	public int getChildCount(Object parent) {
-		return ((TreeNodeValueModel<T>) parent).childrenSize();
-	}
-
-	@SuppressWarnings("unchecked")
-	public boolean isLeaf(Object node) {
-		return ((TreeNodeValueModel<T>) node).isLeaf();
-	}
-
-	@SuppressWarnings("unchecked")
-	public void valueForPathChanged(TreePath path, Object newValue) {
-		((TreeNodeValueModel<T>) path.getLastPathComponent()).setValue((T) newValue);
-	}
-
-	@SuppressWarnings("unchecked")
-	public int getIndexOfChild(Object parent, Object child) {
-		return ((TreeNodeValueModel<T>) parent).indexOfChild((TreeNodeValueModel<T>) child);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTreeModelListener(TreeModelListener l) {
-		if (this.hasNoTreeModelListeners()) {
-			this.engageModel();
-		}
-		super.addTreeModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeTreeModelListener(TreeModelListener l) {
-		super.removeTreeModelListener(l);
-		if (this.hasNoTreeModelListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Listen to the root and all the other nodes
-	 * in the underlying tree model.
-	 */
-	private void engageModel() {
-		this.rootHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.rootListener);
-		this.root = this.rootHolder.getValue();
-		if (this.root == null) {
-			throw new NullPointerException();	// the root cannot be null while we have listeners
-		}
-		this.engageNode(this.root);
-		this.addRoot();
-	}
-
-	/**
-	 * Add the root and all of the nodes to the underlying tree.
-	 */
-	private void addRoot() {
-		this.addNode(0, this.root);
-	}
-
-	/**
-	 * Stop listening to the root and all the other
-	 * nodes in the underlying tree model.
-	 */
-	private void disengageModel() {
-		this.removeRoot();
-		this.disengageNode(this.root);
-		this.root = null;
-		this.rootHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.rootListener);
-	}
-
-	/**
-	 * Remove the root and all of the nodes from the underlying tree.
-	 */
-	private void removeRoot() {
-		this.removeNode(0, this.root);
-	}
-
-	/**
-	 * The root has been swapped.
-	 * This method is a bit gnarly because the API for notifying listeners
-	 * that the root has changed is a bit inconsistent with that used for
-	 * non-root nodes.
-	 */
-	void rootChanged() {
-		TreeNodeValueModel<T> newRoot = this.rootHolder.getValue();
-		if (newRoot == null) {
-			throw new NullPointerException();	// the root cannot be null while we have listeners
-		}
-		// remove all the current root's children from the tree
-		// and remove the it from the internal tree
-		this.removeRoot(); 
-
-		// save the old root and swap in the new root
-		TreeNodeValueModel<T> oldRoot = this.root;
-		this.root = newRoot;
-
-		// we must be listening to both the old and new roots when we fire the event
-		// because their values can be affected by whether they have listeners
-		this.engageNode(this.root);
-		this.fireTreeRootReplaced(this.root);
-		// now we can stop listening to the old root
-		this.disengageNode(oldRoot);
-
-		// add the new root to the internal tree and
-		// add all its children to the tree also
-		this.addRoot();
-	}
-
-	/**
-	 * Either the "value" or the "state" of the specified node has changed,
-	 * forward notification to our listeners.
-	 */
-	void nodeChanged(TreeNodeValueModel<T> node) {
-		TreeNodeValueModel<T> parent = node.parent();
-		if (parent == null) {
-			this.fireTreeRootChanged(node);
-		} else {
-			this.fireTreeNodeChanged(parent.path(), parent.indexOfChild(node), node);
-		}
-	}
-
-	/**
-	 * Listen to the nodes, notify our listeners that the nodes were added,
-	 * and then add the nodes to our internal tree.
-	 * We must listen to the nodes before notifying anybody, because
-	 * adding a listener can change the value of a node.
-	 */
-	void addChildren(TreeNodeValueModel<T>[] path, int[] childIndices, TreeNodeValueModel<T>[] children) {
-		int len = childIndices.length;
-		for (int i = 0; i < len; i++) {
-			this.engageNode(children[i]);
-		}
-		this.fireTreeNodesInserted(path, childIndices, children);
-		for (int i = 0; i < len; i++) {
-			this.addNode(childIndices[i], children[i]);
-		}
-	}
-
-	/**
-	 * Listen to the node and its children model.
-	 */
-	private void engageNode(TreeNodeValueModel<T> node) {
-		node.addStateChangeListener(this.nodeStateListener);
-		node.addPropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener);
-		node.childrenModel().addListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener);
-	}
-
-	/**
-	 * Add the node to our internal tree;
-	 * then recurse down through the node's children,
-	 * adding them to the internal tree also.
-	 */
-	private void addNode(int index, TreeNodeValueModel<T> node) {
-		this.addNodeToInternalTree(node.parent(), index, node, node.childrenModel());
-		new NodeChangePolicy(node).addChildren();
-	}
-
-	/**
-	 * Add the specified node to our internal tree.
-	 */
-	private void addNodeToInternalTree(TreeNodeValueModel<T> parent, int index, TreeNodeValueModel<T> node, ListValueModel<TreeNodeValueModel<T>> childrenModel) {
-		List<TreeNodeValueModel<T>> siblings = this.childrenLists.get(parent);
-		if (siblings == null) {
-			siblings = new ArrayList<TreeNodeValueModel<T>>();
-			this.childrenLists.put(parent, siblings);
-		}
-		siblings.add(index, node);
-
-		this.parents.put(childrenModel, node);
-	}
-
-	/**
-	 * Remove nodes from our internal tree, notify our listeners that the
-	 * nodes were removed, then stop listening to the nodes.
-	 * We must listen to the nodes until after notifying anybody, because
-	 * removing a listener can change the value of a node.
-	 */
-	void removeChildren(TreeNodeValueModel<T>[] path, int[] childIndices, TreeNodeValueModel<T>[] children) {
-		int len = childIndices.length;
-		for (int i = 0; i < len; i++) {
-			// the indices slide down a notch each time we remove a child
-			this.removeNode(childIndices[i] - i, children[i]);
-		}
-		this.fireTreeNodesRemoved(path, childIndices, children);
-		for (int i = 0; i < len; i++) {
-			this.disengageNode(children[i]);
-		}
-	}
-
-	/**
-	 * First, recurse down through the node's children,
-	 * removing them from our internal tree;
-	 * then remove the node itself from our internal tree.
-	 */
-	private void removeNode(int index, TreeNodeValueModel<T> node) {
-		new NodeChangePolicy(node).removeChildren();
-		this.removeNodeFromInternalTree(node.parent(), index, node.childrenModel());
-	}
-
-	/**
-	 * Remove the specified node from our internal tree.
-	 */
-	private void removeNodeFromInternalTree(TreeNodeValueModel<T> parent, int index, ListValueModel<TreeNodeValueModel<T>> childrenModel) {
-		this.parents.remove(childrenModel);
-
-		List<TreeNodeValueModel<T>> siblings = this.childrenLists.get(parent);
-		siblings.remove(index);
-		if (siblings.isEmpty()) {
-			this.childrenLists.remove(parent);
-		}
-	}
-
-	/**
-	 * Stop listening to the node and its children model.
-	 */
-	private void disengageNode(TreeNodeValueModel<T> node) {
-		node.childrenModel().removeListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener);
-		node.removePropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener);
-		node.removeStateChangeListener(this.nodeStateListener);
-	}
-
-	void moveChildren(TreeNodeValueModel<T> parent, int targetIndex, int sourceIndex, int length) {
-		List<TreeNodeValueModel<T>> childrenList = this.childrenLists.get(parent);
-		ArrayList<TreeNodeValueModel<T>> temp = new ArrayList<TreeNodeValueModel<T>>(length);
-		for (int i = 0; i < length; i++) {
-			temp.add(childrenList.remove(sourceIndex));
-		}
-		childrenList.addAll(targetIndex, temp);
-
-		this.fireTreeStructureChanged(parent.path());
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.root);
-	}
-
-
-	// ********** inner classes **********
-
-	/**
-	 * Coalesce some of the common change policy behavior.
-	 */
-	abstract class ChangePolicy {
-
-		ChangePolicy() {
-			super();
-		}
-
-		/**
-		 * Add the current set of children.
-		 */
-		void addChildren() {
-			TreeModelAdapter.this.addChildren(this.parent().path(), this.childIndices(), this.childArray());
-		}
-
-		/**
-		 * Remove the current set of children.
-		 */
-		void removeChildren() {
-			TreeModelAdapter.this.removeChildren(this.parent().path(), this.childIndices(), this.childArray());
-		}
-
-		/**
-		 * Return an array of the indices of the current set of children,
-		 * which should be contiguous.
-		 */
-		int[] childIndices() {
-			return this.buildIndices(this.childrenStartIndex(), this.childrenSize());
-		}
-
-		/**
-		 * Return an array of the current set of children.
-		 */
-		TreeNodeValueModel<T>[] childArray() {
-			return this.buildArray(this.getChildren(), this.childrenSize());
-		}
-
-		/**
-		 * Build an array to hold the elements in the specified iterator.
-		 * If they are different sizes, something is screwed up...
-		 */
-		TreeNodeValueModel<T>[] buildArray(Iterable<TreeNodeValueModel<T>> elements, int size) {
-			@SuppressWarnings("unchecked")
-			TreeNodeValueModel<T>[] array = new TreeNodeValueModel[size];
-			int i = 0;
-			for (TreeNodeValueModel<T> element : elements) {
-				array[i++] = element;
-			}
-			return array;
-		}
-
-		/**
-		 * Return a set of indices, starting at zero and
-		 * continuing for the specified size.
-		 */
-		int[] buildIndices(int size) {
-			return buildIndices(0, size);
-		}
-
-		/**
-		 * Return a set of indices, starting at the specified index and
-		 * continuing for the specified size.
-		 */
-		int[] buildIndices(int start, int size) {
-			int[] indices = new int[size];
-			int index = start;
-			for (int i = 0; i < size; i++) {
-				indices[i] = index++;
-			}
-			return indices;
-		}
-
-		/**
-		 * Return the parent of the current set of children.
-		 */
-		abstract TreeNodeValueModel<T> parent();
-
-		/**
-		 * Return the starting index for the current set of children.
-		 */
-		abstract int childrenStartIndex();
-
-		/**
-		 * Return the size of the current set of children.
-		 */
-		abstract int childrenSize();
-
-		/**
-		 * Return the current set of children.
-		 */
-		abstract Iterable<TreeNodeValueModel<T>> getChildren();
-
-	}
-
-
-	/**
-	 * Wraps a ListEvent for adding, removing, replacing,
-	 * and changing children.
-	 */
-	abstract class EventChangePolicy extends ChangePolicy {
-		final ListEvent event;
-
-		EventChangePolicy(ListEvent event) {
-			super();
-			this.event = event;
-		}
-
-		/**
-		 * Map the ListChangeEvent's source to the corresponding parent.
-		 */
-		@Override
-		TreeNodeValueModel<T> parent() {
-			return TreeModelAdapter.this.parents.get(this.event.getSource());
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListAddEvent for adding children.
-	 */
-	class AddEventChangePolicy extends EventChangePolicy {
-
-		AddEventChangePolicy(ListAddEvent event) {
-			super(event);
-		}
-
-		private ListAddEvent getEvent() {
-			return (ListAddEvent) this.event;
-		}
-
-		/**
-		 * The ListAddEvent's item index is the children start index.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return this.getEvent().getIndex();
-		}
-
-		/**
-		 * The ListAddEvent's size is the children size.
-		 */
-		@Override
-		int childrenSize() {
-			return this.getEvent().getItemsSize();
-		}
-
-		/**
-		 * The ListAddEvent's items are the children.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			return (Iterable<TreeNodeValueModel<T>>) this.getEvent().getItems();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListRemoveEvent for adding children.
-	 */
-	class RemoveEventChangePolicy extends EventChangePolicy {
-
-		RemoveEventChangePolicy(ListRemoveEvent event) {
-			super(event);
-		}
-
-		private ListRemoveEvent getEvent() {
-			return (ListRemoveEvent) this.event;
-		}
-
-		/**
-		 * The ListRemoveEvent's item index is the children start index.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return this.getEvent().getIndex();
-		}
-
-		/**
-		 * The ListRemoveEvent's size is the children size.
-		 */
-		@Override
-		int childrenSize() {
-			return this.getEvent().getItemsSize();
-		}
-
-		/**
-		 * The ListRemoveEvent's items are the children.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			return (Iterable<TreeNodeValueModel<T>>) this.getEvent().getItems();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListReplaceEvent for replacing children.
-	 */
-	class ReplaceEventChangePolicy extends EventChangePolicy {
-
-		ReplaceEventChangePolicy(ListReplaceEvent event) {
-			super(event);
-		}
-
-		private ListReplaceEvent getEvent() {
-			return (ListReplaceEvent) this.event;
-		}
-
-		/**
-		 * The ListReplaceEvent's item index is the children start index.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return this.getEvent().getIndex();
-		}
-
-		/**
-		 * The ListReplaceEvent's size is the children size.
-		 */
-		@Override
-		int childrenSize() {
-			return this.getEvent().getItemsSize();
-		}
-
-		/**
-		 * The ListReplaceEvent's items are the children.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			return (Iterable<TreeNodeValueModel<T>>) this.getEvent().getNewItems();
-		}
-
-		/**
-		 * Remove the old nodes and add the new ones.
-		 */
-		void replaceChildren() {
-			TreeNodeValueModel<T>[] parentPath = this.parent().path();
-			int[] childIndices = this.childIndices();
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, this.getOldChildren());
-			TreeModelAdapter.this.addChildren(parentPath, childIndices, this.childArray());
-		}
-
-		TreeNodeValueModel<T>[] getOldChildren() {
-			return this.buildArray(this.getOldItems(), this.getEvent().getItemsSize());
-		}
-
-		// minimized scope of suppressed warnings
-		@SuppressWarnings("unchecked")
-		protected Iterable<TreeNodeValueModel<T>> getOldItems() {
-			return (Iterable<TreeNodeValueModel<T>>) this.getEvent().getOldItems();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListMoveEvent for moving children.
-	 */
-	class MoveEventChangePolicy extends EventChangePolicy {
-
-		MoveEventChangePolicy(ListMoveEvent event) {
-			super(event);
-		}
-
-		private ListMoveEvent getEvent() {
-			return (ListMoveEvent) this.event;
-		}
-
-		void moveChildren() {
-			TreeModelAdapter.this.moveChildren(this.parent(), this.getEvent().getTargetIndex(), this.getEvent().getSourceIndex(), this.getEvent().getLength());
-		}
-
-		@Override
-		int childrenStartIndex() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		int childrenSize() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListClearEvent for clearing children.
-	 */
-	class ClearEventChangePolicy extends EventChangePolicy {
-
-		ClearEventChangePolicy(ListClearEvent event) {
-			super(event);
-		}
-
-		/**
-		 * Clear all the nodes.
-		 */
-		void clearChildren() {
-			TreeNodeValueModel<T> parent = this.parent();
-			TreeNodeValueModel<T>[] parentPath = parent.path();
-			List<TreeNodeValueModel<T>> childrenList = TreeModelAdapter.this.childrenLists.get(parent);
-			int[] childIndices = this.buildIndices(childrenList.size());
-			TreeNodeValueModel<T>[] childArray = this.buildArray(childrenList, childrenList.size());
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray);
-		}
-
-		@Override
-		int childrenStartIndex() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		int childrenSize() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a ListChangeEvent for clearing children.
-	 */
-	class ChangeEventChangePolicy extends EventChangePolicy {
-
-		ChangeEventChangePolicy(ListChangeEvent event) {
-			super(event);
-		}
-
-		/**
-		 * Remove all the old nodes and add all the new nodes.
-		 */
-		void rebuildChildren() {
-			TreeNodeValueModel<T> parent = this.parent();
-			TreeNodeValueModel<T>[] parentPath = parent.path();
-			List<TreeNodeValueModel<T>> childrenList = TreeModelAdapter.this.childrenLists.get(parent);
-			int[] childIndices = this.buildIndices(childrenList.size());
-			TreeNodeValueModel<T>[] childArray = this.buildArray(childrenList, childrenList.size());
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray);
-
-			childIndices = this.buildIndices(parent.childrenModel().size());
-			childArray = this.buildArray(parent.childrenModel(), parent.childrenSize());
-			TreeModelAdapter.this.addChildren(parentPath, childIndices, childArray);
-		}
-
-		@Override
-		int childrenStartIndex() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		int childrenSize() {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
-
-	/**
-	 * Wraps a TreeNodeValueModel for adding and removing its children.
-	 */
-	class NodeChangePolicy extends ChangePolicy {
-		private final TreeNodeValueModel<T> node;
-
-		NodeChangePolicy(TreeNodeValueModel<T> node) {
-			super();
-			this.node = node;
-		}
-
-		/**
-		 * The node itself is the parent.
-		 */
-		@Override
-		TreeNodeValueModel<T> parent() {
-			return this.node;
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children start index is always zero.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return 0;
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children size is always equal to the size
-		 * of the children model.
-		 */
-		@Override
-		int childrenSize() {
-			return this.node.childrenModel().size();
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children are all the objects held by
-		 * the children model.
-		 */
-		@Override
-		Iterable<TreeNodeValueModel<T>> getChildren() {
-			return this.node.childrenModel();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java
deleted file mode 100644
index 3f32a57..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java
+++ /dev/null
@@ -1,941 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import java.util.Vector;
-
-import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.AspectChangeSupport;
-import org.eclipse.jpt.common.utility.internal.model.ChangeSupport;
-
-/**
- * Base class for Node classes.
- * Provides support for the following:
- *     initialization
- *     enforced object identity wrt #equals()/#hashCode()
- *     containment hierarchy (parent/child)
- *     user comment
- *     dirty flag
- *     problems
- *     sorting
- * 
- * Typically, subclasses should consider implementing the following methods:
- *     the appropriate constructors
- *         (with the appropriately-restrictive type declaration for parent)
- *     #initialize()
- *     #initialize(Node parentNode)
- *     #checkParent(Node parentNode)
- *     #addChildrenTo(List list)
- *     #nodeRemoved(Node)
- *     #validator()
- *     #transientAspectNames() or
- *         #addTransientAspectNamesTo(Set transientAspectNames)
- *     #addProblemsTo(List currentProblems)
- *     #nonValidatedAspectNames()
- *         #addNonValidatedAspectNamesTo(Set nonValidatedAspectNames)
- *     #displayString()
- *     #toString(StringBuilder sb)
- */
-public abstract class AbstractNode 
-	extends AbstractModel
-	implements Node
-{
-
-	/** Containment hierarchy. */
-	private Node parent;  // pseudo-final
-
-	/** Track whether the node has changed. */
-	private volatile boolean dirty;
-	private volatile boolean dirtyBranch;
-
-	/**
-	 * The node's problems, as calculated during validation.
-	 * This list should only be modified via a ProblemSynchronizer,
-	 * allowing for asynchronous modification from another thread.
-	 */
-	private Vector<Problem> problems;		// pseudo-final
-		private static final Object[] EMPTY_PROBLEM_MESSAGE_ARGUMENTS = new Object[0];
-
-	/**
-	 * Cache the node's "branch" problems, as calculated during validation.
-	 * This list should only be modified via a ProblemSynchronizer,
-	 * allowing for asynchronous modification from another thread.
-	 * This must be recalculated every time this node or one of its
-	 * descendants changes it problems.
-	 */
-	private Vector<Problem> branchProblems;		// pseudo-final
-
-	/** User comment. */
-	private volatile String comment;
-
-
-	// ********** static fields **********
-
-	/**
-	 * Sets of transient aspect names, keyed by class.
-	 * This is built up lazily, as the objects are modified.
-	 */
-	private static final HashMap<Class<? extends AbstractNode>, HashSet<String>> transientAspectNameSets = new HashMap<Class<? extends AbstractNode>, HashSet<String>>();
-
-	/**
-	 * Sets of non-validated aspect names, keyed by class.
-	 * This is built up lazily, as the objects are modified.
-	 */
-	private static final HashMap<Class<? extends AbstractNode>, HashSet<String>> nonValidatedAspectNameSets = new HashMap<Class<? extends AbstractNode>, HashSet<String>>();
-
-
-	// ********** constructors **********
-
-	/**
-	 * Most objects must have a parent.
-	 * Use this constructor to create a new node.
-	 * @see #initialize(Node)
-	 */
-	protected AbstractNode(Node parent) {
-		super();
-		this.initialize();
-		this.initialize(parent);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * Initialize a newly-created instance.
-	 * @see #initialize(Node)
-	 */
-	protected void initialize() {
-		this.comment = ""; //$NON-NLS-1$
-
-		// a new object is dirty, by definition
-		this.dirty = true;
-		this.dirtyBranch = true;
-
-		this.problems = new Vector<Problem>();
-		this.branchProblems = new Vector<Problem>();
-
-	// when you override this method, don't forget to include:
-	//	super.initialize();
-	}
-
-	/**
-	 * Initialize a newly-created instance.
-	 * @see #initialize()
-	 */
-	protected void initialize(Node parentNode) {
-		this.checkParent(parentNode);
-		this.parent = parentNode;
-	// when you override this method, don't forget to include:
-	//	super.initialize(parentNode);
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new AspectChangeSupport(this, this.buildChangeSupportListener());
-	}
-
-	protected AspectChangeSupport.Listener buildChangeSupportListener() {
-		return new AspectChangeSupport.Listener() {
-			public void aspectChanged(String aspectName) {
-				AbstractNode.this.aspectChanged(aspectName);
-			}
-		};
-	}
-
-
-	// ********** equality **********
-
-	/**
-	 * Enforce object identity - do not allow objects to be equal unless
-	 * they are the same object.
-	 * Do NOT override this method - we rely on object identity extensively.
-	 */
-	@Override
-	public final boolean equals(Object o) {
-		return this == o;
-	}
-
-	/**
-	 * Enforce object identity - do not allow objects to be equal unless
-	 * they are the same object.
-	 * Do NOT override this method - we rely on object identity extensively.
-	 */
-	@Override
-	public final int hashCode() {
-		return super.hashCode();
-	}
-
-
-	// ********** containment hierarchy (parent/children) **********
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's parent in the containment hierarchy.
-	 * Most nodes must have a parent.
-	 * @see #children()
-	 */
-	public Node getParent() {
-		return this.parent;
-	}
-
-	/**
-	 * Throw an IllegalArgumentException if the parent is not valid
-	 * for the node.
-	 * By default require a non-null parent. Override if other restrictions exist
-	 * or the parent should be null.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	protected void checkParent(Node parentNode) {
-		if (parentNode == null) {
-			throw new IllegalArgumentException("The parent node cannot be null"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's children, which are also nodes.
-	 * Do NOT override this method.
-	 * Override #addChildrenTo(List).
-	 * @see #getParent()
-	 * @see #addChildrenTo(java.util.List)
-	 */
-	public final Iterator<Node> children() {
-		List<Node> children = new ArrayList<Node>();
-		this.addChildrenTo(children);
-		return children.iterator();
-	}
-
-	/**
-	 * Subclasses should override this method to add their children
-	 * to the specified list.
-	 * @see #children()
-	 */
-	protected void addChildrenTo(@SuppressWarnings("unused") List<Node> list) {
-		// this class has no children, subclasses will...
-	// when you override this method, don't forget to include:
-	//	super.addChildrenTo(list);
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the containment hierarchy's root node.
-	 * Most nodes must have a root.
-	 * @see #getParent()
-	 * NB: Assume the root has no parent.
-	 */
-	public Node root() {
-		Node p = this.parent;
-		return (p == null) ? this : p.root();
-	}
-
-	/**
-	 * Return whether the node is a descendant of the specified node.
-	 * By definition, a node is a descendant of itself.
-	 */
-	public boolean isDescendantOf(Node node) {
-		return (this == node) || this.parentIsDescendantOf(node);
-	}
-
-	protected boolean parentIsDescendantOf(Node node) {
-		return (this.parent != null) && this.parent.isDescendantOf(node);
-	}
-
-	/**
-	 * Return a collection holding all the node's "references", and all
-	 * the node's descendants' "references". "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 */
-	public Iterator<Node.Reference> branchReferences() {
-		Collection<Node.Reference> branchReferences = new ArrayList<Node.Reference>(1000);		// start big
-		this.addBranchReferencesTo(branchReferences);
-		return branchReferences.iterator();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's "references", and all the node's descendants'
-	 * "references", to the specified collection. "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 * This method is of particular concern to Handles, since most
-	 * (hopefully all) "references" are held by Handles.
-	 * @see Reference
-	 * @see #children()
-	 */
-	public void addBranchReferencesTo(Collection<Node.Reference> branchReferences) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addBranchReferencesTo(branchReferences);
-		}
-	}
-
-	/**
-	 * Return all the nodes in the object's branch of the tree,
-	 * including the node itself. The nodes will probably returned
-	 * in "depth-first" order.
-	 * Only really used for testing and debugging.
-	 */
-	public Iterator<Node> allNodes() {
-		Collection<Node> nodes = new ArrayList<Node>(1000);		// start big
-		this.addAllNodesTo(nodes);
-		return nodes.iterator();
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Add all the nodes in the object's branch of the tree,
-	 * including the node itself, to the specified collection.
-	 * Only really used for testing and debugging.
-	 */
-	public void addAllNodesTo(Collection<Node> nodes) {
-		nodes.add(this);
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addAllNodesTo(nodes);
-		}
-	}
-
-
-	// ********** model synchronization support **********
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * removed from the tree. The node receiving this notification
-	 * should perform any necessary updates to remain in synch
-	 * with the tree (e.g. clearing out or replacing any references
-	 * to the removed node or any of the removed node's descendants).
-	 * @see #isDescendantOf(Node)
-	 */
-	public void nodeRemoved(Node node) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.nodeRemoved(node);
-		}
-	// when you override this method, don't forget to include:
-	//	super.nodeRemoved(node);
-	}
-
-	/**
-	 * convenience method
-	 * return whether node1 is a descendant of node2;
-	 * node1 can be null
-	 */
-	protected boolean nodeIsDescendantOf(Node node1, Node node2) {
-		return (node1 != null) && node1.isDescendantOf(node2);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * renamed. The node receiving this notification should mark its
-	 * branch dirty if necessary (i.e. it references the renamed node
-	 * or one of its descendants). This method is of particular concern
-	 * to Handles.
-	 * @see #isDescendantOf(Node)
-	 */
-	public void nodeRenamed(Node node) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.nodeRenamed(node);
-		}
-	// when you override this method, don't forget to include:
-	//	super.nodeRenamed(node);
-	}
-	
-	
-	// ********** user comment **********
-
-	/**
-	 * Return the object's user comment.
-	 */
-	public final String comment() {
-		return this.comment;
-	}
-
-	/**
-	 * Set the object's user comment.
-	 */
-	public final void setComment(String comment) {
-		Object old = this.comment;
-		this.comment = comment;
-		this.firePropertyChanged(COMMENT_PROPERTY, old, comment);
-	}
-
-
-	// ********** change support **********
-
-	/**
-	 * An aspect of the node has changed:
-	 * 	- if it is a persistent aspect, mark the object dirty
-	 * 	- if it is a significant aspect, validate the object
-	 */
-	protected void aspectChanged(String aspectName) {
-		if (this.aspectIsPersistent(aspectName)) {
-			// System.out.println(Thread.currentThread() + " dirty change: " + this + ": " + aspectName);
-			this.markDirty();
-		}
-		if (this.aspectChangeRequiresValidation(aspectName)) {
-			// System.out.println(Thread.currentThread() + " validation change: " + this + ": " + aspectName);
-			this.validate();
-		}
-	}
-
-	protected void validate() {
-		this.getValidator().validate();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Return a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	public Node.Validator getValidator() {
-		if (this.parent == null) {
-			throw new IllegalStateException("This node should not be firing change events during its construction."); //$NON-NLS-1$
-		}
-		return this.parent.getValidator();
-	}
-
-	/**
-	 * Set a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	public void setValidator(Node.Validator validator) {
-		if (this.parent == null) {
-			throw new IllegalStateException("This root node should implement #setValidator(Node.Validator)."); //$NON-NLS-1$
-		}
-		throw new UnsupportedOperationException("Only root nodes implement #setValidator(Node.Validator)."); //$NON-NLS-1$
-	}
-
-
-	// ********** dirty flag support **********
-
-	/**
-	 * Return whether any persistent aspects of the object
-	 * have changed since the object was last read or saved.
-	 * This does NOT include changes to the object's descendants.
-	 */
-	public final boolean isDirty() {
-		return this.dirty;
-	}
-
-	/**
-	 * Return whether any persistent aspects of the object,
-	 * or any of its descendants, have changed since the object and
-	 * its descendants were last read or saved.
-	 */
-	public final boolean isDirtyBranch() {
-		return this.dirtyBranch;
-	}
-
-	/**
-	 * Return whether the object is unmodified
-	 * since it was last read or saved.
-	 * This does NOT include changes to the object's descendants.
-	 */
-	public final boolean isClean() {
-		return ! this.dirty;
-	}
-
-	/**
-	 * Return whether the object and all of its descendants
-	 * are unmodified since the object and
-	 * its descendants were last read or saved.
-	 */
-	public final boolean isCleanBranch() {
-		return ! this.dirtyBranch;
-	}
-
-	/**
-	 * Set the dirty branch flag setting. This is set to true
-	 * when either the object or one of its descendants becomes dirty.
-	 */
-	private void setIsDirtyBranch(boolean dirtyBranch) {
-		boolean old = this.dirtyBranch;
-		this.dirtyBranch = dirtyBranch;
-		this.firePropertyChanged(DIRTY_BRANCH_PROPERTY, old, dirtyBranch);
-	}
-
-	/**
-	 * Mark the object as dirty and as a dirty branch.
-	 * An object is marked dirty when either a "persistent" attribute
-	 * has changed or its save location has changed.
-	 */
-	private void markDirty() {
-		this.dirty = true;
-		this.markBranchDirty();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and its parent as dirty branches.
-	 * This message is propagated up the containment
-	 * tree when a particular node becomes dirty.
-	 */
-	public void markBranchDirty() {
-		// short-circuit any unnecessary propagation
-		if (this.dirtyBranch) {
-			// if this is already a dirty branch, the parent must be also
-			return;
-		}
-
-		this.setIsDirtyBranch(true);
-		this.markParentBranchDirty();
-	}
-
-	protected void markParentBranchDirty() {
-		if (this.parent != null) {
-			this.parent.markBranchDirty();
-		}
-	}
-
-	/**
-	 * Mark the object and all its descendants as dirty.
-	 * This is used when the save location of some
-	 * top-level object is changed and the entire
-	 * containment tree must be marked dirty so it
-	 * will be written out.
-	 */
-	public final void markEntireBranchDirty() {
-		this.markDirty();
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.markEntireBranchDirty();
-		}
-	}
-
-	/**
-	 * Mark the object and all its descendants as clean.
-	 * Then notify the object's parent that it (the parent)
-	 * might now be a clean branch also.
-	 * Typically used when the object has just been
-	 * read in or written out.
-	 */
-	public final void markEntireBranchClean() {
-		this.cascadeMarkEntireBranchClean();
-		this.markParentBranchCleanIfPossible();
-	}
-
-	protected void markParentBranchCleanIfPossible() {
-		if (this.parent != null) {
-			this.parent.markBranchCleanIfPossible();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and all its descendants as clean.
-	 * Typically used when the node has just been
-	 * read in or written out.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 * Not the best of method names.... :-(
-	 */
-	public final void cascadeMarkEntireBranchClean() {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.cascadeMarkEntireBranchClean();
-		}
-		this.dirty = false;
-		this.setIsDirtyBranch(false);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's branch has been marked clean. If the node
-	 * itself is clean and if all of its children are also clean, the
-	 * node's branch can be marked clean. Then, if the node's
-	 * branch is clean, the node will notify its parent that it might
-	 * be clean also. This message is propagated up the containment
-	 * tree when a particular node becomes clean.
-	 */
-	public final void markBranchCleanIfPossible() {
-		// short-circuit any unnecessary propagation
-		if (this.dirty) {
-			// if the object is "locally" dirty, it is still a dirty branch
-			return;
-		}
-
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			if (child.isDirtyBranch()) {
-				return;
-			}
-		}
-
-		this.setIsDirtyBranch(false);
-		this.markParentBranchCleanIfPossible();
-	}
-
-	private boolean aspectIsPersistent(String aspectName) {
-		return ! this.aspectIsTransient(aspectName);
-	}
-
-	private boolean aspectIsTransient(String aspectName) {
-		return this.transientAspectNames().contains(aspectName);
-	}
-
-	/**
-	 * Return a set of the object's transient aspect names.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object to be marked dirty.
-	 * If you need instance-based calculation of your transient aspects,
-	 * override this method. If class-based calculation is sufficient,
-	 * override #addTransientAspectNamesTo(Set).
-	 */
-	protected final Set<String> transientAspectNames() {
-		synchronized (transientAspectNameSets) {
-			HashSet<String> transientAspectNames = transientAspectNameSets.get(this.getClass());
-			if (transientAspectNames == null) {
-				transientAspectNames = new HashSet<String>();
-				this.addTransientAspectNamesTo(transientAspectNames);
-				transientAspectNameSets.put(this.getClass(), transientAspectNames);
-			}
-			return transientAspectNames;
-		}
-	}
-
-	/**
-	 * Add the object's transient aspect names to the specified set.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object to be marked dirty.
-	 * If class-based calculation of your transient aspects is sufficient,
-	 * override this method. If you need instance-based calculation,
-	 * override #transientAspectNames().
-	 */
-	protected void addTransientAspectNamesTo(Set<String> transientAspectNames) {
-		transientAspectNames.add(DIRTY_BRANCH_PROPERTY);
-		transientAspectNames.add(BRANCH_PROBLEMS_LIST);
-		transientAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY);
-	// when you override this method, don't forget to include:
-	//	super.addTransientAspectNamesTo(transientAspectNames);
-	}
-
-	/**
-	 * Return the dirty nodes in the object's branch of the tree,
-	 * including the node itself (if appropriate).
-	 * Only really used for testing and debugging.
-	 */
-	public final Iterator<Node> allDirtyNodes() {
-		return new FilteringIterator<Node>(this.allNodes()) {
-			@Override
-			protected boolean accept(Node node) {
-				return (node instanceof AbstractNode) && ((AbstractNode) node).isDirty();
-			}
-		};
-	}
-
-
-	// ********** problems **********
-
-	/**
-	 * Return the node's problems.
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #branchProblems()
-	 */
-	public final Iterator<Problem> problems() {
-		return new CloneIterator<Problem>(this.problems);	// removes are not allowed
-	}
-
-	/**
-	 * Return the size of the node's problems.
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #branchProblemsSize()
-	 */
-	public final int problemsSize() {
-		return this.problems.size();
-	}
-
-	/**
-	 * Return whether the node has problems
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #hasBranchProblems()
-	 */
-	public final boolean hasProblems() {
-		return ! this.problems.isEmpty();
-	}
-
-	/**
-	 * Return all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	public final ListIterator<Problem> branchProblems() {
-		return new CloneListIterator<Problem>(this.branchProblems);	// removes are not allowed
-	}
-
-	/**
-	 * Return the size of all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	public final int branchProblemsSize() {
-		return this.branchProblems.size();
-	}
-
-	/**
-	 * Return whether the node or any of its descendants have problems.
-	 */
-	public final boolean hasBranchProblems() {
-		return ! this.branchProblems.isEmpty();
-	}
-
-	public final boolean containsBranchProblem(Problem problem) {
-		return this.branchProblems.contains(problem);
-	}
-
-	protected final Problem buildProblem(String messageKey, int messageType, Object... messageArguments) {
-		return new DefaultProblem(this, messageKey, messageType, messageArguments);
-	}
-
-	protected final Problem buildProblem(String messageKey, int messageType) {
-		return this.buildProblem(messageKey, messageType, EMPTY_PROBLEM_MESSAGE_ARGUMENTS);
-	}
-
-	/**
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * If the node's "branch" problems have changed,
-	 * notify the node's parent.
-	 */
-	public void validateBranch() {
-		if (this.validateBranchInternal()) {
-			// if our "branch" problems have changed, then
-			// our parent must rebuild its "branch" problems also
-			this.rebuildParentBranchProblems();
-		}
-	}
-
-	protected void rebuildParentBranchProblems() {
-		if (this.parent != null) {
-			this.parent.rebuildBranchProblems();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	public boolean validateBranchInternal() {
-		// rebuild "branch" problems in children first
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			// ignore the return value because we are going to rebuild our "branch"
-			// problems no matter what, to see if they have changed
-			child.validateBranchInternal();
-		}
-
-		this.problems.clear();
-		this.addProblemsTo(this.problems);
-
-		return this.checkBranchProblems();
-	}
-
-	/**
-	 * Check for any problems and add them to the specified list.
-	 * This method should ONLY add problems for this particular node;
-	 * it should NOT add problems for any of this node's descendants
-	 * or ancestors. (Although there will be times when it is debatable
-	 * as to which node a problem "belongs" to....)
-	 * 
-	 * NB: This method should NOT modify ANY part of the node's state!
-	 * It is a READ-ONLY behavior. ONLY the list of current problems
-	 * passed in to the method should be modified.
-	 */
-	protected void addProblemsTo(@SuppressWarnings("unused") List<Problem> currentProblems) {
-		// The default is to do nothing.
-		// When you override this method, don't forget to include:
-	//	super.addProblemsTo(currentProblems);
-	}
-
-	/**
-	 * Rebuild the "branch" problems and return whether they have
-	 * changed.
-	 * NB: The entire collection of "branch" problems must be re-calculated
-	 * with EVERY "significant" change - we cannot keep it in synch via
-	 * change notifications because if a descendant with problems is
-	 * removed or replaced we will not receive notification that its
-	 * problems were removed from our "branch" problems.
-	 */
-	private boolean checkBranchProblems() {
-		Vector<Problem> oldBranchProblems = new Vector<Problem>(this.branchProblems);
-		int oldSize = this.branchProblems.size();
-
-		this.branchProblems.clear();
-		this.branchProblems.addAll(this.problems);
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addBranchProblemsTo(this.branchProblems);
-		}
-
-		// if the size has changed to or from zero, our virtual flag has changed
-		int newSize = this.branchProblems.size();
-		if ((oldSize == 0) && (newSize != 0)) {
-			this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, false, true);
-		} else if ((oldSize != 0) && (newSize == 0)) {
-			this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false);
-		}
-
-		if (oldBranchProblems.equals(this.branchProblems)) {
-			return false;		// our "branch" problems did not change
-		}
-		// our "branch" problems changed
-		this.fireListChanged(BRANCH_PROBLEMS_LIST, this.branchProblems);
-		return true;
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Add all the problems of the node and all
-	 * the problems of its descendants to the
-	 * specified collection.
-	 */
-	public final void addBranchProblemsTo(List<Problem> list) {
-		list.addAll(this.branchProblems);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's "branch" problems changed;
-	 * therefore the node's "branch" problems have changed also and
-	 * must be rebuilt.
-	 */
-	public final void rebuildBranchProblems() {
-		if ( ! this.checkBranchProblems()) {
-			throw new IllegalStateException("we should not get here unless our \"branch\" problems have changed"); //$NON-NLS-1$
-		}
-		this.rebuildParentBranchProblems();
-	}
-
-	/**
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * If the node's "branch" problems have changed,
-	 * notify the node's parent.
-	 */
-	public final void clearAllBranchProblems() {
-		if (this.clearAllBranchProblemsInternal()) {
-			// if our "branch" problems have changed, then
-			// our parent must rebuild its "branch" problems also
-			this.rebuildParentBranchProblems();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	public final boolean clearAllBranchProblemsInternal() {
-		if (this.branchProblems.isEmpty()) {
-			return false;
-		}
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			// ignore the return value because we are going to clear our "branch"
-			// problems no matter what
-			child.clearAllBranchProblemsInternal();
-		}
-		this.problems.clear();
-		this.branchProblems.clear();
-		this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false);
-		this.fireListChanged(BRANCH_PROBLEMS_LIST, this.branchProblems);
-		return true;
-	}
-
-	/**
-	 * Return whether a change to specified aspect requires a re-validation
-	 * of the node's tree.
-	 */
-	private boolean aspectChangeRequiresValidation(String aspectName) {
-		return ! this.aspectChangeDoesNotRequireValidation(aspectName);
-	}
-
-	private boolean aspectChangeDoesNotRequireValidation(String aspectName) {
-		return this.nonValidatedAspectNames().contains(aspectName);
-	}
-
-	/**
-	 * Return a set of the object's "non-validated" aspect names.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object (or its containing tree) to be validated, i.e. checked for problems.
-	 * If you need instance-based calculation of your "non-validated" aspects,
-	 * override this method. If class-based calculation is sufficient,
-	 * override #addNonValidatedAspectNamesTo(Set).
-	 */
-	protected final Set<String> nonValidatedAspectNames() {
-		synchronized (nonValidatedAspectNameSets) {
-			HashSet<String> nonValidatedAspectNames = nonValidatedAspectNameSets.get(this.getClass());
-			if (nonValidatedAspectNames == null) {
-				nonValidatedAspectNames = new HashSet<String>();
-				this.addNonValidatedAspectNamesTo(nonValidatedAspectNames);
-				nonValidatedAspectNameSets.put(this.getClass(), nonValidatedAspectNames);
-			}
-			return nonValidatedAspectNames;
-		}
-	}
-
-	/**
-	 * Add the object's "non-validated" aspect names to the specified set.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object (or its containing tree) to be validated, i.e. checked for problems.
-	 * If class-based calculation of your "non-validated" aspects is sufficient,
-	 * override this method. If you need instance-based calculation,
-	 * override #nonValidatedAspectNames().
-	 */
-	protected void addNonValidatedAspectNamesTo(Set<String> nonValidatedAspectNames) {
-		nonValidatedAspectNames.add(COMMENT_PROPERTY);
-		nonValidatedAspectNames.add(DIRTY_BRANCH_PROPERTY);
-		nonValidatedAspectNames.add(BRANCH_PROBLEMS_LIST);
-		nonValidatedAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY);
-	// when you override this method, don't forget to include:
-	//	super.addNonValidatedAspectNamesTo(nonValidatedAspectNames);
-	}
-
-
-	// ********** display methods **********
-
-	/**
-	 * Return a developer-friendly String. If you want something useful for
-	 * displaying in a user interface, use #displayString().
-	 * If you want to give more information in your #toString(),
-	 * override #toString(StringBuilder sb). 
-	 * Whatever you add to that string buffer will show up between the parentheses.
-	 * @see AbstractModel#toString(StringBuilder sb)
-	 * @see #displayString()
-	 */
-	@Override
-	public final String toString() {
-		return super.toString();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java
deleted file mode 100644
index 88a06f1..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean;
-
-/**
- * This implementation of the PluggableValidator.Delegate interface
- * simply sets a shared "validate" flag to true. This should trigger a
- * separate "validation" thread to begin validating the appropriate
- * branch of nodes.
- */
-public class AsynchronousValidator
-	implements PluggableValidator.Delegate
-{
-	private SynchronizedBoolean validateFlag;
-
-	/**
-	 * Construct a validator delegate with the specified shared
-	 * "validate" flag. This flag should be shared with
-	 * another thread that will perform the actual validation.
-	 */
-	public AsynchronousValidator(SynchronizedBoolean validateFlag) {
-		super();
-		this.validateFlag = validateFlag;
-	}
-
-	/**
-	 * Set the shared "validate" flag to true, triggering
-	 * an asynchronous validation of the appropriate
-	 * branch of nodes.
-	 */
-	public void validate() {
-		this.validateFlag.setTrue();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.validateFlag);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java
deleted file mode 100644
index 6ba2f3a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import java.util.Arrays;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * This class is a straightforward implementation of the Problem interface.
- */
-public class DefaultProblem
-	implements Problem
-{
-	private final Node source;
-	private final String messageKey;
-	private final int messageType;
-	private final Object[] messageArguments;
-
-
-	DefaultProblem(Node source, String messageKey, int messageType, Object[] messageArguments) {
-		super();
-		this.source = source;
-		this.messageKey = messageKey;
-		this.messageType = messageType;
-		this.messageArguments = messageArguments;
-	}
-
-
-	// ********** Problem implementation **********
-
-	public Node source() {
-		return this.source;
-	}
-
-	public String messageKey() {
-		return this.messageKey;
-	}
-
-	public int messageType() {
-		return this.messageType;
-	}
-
-	public Object[] messageArguments() {
-		return this.messageArguments;
-	}
-
-
-	// ********** Object overrides **********
-
-	/**
-	 * We implement #equals(Object) because problems are repeatedly
-	 * re-calculated and the resulting problems merged with the existing
-	 * set of problems; and we want to keep the original problems and
-	 * ignore any freshly-generated duplicates.
-	 * Also, problems are not saved to disk....
-	 */
-	@Override
-	public boolean equals(Object o) {
-		if ( ! (o instanceof Problem)) {
-			return false;
-		}
-		Problem other = (Problem) o;
-		return this.source == other.source()
-				&& this.messageKey.equals(other.messageKey())
-				&& Arrays.equals(this.messageArguments, other.messageArguments());
-	}
-
-	@Override
-	public int hashCode() {
-		return this.source.hashCode() ^ this.messageKey.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.messageKey);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java
deleted file mode 100644
index 2eab200..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * This interface defines the methods that must be implemented
- * by any class whose instances are to be part of a containment hierarchy
- * that supports a "dirty" state and validation "problems".
- * 
- * Note: Methods marked "INTRA-TREE API" are typically only used by
- * the nodes themselves, as opposed to clients of the nodes. These
- * methods are called by a node on either its parent or its children.
- */
-public interface Node extends Model {
-
-
-	// ********** containment hierarchy (parent/children) **********
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's parent in the containment hierarchy.
-	 * Most nodes must have a parent. The parent is immutable.
-	 * @see #children()
-	 */
-	Node getParent();
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's children, which are also nodes.
-	 * @see #getParent()
-	 */
-	Iterator<Node> children();
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the containment hierarchy's root node.
-	 * Most nodes must have a root.
-	 * @see #getParent()
-	 */
-	Node root();
-
-	/**
-	 * Return whether the node is a descendant of the specified node.
-	 * By definition, a node is a descendant of itself.
-	 */
-	boolean isDescendantOf(Node node);
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's "references", and all the node's descendants'
-	 * "references", to the specified collection. "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 * This method is of particular concern to Handles, since most
-	 * (hopefully all) "references" are held by Handles.
-	 * @see Reference
-	 * @see #children()
-	 */
-	void addBranchReferencesTo(Collection<Node.Reference> branchReferences);
-
-	/**
-	 * INTRA-TREE API?
-	 * Add all the nodes in the object's branch of the tree,
-	 * including the node itself, to the specified collection.
-	 * Only really used for testing and debugging.
-	 */
-	void addAllNodesTo(Collection<Node> nodes);
-
-
-	// ********** model synchronization support **********
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * removed from the tree. The node receiving this notification
-	 * should perform any necessary updates to remain in synch
-	 * with the tree (e.g. clearing out or replacing any references
-	 * to the removed node or any of the removed node's descendants).
-	 * @see #isDescendantOf(Node)
-	 */
-	void nodeRemoved(Node node);
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * renamed. The node receiving this notification should mark its
-	 * branch dirty if necessary (i.e. it references the renamed node
-	 * or one of its descendants). This method is of particular concern
-	 * to Handles.
-	 * @see #isDescendantOf(Node)
-	 */
-	void nodeRenamed(Node node);
-	
-
-	// ********** dirty flag support **********
-
-	/**
-	 * Return whether any persistent aspects of the node,
-	 * or any of its descendants, have changed since the node and
-	 * its descendants were last read or saved.
-	 */
-	boolean isDirtyBranch();
-		String DIRTY_BRANCH_PROPERTY = "dirtyBranch"; //$NON-NLS-1$
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and its parent as dirty branches.
-	 * This message is propagated up the containment
-	 * tree when a particular node becomes dirty.
-	 */
-	void markBranchDirty();
-
-	/**
-	 * Mark the node and all its descendants as dirty.
-	 * This is used when the save location of some
-	 * top-level node is changed and the entire
-	 * containment tree must be marked dirty so it
-	 * will be written out.
-	 */
-	void markEntireBranchDirty();
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's branch has been marked clean. If the node
-	 * itself is clean and if all of its children are also clean, the
-	 * node's branch can be marked clean. Then, if the node's
-	 * branch is clean, the node will notify its parent that it might
-	 * be clean also. This message is propagated up the containment
-	 * tree when a particular node becomes clean.
-	 */
-	void markBranchCleanIfPossible();
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and all its descendants as clean.
-	 * Typically used when the node has just been
-	 * read in or written out.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 * Not the best of method names.... :-(
-	 */
-	void cascadeMarkEntireBranchClean();
-
-
-	// ********** problems **********
-
-	/**
-	 * INTRA-TREE API
-	 * Return a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 */
-	Validator getValidator();
-
-	/**
-	 * Set a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 */
-	void setValidator(Validator validator);
-
-	/**
-	 * Validate the node and its descendants.
-	 * This is an explicit request invoked by a client; and it will
-	 * typically be followed by a call to one of the following methods:
-	 * 	#branchProblems()
-	 * 	#hasBranchProblems()
-	 * Whether the node maintains its problems on the fly
-	 * or waits until this method is called is determined by the
-	 * implementation.
-	 * @see Problem
-	 */
-	void validateBranch();
-
-	/**
-	 * INTRA-TREE API
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	boolean validateBranchInternal();
-
-	/**
-	 * Return all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	ListIterator<Problem> branchProblems();
-		String BRANCH_PROBLEMS_LIST = "branchProblems"; //$NON-NLS-1$
-
-	/**
-	 * Return the size of all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	int branchProblemsSize();
-
-	/**
-	 * Return whether the node or any of its descendants have problems.
-	 */
-	boolean hasBranchProblems();
-		String HAS_BRANCH_PROBLEMS_PROPERTY = "hasBranchProblems"; //$NON-NLS-1$
-
-	/**
-	 * Return whether the node contains the specified branch problem.
-	 */
-	boolean containsBranchProblem(Problem problem);
-
-	/**
-	 * INTRA-TREE API
-	 * Something changed, rebuild the node's collection of branch problems.
-	 */
-	void rebuildBranchProblems();
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's problems, and all the node's descendants'
-	 * problems, to the specified list.
-	 * A call to this method should be immediately preceded by a call to
-	 * #validateBranch() or all of the problems might not be
-	 * added to the list.
-	 * @see Problem
-	 */
-	void addBranchProblemsTo(List<Problem> branchProblems);
-
-	/**
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 */
-	void clearAllBranchProblems();
-
-	/**
-	 * INTRA-TREE API
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	boolean clearAllBranchProblemsInternal();
-
-
-	// ********** comment **********
-
-	/**
-	 * Return the user comment concerning the node.
-	 */
-	String comment();
-		String COMMENT_PROPERTY = "comment"; //$NON-NLS-1$
-
-	/**
-	 * Set the user comment concerning the node.
-	 */
-	void setComment(String comment);
-
-
-	// ********** displaying/sorting **********
-
-	/**
-	 * Return a string representation of the model, suitable for sorting.
-	 */
-	String displayString();
-
-
-	// ********** sub-interfaces **********
-
-	/**
-	 * Simple interface defining a "reference" between two nodes.
-	 * @see Node#addBranchReferencesTo(java.util.Collection)
-	 */
-	interface Reference {
-
-		/**
-		 * Return the "source" node of the reference, i.e. the node that
-		 * references the "target" node.
-		 */
-		Node source();
-
-		/**
-		 * Return the "target" node of the reference, i.e. the node that
-		 * is referenced by the "source" node.
-		 */
-		Node target();
-
-	}
-
-
-	/**
-	 * A validator will validate a node as appropriate.
-	 * Typically the validation will
-	 * 	- occur whenever a node has changed
-	 * 	- encompass the entire tree containing the node
-	 * 	- execute asynchronously
-	 */
-	interface Validator {
-
-		/**
-		 * A "significant" aspect has changed;
-		 * validate the node as appropriate
-		 */
-		void validate();
-
-		/**
-		 * Stop all validation of the node until #resume() is called.
-		 * This can be used to improve the performance of any long-running
-		 * action that triggers numerous changes to the node. Be sure to
-		 * match a call to this method with a corresponding call to
-		 * #resume().
-		 */
-		void pause();
-
-		/**
-		 * Resume validation of the node. This method can only be
-		 * called after a matching call to #pause().
-		 */
-		void resume();
-
-	}
-
-
-	// ********** helper implementations **********
-
-	/**
-	 * Straightforward implementation of the Reference interface
-	 * defined above.
-	 */
-	public class SimpleReference implements Reference {
-		private Node source;
-		private Node target;
-		public SimpleReference(Node source, Node target) {
-			super();
-			if (source == null || target == null) {
-				throw new NullPointerException();
-			}
-			this.source = source;
-			this.target = target;
-		}
-		public Node source() {
-			return this.source;
-		}
-		public Node target() {
-			return this.target;
-		}
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.source + " => " + this.target); //$NON-NLS-1$
-		}
-	}
-
-
-	/**
-	 * This validator does nothing to validate the node.
-	 */
-	Validator NULL_VALIDATOR =
-		new PluggableValidator(PluggableValidator.Delegate.Null.instance()) {
-			@Override
-			public String toString() {
-				return "Node.NULL_VALIDATOR"; //$NON-NLS-1$
-			}
-		};
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java
deleted file mode 100644
index 33a283c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean;
-
-/**
- * This implementation of the Validator interface implements the
- * pause/resume portion of the protocol, but delegates the actual
- * validation to a "pluggable" delegate.
- */
-public class PluggableValidator
-	implements Node.Validator
-{
-	private boolean pause;
-	private boolean validateOnResume;
-	private final Delegate delegate;
-
-
-	/**
-	 * Convenience factory method.
-	 */
-	public static Node.Validator buildAsynchronousValidator(SynchronizedBoolean validateFlag) {
-		return new PluggableValidator(new AsynchronousValidator(validateFlag));
-	}
-
-	/**
-	 * Convenience factory method.
-	 */
-	public static Node.Validator buildSynchronousValidator(Node node) {
-		return new PluggableValidator(new SynchronousValidator(node));
-	}
-
-	/**
-	 * Construct a validator with the specified delegate.
-	 */
-	public PluggableValidator(Delegate delegate) {
-		super();
-		this.pause = false;
-		this.validateOnResume = false;
-		this.delegate = delegate;
-	}
-
-	public synchronized void validate() {
-		if (this.pause) {
-			this.validateOnResume = true;
-		} else {
-			this.delegate.validate();
-		}
-	}
-
-	public synchronized void pause() {
-		if (this.pause) {
-			throw new IllegalStateException("already paused"); //$NON-NLS-1$
-		}
-		this.pause = true;
-	}
-
-	public synchronized void resume() {
-		if ( ! this.pause) {
-			throw new IllegalStateException("not paused"); //$NON-NLS-1$
-		}
-		this.pause = false;
-		// validate any changes that occurred while the validation was paused
-		if (this.validateOnResume) {
-			this.validateOnResume = false;
-			this.delegate.validate();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.delegate);
-	}
-
-
-	// ********** member interface **********
-
-	/**
-	 * Interface implemented by any delegates of a pluggable validator.
-	 */
-	public interface Delegate {
-
-		/**
-		 * The validator is not "paused" - perform the appropriate validation.
-		 */
-		void validate();
-
-
-		/**
-		 * This delegate does nothing.
-		 */
-		final class Null implements Delegate {
-			public static final Delegate INSTANCE = new Null();
-			public static Delegate instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			public void validate() {
-				// do nothing
-			}
-			@Override
-			public String toString() {
-				return "PluggableValidator.Delegate.Null"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java
deleted file mode 100644
index 13b4778..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-/**
- * Define an interface describing the problems associated with a node.
- */
-public interface Problem {
-
-	/**
-	 * Return the node most closely associated with the problem.
-	 */
-	Node source();
-
-	/**
-	 * Return a key that can be used to uniquely identify the problem's message.
-	 */
-	String messageKey();
-
-	/**
-	 * Return the arguments associate with the problem's message.
-	 */
-	Object[] messageArguments();
-	
-	/**
-	 * Return the type of the identified problem's message
-	 */
-	int messageType();
-
-	/**
-	 * Return whether the problem is equal to the specified object.
-	 * It is equal if the specified object is a implementation of the
-	 * Problem interface and its source, message key, and message
-	 * arguments are all equal to this problem's.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Return the problem's hash code, which should calculated as an
-	 * XOR of the source's hash code and the message key's hash code.
-	 */
-	int hashCode();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java
deleted file mode 100644
index b176685..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.node;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * This implementation of the PluggableValidator.Delegate interface
- * will validate the node immediately.
- * 
- * This is useful for debugging in a single thread or generating
- * problem reports.
- */
-public class SynchronousValidator
-	implements PluggableValidator.Delegate
-{
-	private final Node node;
-
-	/**
-	 * Construct a validator that will immediately validate the
-	 * specified node.
-	 */
-	public SynchronousValidator(Node node) {
-		super();
-		this.node = node;
-	}
-
-	public void validate() {
-		this.node.validateBranch();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.node);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java
deleted file mode 100644
index cd6412e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.ComboBoxModel;
-
-/**
- * This interface allows a client to better control the performance of
- * a combo box model by allowing the client to specify when it is
- * acceptable for the model to "cache" and "uncache" its list of elements.
- * The model may ignore these hints if appropriate.
- */
-public interface CachingComboBoxModel extends ComboBoxModel {
-    
-    /**
-     * Cache the comboBoxModel List.  If you call this, you
-     * must make sure to call uncacheList() as well.  Otherwise
-     * stale data will be in the ComboBox until cacheList() is 
-     * called again or uncacheList() is called.
-     */
-    void cacheList();
-    
-    /**
-     * Clear the cached list.  Next time the list is needed it will
-     * be built when it is not cached.
-     */
-    void uncacheList();
-
-    /**
-     * Check to see if the list is already cached.  This can be used for 
-     * MouseEvents, since they are not terribly predictable.
-     */
-    boolean isCached();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java
deleted file mode 100644
index 87a2b2e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.JCheckBox;
-import javax.swing.JTable;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import org.eclipse.jpt.common.utility.internal.swing.TableCellEditorAdapter.ImmediateEditListener;
-
-/**
- * Make the cell look like a check box.
- */
-public class CheckBoxTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/** the component used to paint the cell */
-	private final JCheckBox checkBox;
-	
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-
-	/** "normal" border - assume the default table "focus" border is 1 pixel thick */
-	private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1);
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a cell renderer with no label or icon.
-	 */
-	public CheckBoxTableCellRenderer() {
-		super();
-		this.checkBox = this.buildCheckBox();
-		// by default, check boxes do not paint their borders
-		this.checkBox.setBorderPainted(true);
-		// this setting is recommended for check boxes inside of trees and tables
-		this.checkBox.setBorderPaintedFlat(true);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified text and icon,
-	 * either of which may be null.
-	 */
-	public CheckBoxTableCellRenderer(String text, Icon icon) {
-		this();
-		this.setText(text);
-		this.setIcon(icon);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified text.
-	 */
-	public CheckBoxTableCellRenderer(String text) {
-		this(text, null);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified icon.
-	 */
-	public CheckBoxTableCellRenderer(Icon icon) {
-		this(null, icon);
-	}
-
-	protected JCheckBox buildCheckBox() {
-		JCheckBox cb = new JCheckBox();
-		cb.addActionListener(this.buildActionListener());
-		return cb;
-	}
-	
-	private ActionListener buildActionListener() {
-		return new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				if (CheckBoxTableCellRenderer.this.immediateEditListener != null) {
-					CheckBoxTableCellRenderer.this.immediateEditListener.immediateEdit();
-				}
-			}
-		};
-	}
-
-
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-	    this.checkBox.setHorizontalAlignment(SwingConstants.CENTER);
-		this.checkBox.setComponentOrientation(table.getComponentOrientation());
-		this.checkBox.setFont(table.getFont());
-		this.checkBox.setEnabled(table.isEnabled());
-
-		this.checkBox.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column));
-		this.checkBox.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column));
-		// once the colors are set, calculate opaque setting
-		this.checkBox.setOpaque(this.cellIsOpaqueIn(table, value, selected, hasFocus, row, column));
-		this.checkBox.setBorder(this.border(table, value, selected, hasFocus, row, column));
-
-		this.setValue(value);
-		return this.checkBox;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellForeground"); //$NON-NLS-1$
-			}
-			return table.getSelectionForeground();
-		}
-		return table.getForeground();
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellBackground"); //$NON-NLS-1$
-			}
-			return table.getSelectionBackground();
-		}
-		return table.getBackground();
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(@SuppressWarnings("unused") JTable table, @SuppressWarnings("unused") Object value, @SuppressWarnings("unused") boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) {
-		return hasFocus ?  UIManager.getBorder("Table.focusCellHighlightBorder") : NO_FOCUS_BORDER; //$NON-NLS-1$
-	}
-
-	/**
-	 * Return whether the cell should be opaque in the table.
-	 * If the cell's background is the same as the table's background
-	 * and table is opaque, we don't need to paint the background -
-	 * the table will do it.
-	 */
-	protected boolean cellIsOpaqueIn(JTable table, @SuppressWarnings("unused") Object value, @SuppressWarnings("unused") boolean selected, @SuppressWarnings("unused") boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) {
-		Color cellBackground = this.checkBox.getBackground();
-		Color tableBackground = table.getBackground();
-		return ! (table.isOpaque() && cellBackground.equals(tableBackground));
-	}
-
-	/**
-	 * Set the check box's value.
-	 */
-	protected void setValue(Object value) {
-		// CR#3999318 - This null check needs to be removed once JDK bug is fixed
-		if (value == null) {
-			value = Boolean.FALSE;
-		}
-		this.checkBox.setSelected(((Boolean) value).booleanValue());
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return Boolean.valueOf(this.checkBox.isSelected());
-	}
-	
-	public void setImmediateEditListener(ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-	// ********** public API **********
-
-	/**
-	 * Set the check box's text; which by default is blank.
-	 */
-	public void setText(String text) {
-		this.checkBox.setText(text);
-	}
-
-	/**
-	 * Set the check box's icon; which by default is not present.
-	 */
-	public void setIcon(Icon icon) {
-		this.checkBox.setIcon(icon);
-	}
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the table's row height to something the check box
-	 * will look good in....
-	 */
-	public int preferredHeight() {
-		// add in space for the border top and bottom
-		return (int) this.checkBox.getPreferredSize().getHeight() + 2;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java
deleted file mode 100644
index 055a43b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.BorderFactory;
-import javax.swing.ComboBoxModel;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JTable;
-import javax.swing.ListCellRenderer;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-
-/**
- * Make the cell look like a combo-box.
- */
-public class ComboBoxTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/* caching the combo box because we are caching the comboBoxModel.
-	 * Everytime we rebuilt the comboBox we would set the model on it and not
-	 * remove the model from the old combo box.  This meant that new listeners
-	 * kept being added to the comboBoxModel for every comboBox build.
-	 * Not sure if there is a way to clear out the old combo box, or why
-	 * we were buildig a new combo box every time so I went with caching it.
-	 */
-	private JComboBox comboBox;
-	
-	/** the items used to populate the combo box */
-	private CachingComboBoxModel model;
-	private ListCellRenderer renderer;
-	Object value;
-	private static int height = -1;
-	boolean fakeFocusFlag;
-
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-	
-	/** hold the original colors of the combo-box */
-	private static Color defaultForeground;
-	private static Color defaultBackground;
-
-	/** "normal" border - assume the default table "focus" border is 1 pixel thick */
-	private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1);
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Default constructor.
-	 */
-	private ComboBoxTableCellRenderer() {
-		super();
-		initialize();
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified combo-box model.
-	 */
-	public ComboBoxTableCellRenderer(ComboBoxModel model) {
-		this(new NonCachingComboBoxModel(model));
-	}
-	
-	/**
-	 * Construct a cell renderer that uses the specified caching combo-box model.
-	 */
-	public ComboBoxTableCellRenderer(CachingComboBoxModel model) {
-		this();
-		this.model = model;
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * combo-box model and renderer.
-	 */
-	public ComboBoxTableCellRenderer(ComboBoxModel model, ListCellRenderer renderer) {
-		this(new NonCachingComboBoxModel(model), renderer);
-	}
-	
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * caching combo-box model and renderer.
-	 */
-	public ComboBoxTableCellRenderer(CachingComboBoxModel model, ListCellRenderer renderer) {
-		this(model);
-		this.renderer = renderer;
-	}
-
-	protected void initialize() {
-		// save the original colors of the combo-box, so we
-		// can use them to paint non-selected cells
-		if (height == -1) {
-			JComboBox cb = new JComboBox();
-			cb.addItem("m"); //$NON-NLS-1$
-
-			// add in space for the border top and bottom
-			height = cb.getPreferredSize().height + 2;
-
-			defaultForeground = cb.getForeground();
-			defaultBackground = cb.getBackground();
-		}
-	}
-
-    static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(16), SwingConstants.LEADING); //$NON-NLS-1$
-
-    protected JComboBox buildComboBox() {
-
-		final JComboBox result = new JComboBox() {
-			private boolean fakeFocus;
-			@Override
-			public boolean hasFocus() {
-				return fakeFocus || super.hasFocus();
-			}
-			@Override
-			public void paint(Graphics g) {
-				fakeFocus = ComboBoxTableCellRenderer.this.fakeFocusFlag;
-				super.paint(g);
-				fakeFocus = false;
-			}
-			//wrap the renderer to deal with the prototypeDisplayValue
-		    @Override
-			public void setRenderer(final ListCellRenderer aRenderer) {
-		        super.setRenderer(new ListCellRenderer(){
-		            public Component getListCellRendererComponent(JList list, Object v, int index, boolean isSelected, boolean cellHasFocus) {
-		                if (v == prototypeLabel) {
-		                    return prototypeLabel;
-		                }
-		                return aRenderer.getListCellRendererComponent(list, v, index, isSelected, cellHasFocus);
-		            }
-		        });
-		    }
-			@Override
-			public int getSelectedIndex() {
-		        boolean listNotCached = !listIsCached();
-		        if (listNotCached) {
-		            cacheList();
-		        }
-		        
-				int index = super.getSelectedIndex();
-
-		        if (listNotCached) {
-		            uncacheList();
-		        }
-				return index;
-		   }
-
-		};
-		// stole this code from javax.swing.DefaultCellEditor
-		result.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); //$NON-NLS-1$
-		result.addActionListener(this.buildActionListener());
-		result.addPopupMenuListener(this.buildPopupMenuListener());
-		
-        //These are used to workaround problems with Swing trying to 
-        //determine the size of a comboBox with a large model
-        result.setPrototypeDisplayValue(prototypeLabel);
-        getListBox(result).setPrototypeCellValue(prototypeLabel);
-        
-		return result;
-	}
-	
-    
-    private JList getListBox(JComboBox result) {
-        return (JList) ReflectionTools.getFieldValue(result.getUI(), "listBox"); //$NON-NLS-1$
-    }
-
-	
-	private ActionListener buildActionListener() {
-		return new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				JComboBox cb = (JComboBox) e.getSource();
-				Object selectedItem = cb.getSelectedItem();
-
-				// Only update the selected item and invoke immediateEdit() if the
-				// selected item actually changed, during the initialization of the
-				// editing, the model changes and causes this method to be invoked,
-				// it causes CR#3963675 to occur because immediateEdit() stop the
-				// editing, which is done at the wrong time
-				if (ComboBoxTableCellRenderer.this.value != selectedItem) {
-					ComboBoxTableCellRenderer.this.value = cb.getSelectedItem();
-					ComboBoxTableCellRenderer.this.immediateEdit();
-				}
-			}
-		};
-	}
-
-	void immediateEdit() {
-		if (this.immediateEditListener != null) {
-			this.immediateEditListener.immediateEdit();
-		}
-	}
-	
-	private PopupMenuListener buildPopupMenuListener() {
-		return new PopupMenuListener() {
-		
-			public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
-				if (listIsCached()) {
-					uncacheList();
-				}
-				cacheList();
-			}
-		
-			public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
-	            if (listIsCached()) {
-	                uncacheList();
-	            }
-
-			}
-		
-			public void popupMenuCanceled(PopupMenuEvent e) {
-	            if (listIsCached()) {
-	                uncacheList();
-	            }
-			}
-		};
-	}
-
-	
-	void cacheList() {
-		this.model.cacheList();
-	}
-	
-	void uncacheList() {
-		this.model.uncacheList();
-	}	
-	
-	boolean listIsCached() {
-		return this.model.isCached();
-	}
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) {
-		this.fakeFocusFlag = selected || hasFocus;
-		if (this.comboBox == null) {
-			this.comboBox = this.buildComboBox();
-	
-			this.comboBox.setComponentOrientation(table.getComponentOrientation());
-			this.comboBox.setModel(this.model);
-			if (this.renderer != null) {
-				this.comboBox.setRenderer(this.renderer);
-			}
-			this.comboBox.setFont(table.getFont());
-			this.comboBox.setEnabled(table.isEnabled());
-			this.comboBox.setBorder(this.border(table, val, selected, hasFocus, row, column));
-		}
-
-		// We need to go through the model since JComboBox might prevent us from
-		// selecting the value. This can happen when the value is not contained
-		// in the model, see CR#3950044 for an example
-		this.model.setSelectedItem(val);
-
-		return this.comboBox;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object val, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return defaultForeground;
-			}
-			return table.getSelectionForeground();
-		}
-		return defaultForeground;
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object val, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return defaultBackground;
-			}
-			return table.getSelectionBackground();
-		}
-		return defaultBackground;
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(@SuppressWarnings("unused") JTable table, @SuppressWarnings("unused") Object val, @SuppressWarnings("unused") boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) {
-		return hasFocus ?
-			UIManager.getBorder("Table.focusCellHighlightBorder") //$NON-NLS-1$
-		:
-			NO_FOCUS_BORDER;
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return this.value;
-	}
-	
-	public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the row height to something the combo-box will look good in....
-	 */
-	public int preferredHeight() {
-		return height;
-	}
-
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java
deleted file mode 100644
index 5a3adb7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.Icon;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Used by general-purpose UI models and renderers to cast
- * application model objects to something displayable.
- */
-public interface Displayable
-	extends Model
-{
-
-	/**
-	 * Return a string that can be used to identify the model
-	 * in a textual UI setting (typically the object's name).
-	 * When the display string changes, the model should fire
-	 * the appropriate change notification:
-	 *     this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString());
-	 */
-	String displayString();
-		String DISPLAY_STRING_PROPERTY = "displayString"; //$NON-NLS-1$
-
-	/**
-	 * Return an icon that can be used to identify the model
-	 * in a UI component that supports icons (the icon can be null).
-	 * When the icon changes, the model should fire
-	 * the appropriate change notification:
-	 *     this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon());
-	 */
-	Icon icon();
-		String ICON_PROPERTY = "icon"; //$NON-NLS-1$
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java
deleted file mode 100644
index b04fbcf..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import javax.swing.Icon;
-
-/**
- * Implement the Icon interface with an icon that has a size but
- * does not paint anything on the graphics context.
- */
-public class EmptyIcon
-	implements Icon
-{
-	private final int width;
-	private final int height;
-
-	public static final EmptyIcon NULL_INSTANCE = new EmptyIcon(0);
-
-
-	public EmptyIcon(int width, int height) {
-		super();
-		this.width = width;
-		this.height = height;
-	}
-
-	public EmptyIcon(int size) {
-		this(size, size);
-	}
-
-
-	// ********** Icon implementation **********
-
-	public void paintIcon(Component c, Graphics g, int x, int y) {
-		// don't paint anything for an empty icon
-	}
-
-	public int getIconWidth() { 
-		return this.width;
-	}
-
-	public int getIconHeight() {
-		return this.height;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java
deleted file mode 100644
index 68ee9aa..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.Icon;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.ListModel;
-
-/**
- * This implementation of LongListComponent.Browser uses a
- * JOptionPane to prompt the user for the selection. The JOPtionPane
- * is passed a FilteringListPanel to assist the user in making
- * a selection.
- */
-public class FilteringListBrowser<T> 
-	implements ListChooser.ListBrowser 
-{
-	private FilteringListPanel<T> panel;
-
-	/**
-	 * Default constructor.
-	 */
-	public FilteringListBrowser() {
-		super();
-		this.panel = this.buildPanel();
-	}
-
-	protected FilteringListPanel<T> buildPanel() {
-		return new LocalFilteringListPanel<T>();
-	}
-
-	/**
-	 * Prompt the user using a JOptionPane with a filtering
-	 * list panel.
-	 */
-	public void browse(ListChooser chooser) {	
-		this.initializeCellRenderer(chooser);
-		
-		int option = 
-			JOptionPane.showOptionDialog(
-				chooser, 
-				this.message(chooser), 
-				this.title(chooser), 
-				this.optionType(chooser), 
-				this.messageType(chooser), 
-				this.icon(chooser), 
-				this.selectionValues(chooser), 
-				this.initialSelectionValue(chooser)
-		);
-		
-		if (option == JOptionPane.OK_OPTION) {
-			chooser.getModel().setSelectedItem(this.panel.selection());
-		}
-		
-		// clear the text field so the list box is re-filtered
-		this.panel.textField().setText(""); //$NON-NLS-1$
-	}
-	
-	protected void initializeCellRenderer(JComboBox comboBox) {
-		// default behavior should be to use the cell renderer from the combobox.
-		this.panel.listBox().setCellRenderer(comboBox.getRenderer());
-	}
-
-	/**
-	 * the message can be anything - here we build a component
-	 */
-	protected Object message(JComboBox comboBox) {
-		this.panel.setCompleteList(this.convertToArray(comboBox.getModel()));
-		this.panel.setSelection(comboBox.getModel().getSelectedItem());
-		return this.panel;
-	}
-
-	protected String title(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-
-	protected int optionType(@SuppressWarnings("unused") JComboBox comboBox) {
-		return JOptionPane.OK_CANCEL_OPTION;
-	}
-
-	protected int messageType(@SuppressWarnings("unused") JComboBox comboBox) {
-		return JOptionPane.QUESTION_MESSAGE;
-	}
-
-	protected Icon icon(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-
-	protected Object[] selectionValues(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-
-	protected Object initialSelectionValue(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-
-	/**
-	 * Convert the list of objects in the specified list model
-	 * into an array.
-	 */
-	protected Object[] convertToArray(ListModel model) {
-		int size = model.getSize();
-		Object[] result = new Object[size];
-		for (int i = 0; i < size; i++) {
-			result[i] = model.getElementAt(i);
-		}
-		return result;
-	}
-	
-	
-	// ********** custom panel **********
-	
-	protected static class LocalFilteringListPanel<S> extends FilteringListPanel<S> {
-		protected static final Object[] EMPTY_ARRAY = new Object[0];
-
-		protected LocalFilteringListPanel() {
-			super(EMPTY_ARRAY, null);
-		}
-	
-		/**
-		 * Disable the performance tweak because JOptionPane
-		 * will try open wide enough to disable the horizontal scroll bar;
-		 * and it looks a bit clumsy.
-		 */
-		@Override
-		protected String prototypeCellValue() {
-			return null;
-		}
-	
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java
deleted file mode 100644
index e58608c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java
+++ /dev/null
@@ -1,455 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Font;
-import javax.swing.AbstractListModel;
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.ListCellRenderer;
-import javax.swing.ListModel;
-import javax.swing.ListSelectionModel;
-import javax.swing.border.Border;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import org.eclipse.jpt.common.utility.internal.SimpleStringMatcher;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.StringMatcher;
-
-/**
- * This panel presents an entry field and a list box of choices that
- * allows the user to filter the entries in the list box by entering
- * a pattern in the entry field.
- * 
- * By default, two wildcards are allowed in the pattern:
- * 	'*' will match any set of zero or more characters
- * 	'?' will match any single character
- * 
- * The panel consists of 4 components that can be customized:
- * 	- 1 text field
- * 	- 1 list box
- * 	- 2 labels, one for each of the above
- * 
- * Other aspects of the panel's behavior can be changed:
- * 	- the string converter determines how the objects in the
- * 		list are converted to strings and compared to the pattern
- * 		entered in the text field; by default the converter simply
- * 		uses the result of the object's #toString() method
- * 		(if you replace the string converter, you will probably
- * 		want to replace the list box's cell renderer also)
- * 	- the string matcher can also be changed if you would
- * 		like different pattern matching behavior than that
- * 		described above
- * 	- you can specify the maximum size of the list - this may
- * 		force the user to enter a pattern restrictive enough
- * 		to result in a list smaller than the maximum size; the
- * 		default is -1, which disables the restriction
- * 
- * This panel is not a typical panel, in the sense that it does not share
- * its model with clients via value models. Instead, this panel's model
- * is set and queried directly because it is designed to be used in a
- * dialog that directs the user's behavior (as opposed to a "normal"
- * window).
- */
-public class FilteringListPanel<T> extends JPanel {
-
-	/**
-	 * The complete list of available choices
-	 * (as opposed to the partial list held by the list box).
-	 */
-	private Object[] completeList;
-
-	/**
-	 * An adapter used to convert the objects in the list
-	 * to strings so they can be run through the matcher
-	 * and displayed in the text field.
-	 */
-	StringConverter<T> stringConverter;
-
-	/** The text field. */
-	private JTextField textField;
-	private JLabel textFieldLabel;
-	private DocumentListener textFieldListener;
-
-	/** The list box. */
-	private JList listBox;
-	private JLabel listBoxLabel;
-
-	/** The maximum number of entries displayed in the list box. */
-	private int maxListSize;
-
-	/**
-	 * The matcher used to filter the list against
-	 * the pattern entered in the text field. By default,
-	 * this allows the two wildcard characters described in
-	 * the class comment.
-	 */
-	private StringMatcher stringMatcher;
-
-	/**
-	 * Performance tweak: We use this buffer instead of
-	 * a temporary variable during filtering so we don't have
-	 * to keep re-allocating it.
-	 */
-	private Object[] buffer;
-
-	private static final Border TEXT_FIELD_LABEL_BORDER = BorderFactory.createEmptyBorder(0, 0, 5, 0);
-	private static final Border LIST_BOX_LABEL_BORDER = BorderFactory.createEmptyBorder(5, 0, 5, 0);
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a FilteringListPanel with the specified list of choices
-	 * and initial selection. Use the default string converter to convert the
-	 * choices and selection to strings (which simply calls #toString() on
-	 * the objects).
-	 */
-	public FilteringListPanel(Object[] completeList, Object initialSelection) {
-		this(completeList, initialSelection, StringConverter.Default.<T>instance());
-	}
-
-	/**
-	 * Construct a FilteringListPanel with the specified list of choices
-	 * and initial selection. Use the specified string converter to convert the
-	 * choices and selection to strings.
-	 */
-	public FilteringListPanel(Object[] completeList, Object initialSelection, StringConverter<T> stringConverter) {
-		super(new BorderLayout());
-		this.completeList = completeList;
-		this.stringConverter = stringConverter;
-		this.initialize(initialSelection);
-	}
-
-
-	// ********** initialization **********
-
-	private void initialize(Object initialSelection) {
-		this.maxListSize = this.defaultMaxListSize();
-		this.buffer = this.buildBuffer();
-
-		this.textFieldListener = this.buildTextFieldListener();
-
-		this.stringMatcher = this.buildStringMatcher();
-
-		this.initializeLayout(initialSelection);
-	}
-
-	private Object[] buildBuffer() {
-		return new Object[this.max()];
-	}
-
-	/**
-	 * Return the current max number of entries allowed in the list box.
-	 */
-	private int max() {
-		if (this.maxListSize == -1) {
-			return this.completeList.length;
-		}
-		return Math.min(this.maxListSize, this.completeList.length);
-	}
-
-	/**
-	 * Build a listener that will listen to changes in the text field
-	 * and filter the list appropriately.
-	 */
-	private DocumentListener buildTextFieldListener() {
-		return new DocumentListener() {
-			public void insertUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			public void changedUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			public void removeUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			@Override
-			public String toString() {
-				return "text field listener"; //$NON-NLS-1$
-			}
-		};
-	}
-
-	private int defaultMaxListSize() {
-		return -1;
-	}
-
-	private StringMatcher buildStringMatcher() {
-		return new SimpleStringMatcher<T>();
-	}
-
-	private void initializeLayout(Object initialSelection) {
-		// text field
-		JPanel textFieldPanel = new JPanel(new BorderLayout());
-		this.textFieldLabel = new JLabel();
-		this.textFieldLabel.setBorder(TEXT_FIELD_LABEL_BORDER);
-		textFieldPanel.add(this.textFieldLabel, BorderLayout.NORTH);
-
-		this.textField = new JTextField();
-		this.textField.getDocument().addDocumentListener(this.textFieldListener);
-		this.textFieldLabel.setLabelFor(this.textField);
-		textFieldPanel.add(this.textField, BorderLayout.CENTER);
-
-		this.add(textFieldPanel, BorderLayout.NORTH);
-
-		// list box
-		JPanel listBoxPanel = new JPanel(new BorderLayout());
-		this.listBoxLabel = new JLabel();
-		this.listBoxLabel.setBorder(LIST_BOX_LABEL_BORDER);
-		listBoxPanel.add(this.listBoxLabel, BorderLayout.NORTH);
-
-		this.listBox = new JList();
-		this.listBox.setDoubleBuffered(true);
-		this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max()));
-		this.listBox.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-		// performance tweak(?)
-		this.listBox.setPrototypeCellValue(this.prototypeCellValue());
-		this.listBox.setPrototypeCellValue(null);
-		this.listBox.setCellRenderer(this.buildDefaultCellRenderer());
-		this.listBoxLabel.setLabelFor(this.listBox);
-		// bug 2777802 - scroll bars shouldn't be on the tab sequence
-		JScrollPane listBoxScrollPane = new JScrollPane(this.listBox);
-		listBoxScrollPane.getHorizontalScrollBar().setFocusable(false);
-		listBoxScrollPane.getVerticalScrollBar().setFocusable(false);
-		listBoxPanel.add(listBoxScrollPane, BorderLayout.CENTER);
-
-		// initialize the widgets
-		this.listBox.setSelectedValue(initialSelection, true);
-		this.textField.select(0, this.textField.getText().length());
-
-		this.add(listBoxPanel, BorderLayout.CENTER);
-	}
-
-
-	// ********** public API **********
-
-	public Object selection() {
-		return this.listBox.getSelectedValue();
-	}
-
-	public void setSelection(Object selection) {
-		this.listBox.setSelectedValue(selection, true);
-	}
-
-	public Object[] completeList() {
-		return this.completeList;
-	}
-
-	/**
-	 * rebuild the filtering buffer and re-apply the filter
-	 * to the new list
-	 */
-	public void setCompleteList(Object[] completeList) {
-		this.completeList = completeList;
-		if (this.buffer.length < this.max()) {
-			// the buffer will never shrink - might want to re-consider...  ~bjv
-			this.buffer = this.buildBuffer();
-		}
-		this.filterList();
-	}
-
-	public int maxListSize() {
-		return this.maxListSize;
-	}
-
-	public void setMaxListSize(int maxListSize) {
-		this.maxListSize = maxListSize;
-		if (this.buffer.length < this.max()) {
-			// the buffer will never shrink - might want to re-consider...  ~bjv
-			this.buffer = this.buildBuffer();
-		}
-		this.filterList();
-	}
-
-	public StringConverter<T> stringConverter() {
-		return this.stringConverter;
-	}
-
-	/**
-	 * apply the new filter to the list
-	 */
-	public void setStringConverter(StringConverter<T> stringConverter) {
-		this.stringConverter = stringConverter;
-		this.filterList();
-	}
-
-	/**
-	 * allow client code to access the text field
-	 * (so we can set the focus)
-	 */
-	public JTextField textField() {
-		return this.textField;
-	}
-
-	/**
-	 * allow client code to access the text field label
-	 */
-	public JLabel textFieldLabel() {
-		return this.textFieldLabel;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setTextFieldLabelText(String text) {
-		this.textFieldLabel.setText(text);
-	}
-
-	/**
-	 * allow client code to access the list box
-	 * (so we can add mouse listeners for double-clicking)
-	 */
-	public JList listBox() {
-		return this.listBox;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setListBoxCellRenderer(ListCellRenderer renderer) {
-		this.listBox.setCellRenderer(renderer);
-	}
-
-	/**
-	 * allow client code to access the list box label
-	 */
-	public JLabel listBoxLabel() {
-		return this.listBoxLabel;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setListBoxLabelText(String text) {
-		this.listBoxLabel.setText(text);
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setComponentsFont(Font font) {
-		this.textFieldLabel.setFont(font);
-		this.textField.setFont(font);
-		this.listBoxLabel.setFont(font);
-		this.listBox.setFont(font);
-	}
-
-	public StringMatcher stringMatcher() {
-		return this.stringMatcher;
-	}
-
-	/**
-	 * re-apply the filter to the list
-	 */
-	public void setStringMatcher(StringMatcher stringMatcher) {
-		this.stringMatcher = stringMatcher;
-		this.filterList();
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Allow subclasses to disable performance tweak
-	 * by returning null here.
-	 */
-	protected String prototypeCellValue() {
-		return "==========> A_STRING_THAT_IS_DEFINITELY_LONGER_THAN_EVERY_STRING_IN_THE_LIST <=========="; //$NON-NLS-1$
-	}
-
-	/**
-	 * By default, use the string converter to build the text
-	 * used by the list box's cell renderer.
-	 */
-	protected ListCellRenderer buildDefaultCellRenderer() {
-		return new SimpleListCellRenderer() {
-			@Override
-			@SuppressWarnings("unchecked")
-			protected String buildText(Object value) {
-				return FilteringListPanel.this.stringConverter.convertToString((T) value);
-			}
-		};
-	}
-
-	/**
-	 * Something has changed that requires us to filter the list.
-	 * 
-	 * This method is synchronized because a fast typist can
-	 * generate events quicker than we can filter the list. (?  ~bjv)
-	 */
-	synchronized void filterList() {
-		// temporarily stop listening to the list box selection, since we will
-		// be changing the selection during the filtering and don't want
-		// that to affect the text field
-		this.filterList(this.textField.getText());
-	}
-
-	/**
-	 * Filter the contents of the list box to match the
-	 * specified pattern.
-	 */
-	private void filterList(String pattern) {
-		if (pattern.length() == 0) {
-			this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max()));
-		} else {
-			this.stringMatcher.setPatternString(pattern);
-			int j = 0;
-			int len = this.completeList.length;
-			int max = this.max();
-			for (int i = 0; i < len; i++) {
-				if (this.stringMatcher.matches(this.stringConverter.convertToString(this.entry(i)))) {
-					this.buffer[j++] = this.completeList[i];
-				}
-				if (j == max) {
-					break;
-				}
-			}
-			this.listBox.setModel(this.buildPartialArrayListModel(this.buffer, j));
-		}
-
-		// after filtering the list, determine the appropriate selection
-		if (this.listBox.getModel().getSize() == 0) {
-			this.listBox.getSelectionModel().clearSelection();
-		} else {
-			this.listBox.getSelectionModel().setAnchorSelectionIndex(0);
-			this.listBox.getSelectionModel().setLeadSelectionIndex(0);
-			this.listBox.ensureIndexIsVisible(0);
-		}
-	}
-
-	/**
-	 * minimize scope of suppressed warnings
-	 */
-	@SuppressWarnings("unchecked")
-	private T entry(int index) {
-		return (T) this.completeList[index];
-	}
-
-	/**
-	 * Build a list model that wraps only a portion of the specified array.
-	 * The model will include the array entries from 0 to (size - 1).
-	 */
-	private ListModel buildPartialArrayListModel(final Object[] array, final int size) {
-		return new AbstractListModel() {
-			public int getSize() {
-				return size;
-			}
-			public Object getElementAt(int index) {
-				return array[index];
-			}
-		};
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java
deleted file mode 100644
index 84bad23..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.AWTEvent;
-import java.awt.AWTException;
-import java.awt.Component;
-import java.awt.EventQueue;
-import java.awt.Point;
-import java.awt.Robot;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseEvent;
-import javax.swing.ComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.ListCellRenderer;
-import javax.swing.SwingConstants;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
-import javax.swing.plaf.basic.BasicComboBoxUI;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-
-/**
- * This component provides a way to handle selecting an item from a
- * list that may grow too large to be handled conveniently by a combo-box. 
- * If the list's size is less than the designated "long" list size, 
- * the choice list will be displayed in a normal combo-box popup; 
- * otherwise, a dialog will be used to prompt the user to choose a selection.
- * 
- * To change the browse mechanism, subclasses may 
- * 	- override the method #buildBrowser()
- *  - override the method #browse(), in which case the method 
- * 		#buildBrowser() may be ignored.
- */
-public class ListChooser 
-	extends JComboBox
-{
-	
-	/** the size of a "long" list - anything smaller is a "short" list */
-	int longListSize = DEFAULT_LONG_LIST_SIZE;
-	
-	/** the default size of a "long" list, which is 20 (to match JOptionPane's behavior) */
-	public static final int DEFAULT_LONG_LIST_SIZE = 20;
-	
-	/** property change associated with long list size */
-	public static final String LONG_LIST_SIZE_PROPERTY = "longListSize"; //$NON-NLS-1$
-	
-    static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(17), SwingConstants.LEADING); //$NON-NLS-1$
-
-    /** 
-	 * whether the chooser is choosable.  if a chooser is not choosable,
-	 * it only serves as a display widget.  a user may not change its 
-	 * selected value.
-	 */
-	boolean choosable = true;
-	
-	/** property change associated with choosable */
-	public static final String CHOOSABLE_PROPERTY = "choosable"; //$NON-NLS-1$
-	
-	/** the browser used to make a selection from the long list - typically via a dialog */
-	private ListBrowser browser;
-	
-    private NodeSelector nodeSelector;
-    
-	/** INTERNAL - The popup is being shown.  Used to prevent infinite loop. */
-	boolean popupAlreadyInProgress;
-	
-	
-	// **************** Constructors ******************************************
-	
-	/**
-	 * Construct a list chooser for the specified model.
-	 */
-	public ListChooser(ComboBoxModel model) {
-		this(model, new NodeSelector.DefaultNodeSelector());
-	}
-	
-    public ListChooser(CachingComboBoxModel model) {
-        this(model, new NodeSelector.DefaultNodeSelector());
-    }
-    
-	public ListChooser(ComboBoxModel model, NodeSelector nodeSelector) {
-        this(new NonCachingComboBoxModel(model), nodeSelector);
-    }
-    
-    public ListChooser(CachingComboBoxModel model, NodeSelector nodeSelector) {
-        super(model);
-        this.initialize();
-        this.nodeSelector = nodeSelector;
-    }
-	// **************** Initialization ****************************************
-	
-	protected void initialize() {
-		this.addPopupMenuListener(this.buildPopupMenuListener());
-		this.setRenderer(new DefaultListCellRenderer());
-        this.addKeyListener(buildF3KeyListener());
-        
-        //These are used to workaround problems with Swing trying to 
-        //determine the size of a comboBox with a large model
-        setPrototypeDisplayValue(prototypeLabel);
-        listBox().setPrototypeCellValue(prototypeLabel);
-	}
-	
-    
-    private JList listBox() {
-        return (JList) ReflectionTools.getFieldValue(this.ui, "listBox"); //$NON-NLS-1$
-    }
-    
-	/** 
-	 * When the popup is about to be shown, the event is consumed, and 
-	 * PopupHandler determines whether to reshow the popup or to show
-	 * the long list browser.
-	 */
-	private PopupMenuListener buildPopupMenuListener() {
-		return new PopupMenuListener() {
-			public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
-				ListChooser.this.aboutToShowPopup();
-			}
-			public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
-				// do nothing
-			}
-			public void popupMenuCanceled(PopupMenuEvent e) {
-				// do nothing
-			}
-			@Override
-			public String toString() {
-				return "pop-up menu listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-	/**
-	 * If this code is being reached due to the PopupHandler already being in progress,
-	 * then do nothing.  Otherwise, set the flag to true and launch the PopupHandler.
-	 */
-	void aboutToShowPopup() {
-		if (this.popupAlreadyInProgress) {
-			return;
-		}
-		
-		this.popupAlreadyInProgress = true;
-		EventQueue.invokeLater(new PopupHandler());
-	}
- 
-    
-	private KeyListener buildF3KeyListener() {
-        return new KeyAdapter() {
-            @Override
-			public void keyPressed(KeyEvent e) {
-                if (e.getKeyCode() == KeyEvent.VK_F3) {
-                    goToSelectedItem();
-                }                
-            }
-			@Override
-			public String toString() {
-				return "F3 key listener"; //$NON-NLS-1$
-			}
-        };
-    }
-    
-    public void goToSelectedItem() {
-        if (getSelectedItem() != null) {
-            ListChooser.this.nodeSelector.selectNodeFor(getSelectedItem());
-        }
-    }
-    
-	// **************** Browsing **********************************************
-	
-	/** 
-	 * Lazily initialize because subclasses may have further initialization to do
-	 * before browser can be built.
-	 */
-	protected void browse() {
-		if (this.browser == null) {
-			this.browser = this.buildBrowser();
-		}
-		
-		this.browser.browse(this);
-	}
-	
-	/**
-	 * Return the "browser" used to make a selection from the long list,
-	 * typically via a dialog.
-	 */
-	protected ListChooser.ListBrowser buildBrowser() {
-		return new SimpleListBrowser();
-	}
-	
-	
-	// **************** Choosable functionality *******************************
-	
-	/** override behavior - consume selection if chooser is not choosable */
-	@Override
-	public void setSelectedIndex(int anIndex) {
-		if (this.choosable) {
-			super.setSelectedIndex(anIndex);
-		}
-	}
-	
-	private void updateArrowButton() {
-		try {
-			BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI();
-			JButton arrowButton = (JButton) ReflectionTools.getFieldValue(comboBoxUi, "arrowButton"); //$NON-NLS-1$
-			arrowButton.setEnabled(this.isEnabled() && this.choosable);
-		}
-		catch (Exception e) {
-			// this is a huge hack to try and make the combo box look right,
-			// so if it doesn't work, just swallow the exception
-		}
-	}
-	
-	
-    // **************** List Caching *******************************
-
-    void cacheList() {
-        ((CachingComboBoxModel) getModel()).cacheList();
-    }
-    
-    void uncacheList() {
-        ((CachingComboBoxModel) getModel()).uncacheList();
-    }
-
-    boolean listIsCached() {
-        return ((CachingComboBoxModel) getModel()).isCached();
-    }
-    
-	// **************** Public ************************************************
-	
-	public int longListSize() {
-		return this.longListSize;
-	}
-	
-	public void setLongListSize(int newLongListSize) {
-		int oldLongListSize = this.longListSize;
-		this.longListSize = newLongListSize;
-		this.firePropertyChange(LONG_LIST_SIZE_PROPERTY, oldLongListSize, newLongListSize);
-	}
-	
-	public boolean isChoosable() {
-		return this.choosable;
-	}
-	
-	public void setChoosable(boolean newValue) {
-		boolean oldValue = this.choosable;
-		this.choosable = newValue;
-		this.firePropertyChange(CHOOSABLE_PROPERTY, oldValue, newValue);
-		this.updateArrowButton();
-	}
-	
-	// **************** Handle selecting null as a value **********************
-
-	private boolean selectedIndexIsNoneSelectedItem(int index) {
-		return index == -1 &&
-				 getModel().getSize() > 0 &&
-				 getModel().getElementAt(0) == null;
-	}
-
-	@Override
-	public int getSelectedIndex() {
-        boolean listNotCached = !listIsCached();
-        if (listNotCached) {
-            cacheList();
-        }
-        
-		int index = super.getSelectedIndex();
-
-		// Use index 0 to show the <none selected> item since the actual value is
-		// null and JComboBox does not handle null values
-		if (selectedIndexIsNoneSelectedItem(index)) {
-			index = 0;
-        }
-
-        if (listNotCached) {
-            uncacheList();
-        }
-		return index;
-   }
-	
-	//wrap the renderer to deal with the prototypeDisplayValue
-    @Override
-	public void setRenderer(final ListCellRenderer aRenderer) {
-        super.setRenderer(new ListCellRenderer(){
-            public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-                if (value == prototypeLabel) {
-                    return prototypeLabel;
-                }
-                return aRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
-            }
-        });
-    }
-    
-    
-	// **************** Member classes ****************************************
-	
-	/**
-	 * Define the API required by this ListChooser when it must
-	 * prompt the user to select an item from the "long" list.
-	 */
-	public interface ListBrowser 
-	{
-		/**
-		 * Prompt the user to make a selection from the specified
-		 * combo-box's model.
-		 */
-		void browse(ListChooser parentChooser);
-	}
-	
-	
-	/**
-	 * Runnable class that consumes popup window and determines whether
-	 * to reshow popup or to launch browser, based on the size of the list.
-	 */
-	private class PopupHandler
-		implements Runnable
-	{
-		/** The mouse event */
-		private MouseEvent lastMouseEvent;
-		
-		/** The component from which the last mouse event was thrown */
-		private JComponent eventComponent;
-		
-		/** The location of the component at the time the last mouse event was thrown */
-		private Point componentLocation;
-		
-		/** The location of the mouse at the time the last mouse event was thrown */
-		private Point mouseLocation;
-		
-		
-		PopupHandler() {
-			this.initialize();
-		}
-		
-		private void initialize() {
-			AWTEvent event = EventQueue.getCurrentEvent();
-			
-			if (event instanceof MouseEvent) {
-				this.lastMouseEvent = (MouseEvent) event;
-				this.eventComponent = (JComponent) this.lastMouseEvent.getSource();
-				this.componentLocation = this.eventComponent.getLocationOnScreen();
-				this.mouseLocation = this.lastMouseEvent.getPoint();
-			}
-			else {
-				this.eventComponent = null;
-				this.componentLocation = null;
-				this.mouseLocation = null;
-			}
-		}
-		
-		public void run() {
-			ListChooser.this.hidePopup();
-			
-            cacheList();
-			if (ListChooser.this.choosable == true) {
-				// If the combo box model is of sufficient length, the browser will be shown.
-				// Asking the combo box model for its size should be enough to ensure that 
-				//  its size is recalculated.
-				if (ListChooser.this.getModel().getSize() > ListChooser.this.longListSize) {
-					this.checkComboBoxButton();
-					ListChooser.this.browse();
-				}
-				else {
-					ListChooser.this.showPopup();
-					this.checkMousePosition();
-				}
-			}
-            if (listIsCached()) {
-                uncacheList();
-            }
-			
-			ListChooser.this.popupAlreadyInProgress = false;
-		}
-		
-		/** If this is not done, the button never becomes un-pressed */
-		private void checkComboBoxButton() {
-			try {
-				BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI();
-				JButton arrowButton = (JButton) ReflectionTools.getFieldValue(comboBoxUi, "arrowButton"); //$NON-NLS-1$
-				arrowButton.getModel().setPressed(false);
-			}
-			catch (Exception ex) {
-				// this is a huge hack to try and make the combo box look right,
-				// so if it doesn't work, just swallow the exception
-				this.handleException(ex);
-			}
-		}
-
-		private void handleException(@SuppressWarnings("unused") Exception ex) {
-			// do nothing for now
-		}
-		
-		/**
-		 * Moves the mouse back to its original position before any jiggery pokery that we've done.
-		 */
-		private void checkMousePosition() {
-			if (this.eventComponent == null) {
-				return;
-			}
-			
-			final Point newComponentLocation = this.eventComponent.getLocationOnScreen();
-			boolean componentMoved = 
-				newComponentLocation.x - this.componentLocation.x != 0
-				|| newComponentLocation.y - this.componentLocation.y != 0;
-			
-			if (componentMoved) {
-				try {
-					new Robot().mouseMove(
-						newComponentLocation.x + this.mouseLocation.x,
-						newComponentLocation.y + this.mouseLocation.y
-					);
-				}
-				catch (AWTException ex) {
-					// move failed - do nothing
-				}
-			}
-		}
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java
deleted file mode 100644
index 64079be..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-/**
- * This will be called when the user presses F3 or chooses
- * 'Go To' in the context menu
- */
-public interface NodeSelector 
-{       
-    /**
-     * Select the appropriate Node in the tree or the editor panel.
-     */
-    void selectNodeFor(Object item);
-    
-    /**
-     * This NodeSelector will do nothing when selectNodeFor(Object) is called
-     */
-    class DefaultNodeSelector implements NodeSelector {
-        
-        public void selectNodeFor(Object item) {
-            //default is to do nothing
-        }
-    }
-}
\ No newline at end of file
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java
deleted file mode 100644
index aef9a7c..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.ComboBoxModel;
-import javax.swing.event.ListDataListener;
-
-/**
- * This implementation of the CachingComboBoxModel interface can be used
- * whenever there is no need for caching (i.e. the contents of the selection
- * list can be generated with little latency). All the normal ComboBoxModel
- * behavior is delegated to a client-supplied ComboBoxModel.
- */
-public class NonCachingComboBoxModel implements CachingComboBoxModel {
-	private ComboBoxModel wrappedComboBoxModel;
-
-	public NonCachingComboBoxModel(ComboBoxModel wrappedComboBoxModel) {
-		this.wrappedComboBoxModel = wrappedComboBoxModel;
-	}
-
-
-	// ********** CachingComboBoxModel implementation **********
-
-	public void cacheList() {
-		//do nothing
-	}
-
-	public void uncacheList() {
-		//do nothing
-	}
-
-	public boolean isCached() {
-		return false;
-	}
-
-
-	// ********** ComboBoxModel implementation **********
-
-	public void setSelectedItem(Object anItem) {
-		this.wrappedComboBoxModel.setSelectedItem(anItem);
-	}
-
-	public Object getSelectedItem() {
-		return this.wrappedComboBoxModel.getSelectedItem();
-	}
-
-
-	// ********** ListModel implementation **********
-
-	public int getSize() {
-		return this.wrappedComboBoxModel.getSize();
-	}
-
-	public Object getElementAt(int index) {
-		return this.wrappedComboBoxModel.getElementAt(index);
-	}
-
-	public void addListDataListener(ListDataListener l) {
-		this.wrappedComboBoxModel.addListDataListener(l);
-	}
-
-	public void removeListDataListener(ListDataListener l) {
-		this.wrappedComboBoxModel.removeListDataListener(l);
-	}  
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java
deleted file mode 100644
index d10b6b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.Icon;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-
-/**
- * This implementation of Displayable converts any Object
- * to a Displayable. Subclass it to override #displayString() and
- * #icon() if necessary. Change notification will be fired if the
- * object is changed.
- * 
- * This can be used for Strings - the display string
- * will simply be the String itself.
- */
-public class SimpleDisplayable
-	extends AbstractModel
-	implements Displayable
-{
-	/** The object to be converted to a Displayable. */
-	protected Object object;
-
-
-	/**
-	 * Construct a displayable for the specified object.
-	 */
-	public SimpleDisplayable(Object object) {
-		super();
-		this.object = object;
-	}
-
-	public SimpleDisplayable(boolean b) {
-		this(Boolean.valueOf(b));
-	}
-
-	public SimpleDisplayable(char c) {
-		this(Character.valueOf(c));
-	}
-
-	public SimpleDisplayable(byte b) {
-		this(Byte.valueOf(b));
-	}
-
-	public SimpleDisplayable(short s) {
-		this(Short.valueOf(s));
-	}
-
-	public SimpleDisplayable(int i) {
-		this(Integer.valueOf(i));
-	}
-
-	public SimpleDisplayable(long l) {
-		this(Long.valueOf(l));
-	}
-
-	public SimpleDisplayable(float f) {
-		this(Float.valueOf(f));
-	}
-
-	public SimpleDisplayable(double d) {
-		this(Double.valueOf(d));
-	}
-
-
-	// ********** Displayable implementation **********
-
-	public String displayString() {
-		return this.object.toString();
-	}
-
-	public Icon icon() {
-		return null;
-	}
-
-
-	// ********** accessors **********
-
-	public Object getObject() {
-		return this.object;
-	}
-
-	public void setObject(Object object) {
-		String oldDisplayString = this.displayString();
-		Icon oldIcon = this.icon();
-		this.object = object;
-		this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString());
-		this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon());
-	}
-
-	public boolean getBoolean() {
-		return ((Boolean) this.object).booleanValue();
-	}
-
-	public void setBoolean(boolean b) {
-		this.setObject(Boolean.valueOf(b));
-	}
-
-	public char getChar() {
-		return ((Character) this.object).charValue();
-	}
-
-	public void setChar(char c) {
-		this.setObject(Character.valueOf(c));
-	}
-
-	public byte getByte() {
-		return ((Byte) this.object).byteValue();
-	}
-
-	public void setByte(byte b) {
-		this.setObject(Byte.valueOf(b));
-	}
-
-	public short getShort() {
-		return ((Short) this.object).shortValue();
-	}
-
-	public void setShort(short s) {
-		this.setObject(Short.valueOf(s));
-	}
-
-	public int getInt() {
-		return ((Integer) this.object).intValue();
-	}
-
-	public void setInt(int i) {
-		this.setObject(Integer.valueOf(i));
-	}
-
-	public long getLong() {
-		return ((Long) this.object).longValue();
-	}
-
-	public void setLong(long l) {
-		this.setObject(Long.valueOf(l));
-	}
-
-	public float getFloat() {
-		return ((Float) this.object).floatValue();
-	}
-
-	public void setFloat(float f) {
-		this.setObject(Float.valueOf(f));
-	}
-
-	public double getDouble() {
-		return ((Double) this.object).doubleValue();
-	}
-
-	public void setDouble(double d) {
-		this.setObject(Double.valueOf(d));
-	}
-
-
-	// ********** override methods **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.object);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java
deleted file mode 100644
index a600532..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import javax.swing.Icon;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.ListModel;
-
-/**
- * This implementation of ListChooser.Browser uses a
- * JOptionPane to prompt the user for the selection. Subclasses 
- * can change the dialog's title, message, and/or icon.
- */
-public class SimpleListBrowser
-	implements ListChooser.ListBrowser 
-{
-	/** Default constructor */
-	protected SimpleListBrowser() {
-		super();
-	}
-	
-	/**
-	 * Prompt the user using a JOptionPane.
-	 */
-	public void browse(ListChooser chooser) {
-		Object selection = 
-			JOptionPane.showInputDialog(
-				chooser, 
-				this.message(chooser), 
-				this.title(chooser), 
-				this.messageType(chooser), 
-				this.icon(chooser), 
-				this.selectionValues(chooser), 
-				this.initialSelectionValue(chooser)
-			);
-		
-		if (selection != null) {
-			chooser.getModel().setSelectedItem(selection);
-		}
-	}
-	
-	protected Object message(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-	
-	protected String title(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-	
-	protected int messageType(@SuppressWarnings("unused") JComboBox comboBox) {
-		return JOptionPane.QUESTION_MESSAGE;
-	}
-	
-	protected Icon icon(@SuppressWarnings("unused") JComboBox comboBox) {
-		return null;
-	}
-	
-	protected Object[] selectionValues(JComboBox comboBox) {
-		return this.convertToArray(comboBox.getModel());
-	}
-	
-	protected Object initialSelectionValue(JComboBox comboBox) {
-		return comboBox.getModel().getSelectedItem();
-	}
-	
-	/**
-	 * Convert the list of objects in the specified list model
-	 * into an array.
-	 */
-	protected Object[] convertToArray(ListModel model) {
-		int size = model.getSize();
-		Object[] result = new Object[size];
-		for (int i = 0; i < size; i++) {
-			result[i] = model.getElementAt(i);
-		}
-		return result;
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java
deleted file mode 100644
index 6bbd290..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Component;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.Icon;
-import javax.swing.JList;
-
-/**
- * This renderer should behave the same as the DefaultListCellRenderer;
- * but it slightly refactors the calculation of the icon and text of the list
- * cell so that subclasses can easily override the methods that build
- * the icon and text.
- * 
- * In most cases, you need only override:
- *     #buildIcon(Object value)
- *     #buildText(Object value)
- */
-public class SimpleListCellRenderer
-	extends DefaultListCellRenderer
-{
-
-	/**
-	 * Construct a simple renderer.
-	 */
-	public SimpleListCellRenderer() {
-		super();
-	}
-
-	@Override
-	public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		// substitute null for the cell value so nothing is drawn initially...
-		super.getListCellRendererComponent(list, null, index, isSelected, cellHasFocus);
-		this.setOpaque(true);
-
-		// ...then set the icon and text manually
-		this.setIcon(this.buildIcon(list, value, index, isSelected, cellHasFocus));
-		this.setText(this.buildText(list, value, index, isSelected, cellHasFocus));
-
-		this.setToolTipText(this.buildToolTipText(list, value, index, isSelected, cellHasFocus));
-
-		// the context will be initialized only if a reader is running
-		if (this.accessibleContext != null) {
-			this.accessibleContext.setAccessibleName(this.buildAccessibleName(list, value, index, isSelected, cellHasFocus));
-		}
-
-		return this;
-	}
-
-	/**
-	 * Return the icon representation of the specified cell
-	 * value and other settings. (Even more settings are
-	 * accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected Icon buildIcon(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) {
-		return this.buildIcon(value);
-	}
-
-	/**
-	 * Return the icon representation of the specified cell
-	 * value. The default is to display no icon at all unless the
-	 * value itself is an icon.
-	 */
-	protected Icon buildIcon(Object value) {
-		// replicate the default behavior
-		return (value instanceof Icon) ? (Icon) value : null;
-	}
-
-	/**
-	 * Return the textual representation of the specified cell
-	 * value and other settings. (Even more settings are
-	 * accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildText(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) {
-		return this.buildText(value);
-	}
-
-	/**
-	 * Return the textual representation of the specified cell
-	 * value. The default is to display the object's default string
-	 * representation (as returned by #toString()); unless the
-	 * value itself is an icon, in which case no text is displayed.
-	 */
-	protected String buildText(Object value) {
-		return (value instanceof Icon) ? "" : ((value == null) ? "" : value.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Return the text displayed when the cursor lingers over the specified cell.
-	 * (Even more settings are accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildToolTipText(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) {
-		return this.buildToolTipText(value);
-	}
-
-	/**
-	 * Return the text displayed when the cursor lingers over the specified cell.
-	 */
-	protected String buildToolTipText(@SuppressWarnings("unused") Object value) {
-		return null;
-	}
-
-	/**
-	 * Return the accessible name to be given to the component used to render
-	 * the given value and other settings. (Even more settings are accessible via
-	 * inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildAccessibleName(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) {
-		return this.buildAccessibleName(value);
-	}
-
-	/**
-	 * Return the accessible name to be given to the component used to render
-	 * the given value.
-	 */
-	protected String buildAccessibleName(@SuppressWarnings("unused") Object value) {
-		return null;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java
deleted file mode 100644
index f97ada2..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import javax.swing.BorderFactory;
-import javax.swing.JComponent;
-import javax.swing.JSpinner;
-import javax.swing.JTable;
-import javax.swing.SpinnerModel;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-/**
- * Make the cell look like a spinner.
- */
-public class SpinnerTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/** the component used to paint the cell */
-	protected JSpinner spinner;
-	
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-	
-	
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a cell renderer that uses the default
-	 * spinner model, which is a "number" model.
-	 */
-	public SpinnerTableCellRenderer() {
-		super();
-		this.initialize();
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * spinner model, which will determine how the values are displayed.
-	 */
-	public SpinnerTableCellRenderer(SpinnerModel model) {
-		this();
-		this.setModel(model);
-	}
-
-	protected void initialize() {
-		this.spinner = this.buildSpinner();
-	}
-
-	protected JSpinner buildSpinner() {
-		JSpinner s = new JSpinner();
-		s.addChangeListener(this.buildChangeListener());
-		return s;
-	}
-	
-	private ChangeListener buildChangeListener() {
-		return new ChangeListener() {
-			public void stateChanged(ChangeEvent e) {
-				if (SpinnerTableCellRenderer.this.immediateEditListener != null) {
-					SpinnerTableCellRenderer.this.immediateEditListener.immediateEdit();
-				}
-			}
-		};
-	}
-
-
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		this.spinner.setComponentOrientation(table.getComponentOrientation());
-		this.spinner.setFont(table.getFont());
-		this.spinner.setEnabled(table.isEnabled());
-
-		JComponent editor = this.editor();
-		editor.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column));
-		editor.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column));
-		this.spinner.setBorder(this.border(table, value, selected, hasFocus, row, column));
-
-		this.setValue(value);
-		return this.spinner;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellForeground"); //$NON-NLS-1$
-			}
-			return table.getSelectionForeground();
-		}
-		return table.getForeground();
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellBackground"); //$NON-NLS-1$
-			}
-			return table.getSelectionBackground();
-		}
-		return table.getBackground();
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) {
-		if (hasFocus) {
-			return UIManager.getBorder("Table.focusCellHighlightBorder"); //$NON-NLS-1$
-		}
-		if (selected) {
-			return BorderFactory.createLineBorder(table.getSelectionBackground(), 1);
-		}
-		return BorderFactory.createLineBorder(table.getBackground(), 1);
-	}
-
-	/**
-	 * Return the editor component whose colors should be set
-	 * by the renderer.
-	 */
-	protected JComponent editor() {
-		JComponent editor = this.spinner.getEditor();
-		if (editor instanceof JSpinner.DefaultEditor) {
-			// typically, the editor will be the default or one of its subclasses...
-			editor = ((JSpinner.DefaultEditor) editor).getTextField();
-		}
-		return editor;
-	}
-
-	/**
-	 * Set the spinner's value
-	 */
-	protected void setValue(Object value) {
-		// CR#3999318 - This null check needs to be removed once JDK bug is fixed
-		if (value == null) {
-			value = Integer.valueOf(0);
-		}
-		this.spinner.setValue(value);
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return this.spinner.getValue();
-	}
-	
-	public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Set the spinner's model.
-	 */
-	public void setModel(SpinnerModel model) {
-		this.spinner.setModel(model);
-	}
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the row height to something the spinner will look good in....
-	 */
-	public int preferredHeight() {
-		// add in space for the border top and bottom
-		return (int) this.spinner.getPreferredSize().getHeight() + 2;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java
deleted file mode 100644
index bfe82bb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.swing;
-
-import java.awt.Component;
-import javax.swing.AbstractCellEditor;
-import javax.swing.JTable;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableCellRenderer;
-
-/**
- * A table cell editor that wraps a table cell renderer.
- */
-public class TableCellEditorAdapter extends AbstractCellEditor implements TableCellEditor {
-
-	/** delegate to a renderer */
-	private Renderer renderer;
-	
-	
-	// ********** constructors/initialization **********
-	
-	private TableCellEditorAdapter() {
-		super();
-	}
-	
-	/**
-	 * Construct a cell editor that behaves like the specified renderer.
-	 */
-	public TableCellEditorAdapter(Renderer renderer) {
-		this();
-		this.initialize(renderer);
-	}
-	
-	protected void initialize(Renderer r) {
-		this.renderer = r;
-		r.setImmediateEditListener(this.buildImmediateEditListener());
-	}
-	
-	private ImmediateEditListener buildImmediateEditListener() {
-		return new ImmediateEditListener() {
-			public void immediateEdit() {
-				TableCellEditorAdapter.this.stopCellEditing();
-			}
-		};
-	}
-	
-	
-	// ********** CellEditor implementation **********
-	
-	public Object getCellEditorValue() {
-		return this.renderer.getValue();
-	}
-	
-	
-	// ********** TableCellEditor implementation **********
-
-	public Component getTableCellEditorComponent(JTable table, Object value, boolean selected, int row, int column) {
-		return this.renderer.getTableCellRendererComponent(table, value, selected, true, row, column);
-	}
-	
-	
-	// ********** Member classes **********************************************
-	
-	/**
-	 * This interface defines the methods that must be implemented by a renderer
-	 * that can be wrapped by a TableCellEditorAdapter.
-	 */
-	public interface Renderer extends TableCellRenderer {
-		
-		/**
-		 * Return the current value of the renderer.
-		 */
-		Object getValue();
-		
-		/**
-		 * Set the immediate edit listener
-		 */
-		void setImmediateEditListener(ImmediateEditListener listener);
-	}
-	
-	
-	public interface ImmediateEditListener {
-		
-		/**
-		 * Called when the renderer does an "immediate edit"
-		 */
-		void immediateEdit();
-	}
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java
deleted file mode 100644
index da4a234..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.synchronizers;
-
-import java.util.concurrent.ThreadFactory;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator;
-import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean;
-import org.eclipse.jpt.common.utility.synchronizers.Synchronizer;
-
-/**
- * This synchronizer will perform synchronizations in a separate thread,
- * allowing calls to {@link Synchronizer#synchronize()} to return immediately.
- * <p>
- * <strong>NB:</strong> The client-supplied command should handle any exceptions
- * appropriately (e.g. log the exception and return gracefully so the thread
- * can continue the synchronization process).
- */
-public class AsynchronousSynchronizer
-	implements Synchronizer
-{
-	/**
-	 * This flag is shared with the synchronization/consumer thread. Setting it to true
-	 * will trigger the synchronization to begin or, if the synchronization is
-	 * currently executing, to execute again, once the current execution is
-	 * complete.
-	 */
-	final SynchronizedBoolean synchronizeFlag = new SynchronizedBoolean(false);
-
-	/**
-	 * Most of the thread-related behavior is delegated to this coordinator.
-	 */
-	private final ConsumerThreadCoordinator consumerThreadCoordinator;
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct an asynchronous synchronizer that uses the specified command to
-	 * perform the synchronization.
-	 * Use simple JDK thread(s) for the synchronization thread(s).
-	 * Allow the synchronization thread(s) to be assigned
-	 * JDK-generated names.
-	 */
-	public AsynchronousSynchronizer(Command command) {
-		this(command, null, null);
-	}
-
-	/**
-	 * Construct an asynchronous synchronizer that uses the specified command to
-	 * perform the synchronization.
-	 * Use the specified thread factory to construct the synchronization thread(s).
-	 * Allow the synchronization thread(s) to be assigned
-	 * JDK-generated names.
-	 */
-	public AsynchronousSynchronizer(Command command, ThreadFactory threadFactory) {
-		this(command, threadFactory, null);
-	}
-
-	/**
-	 * Construct an asynchronous synchronizer that uses the specified command to
-	 * perform the synchronization. Assign the synchronization thread(s) the specified
-	 * name.
-	 * Use simple JDK thread(s) for the synchronization thread(s).
-	 */
-	public AsynchronousSynchronizer(Command command, String threadName) {
-		this(command, null, threadName);
-	}
-
-	/**
-	 * Construct an asynchronous synchronizer that uses the specified command to
-	 * perform the synchronization.
-	 * Use the specified thread factory to construct the synchronization thread(s).
-	 * Assign the synchronization thread(s) the specified
-	 * name.
-	 */
-	public AsynchronousSynchronizer(Command command, ThreadFactory threadFactory, String threadName) {
-		super();
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.consumerThreadCoordinator = new ConsumerThreadCoordinator(this.buildConsumer(command), threadFactory, threadName);
-	}
-
-	ConsumerThreadCoordinator.Consumer buildConsumer(Command command) {
-		return new Consumer(command);
-	}
-
-
-	// ********** Synchronizer implementation **********
-
-	/**
-	 * Build and start the synchronization thread, but postpone the first
-	 * synchronization until requested, i.e. via a call to
-	 * {@link #synchronize()}.
-	 * <p>
-	 * Note: We don't clear the "synchronize" flag here; so if the flag has
-	 * been set <em>before</em> getting here, the first synchronization will
-	 * start promptly (albeit, asynchronously).
-	 * The "synchronize" flag will be set if:<ul>
-	 * <li>{@link #synchronize()} was called after the synchronizer was
-	 *     constructed but before {@link #start()} was called; or
-	 * <li>{@link #synchronize()} was called after {@link #stop()} was called
-	 *     but before {@link #start()} was called (to restart the synchronizer); or
-	 * <li>{@link #stop()} was called when there was an outstanding request
-	 *     for a synchronization (i.e. the "synchronization" flag was set at
-	 *     the time {@link #stop()} was called)
-	 * </ul>
-	 */
-	public void start() {
-		this.consumerThreadCoordinator.start();
-	}
-
-	/**
-	 * Set the "synchronize" flag so the synchronization thread will either<ul>
-	 * <li>if the thread is quiesced, start a synchronization immediately, or
-	 * <li>if the thread is currently executing a synchronization, execute another
-	 *     synchronization once the current synchronization is complete
-	 * </ul>
-	 */
-	public void synchronize() {
-		this.synchronizeFlag.setTrue();
-	}
-
-	/**
-	 * Interrupt the synchronization thread so that it stops executing at the
-	 * end of the current synchronization. Suspend the current thread until
-	 * the synchronization thread is finished executing. If any uncaught
-	 * exceptions were thrown while the synchronization thread was executing,
-	 * wrap them in a composite exception and throw the composite exception.
-	 */
-	public void stop() {
-		this.consumerThreadCoordinator.stop();
-	}
-
-
-	// ********** consumer **********
-
-	/**
-	 * This implementation of {@link ConsumerThreadCoordinator.Consumer}
-	 * will execute the client-supplied "synchronize" command.
-	 * It will wait until the shared "synchronize" flag is set to execute the
-	 * command. Once the comand is executed, the thread will quiesce until
-	 * the flag is set again. If the flag was set during the execution of the
-	 * command (either recursively by the command itself or by another thread),
-	 * the command will be re-executed immediately. Stop the thread by calling
-	 * {@link Thread#interrupt()}.
-	 */
-	class Consumer
-		implements ConsumerThreadCoordinator.Consumer
-	{
-		/**
-		 * The client-supplied command that executes on the
-		 * synchronization/consumer thread.
-		 */
-		private final Command command;
-
-		Consumer(Command command) {
-			super();
-			this.command = command;
-		}
-
-		/**
-		 * Wait until the "synchronize" flag is set,
-		 * then clear it and allow the "synchronize" command to execute.
-		 */
-		public void waitForProducer() throws InterruptedException {
-			AsynchronousSynchronizer.this.synchronizeFlag.waitToSetFalse();
-		}
-
-		/**
-		 * Execute the client-supplied command.
-		 */
-		public void execute() {
-			this.command.execute();
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java
deleted file mode 100644
index 06af819..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.synchronizers;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer;
-
-/**
- * Extend the asynchronous synchronizer to notify listeners
- * when a synchronization "cycle" is complete; i.e. the synchronization has,
- * for the moment, handled every outstanding "synchronize" request and quiesced.
- * This notification is <em>not</em> guaranteed to occur with <em>every</em>
- * synchronization "cycle"; since other, unrelated, synchronizations can be
- * triggered concurrently.
- * <p>
- * <strong>NB:</strong> Listeners should handle any exceptions
- * appropriately (e.g. log the exception and return gracefully so the thread
- * can continue the synchronization process).
- */
-public class CallbackAsynchronousSynchronizer
-	extends AsynchronousSynchronizer
-	implements CallbackSynchronizer
-{
-	private final ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct a callback asynchronous synchronizer that uses the specified
-	 * command to perform the synchronization. Allow the synchronization thread(s)
-	 * to be assigned JDK-generated names.
-	 */
-	public CallbackAsynchronousSynchronizer(Command command) {
-		super(command);
-	}
-
-	/**
-	 * Construct a callback asynchronous synchronizer that uses the specified
-	 * command to perform the synchronization. Assign the synchronization thread(s)
-	 * the specified name.
-	 */
-	public CallbackAsynchronousSynchronizer(Command command, String threadName) {
-		super(command, threadName);
-	}
-
-	/**
-	 * Build a consumer that will let us know when the synchronization has
-	 * quiesced.
-	 */
-	@Override
-	ConsumerThreadCoordinator.Consumer buildConsumer(Command command) {
-		return new CallbackConsumer(command);
-	}
-
-
-	// ********** CallbackSynchronizer implementation **********
-
-	public void addListener(Listener listener) {
-		this.listenerList.add(listener);
-	}
-
-	public void removeListener(Listener listener) {
-		this.listenerList.remove(listener);
-	}
-
-	/**
-	 * Notify our listeners.
-	 */
-	void synchronizationQuiesced() {
-		for (Listener listener : this.listenerList.getListeners()) {
-			listener.synchronizationQuiesced(this);
-		}
-	}
-
-
-	// ********** synchronization thread runnable **********
-
-	/**
-	 * Extend {@link AsynchronousSynchronizer.Consumer}
-	 * to notify the synchronizer when the synchronization has quiesced
-	 * (i.e. the command has finished executing and there are no further
-	 * requests for synchronization).
-	 * Because synchronization is asynchronous, no other thread will be able to
-	 * initiate another synchronization until the synchronizer's listeners have been
-	 * notified. Note also, the synchronizer's listeners can, themselves,
-	 * trigger another synchronization (by directly or indirectly calling
-	 * {@link org.eclipse.jpt.common.utility.synchronizers.Synchronizer#synchronize()});
-	 * but this synchronization will not occur until <em>after</em> all the
-	 * listeners have been notified.
-	 */
-	class CallbackConsumer
-		extends Consumer
-	{
-		CallbackConsumer(Command command) {
-			super(command);
-		}
-
-		@Override
-		public void execute() {
-			super.execute();
-			// hmmm - we will notify listeners even when we our thread is "interrupted";
-			// that seems ok...  ~bjv
-			if (CallbackAsynchronousSynchronizer.this.synchronizeFlag.isFalse()) {
-				CallbackAsynchronousSynchronizer.this.synchronizationQuiesced();
-			}
-		}
-
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java
deleted file mode 100644
index d811067..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.synchronizers;
-
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer;
-
-/**
- * Extend the synchronous synchronizer to notify listeners
- * when a synchronization "cycle" is complete; i.e. the synchronization has,
- * for the moment, handled every "synchronize" request and quiesced.
- * This notification is <em>not</em> guaranteed to occur with <em>every</em>
- * synchronization "cycle";
- * since other, unrelated, synchronizations can be triggered concurrently.
- * <p>
- * <strong>NB:</strong> If another synchronization is initiated while we are
- * notifying the synchronizer's listeners (i.e. the 'again' flag is set), it will not
- * start until all the listeners are notified.
- * Note also, the synchronizer's listeners can, themselves,
- * trigger another synchronization (by directly or indirectly calling
- * {@link org.eclipse.jpt.common.utility.synchronizers.Synchronizer#synchronize()});
- * but this synchronization will not occur until <em>after</em> all the
- * listeners have been notified.
- */
-public class CallbackSynchronousSynchronizer
-	extends SynchronousSynchronizer
-	implements CallbackSynchronizer
-{
-	private final ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct a callback synchronous synchronizer that uses the specified
-	 * command to perform the synchronization.
-	 */
-	public CallbackSynchronousSynchronizer(Command command) {
-		super(command);
-	}
-
-
-	// ********** CallbackSynchronizer implementation **********
-
-	public void addListener(Listener listener) {
-		this.listenerList.add(listener);
-	}
-
-	public void removeListener(Listener listener) {
-		this.listenerList.remove(listener);
-	}
-
-	/**
-	 * Notify our listeners.
-	 */
-	private void synchronizationQuiesced() {
-		for (Listener listener : this.listenerList.getListeners()) {
-			listener.synchronizationQuiesced(this);
-		}
-	}
-
-
-	// ********** override **********
-
-	@Override
-	void execute_() {
-		super.execute_();
-		if (this.state.getValue() != State.REPEAT) {
-			// hmmm - we will notify listeners even when we are "stopped";
-			// that seems ok...  ~bjv
-			this.synchronizationQuiesced();
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java
deleted file mode 100644
index 7a232f6..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.internal.synchronizers;
-
-import java.util.Vector;
-import org.eclipse.jpt.common.utility.Command;
-import org.eclipse.jpt.common.utility.internal.CompositeException;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.SynchronizedObject;
-import org.eclipse.jpt.common.utility.synchronizers.Synchronizer;
-
-/**
- * This synchronizer will synchronize immediately and not return until the
- * synchronization and any nested (recursive) synchronizations are complete.
- * In some situations this implementation should be used sparingly, and for as
- * short a time as possible, as it increases the probability of deadlocks. A
- * deadlock can occur when {@link Synchronizer#synchronize()} is called from multiple
- * threads and multiple resources are locked by the synchronization in varying
- * orders.
- * <p>
- * As defined in the {@link Synchronizer} interface, {@link Synchronizer#start()}
- * and {@link Synchronizer#stop()}
- * should be called in the same thread, but it is not required.
- * {@link Synchronizer#synchronize()} should
- * always be called in the same thread (i.e. only recursively, beyond the
- * initial call); although, this too is not required.
- * This thread need not be the same thread that executes
- * {@link Synchronizer#start()} and {@link Synchronizer#stop()}.
- */
-public class SynchronousSynchronizer
-	implements Synchronizer
-{
-	/**
-	 * The client-supplied command that performs the synchronization. It may
-	 * trigger further calls to {@link #synchronize()} (i.e. the
-	 * synchronization may recurse).
-	 */
-	private final Command command;
-
-	/**
-	 * The synchronizer's current state.
-	 */
-	final SynchronizedObject<State> state;
-
-	/**
-	 * The synchronizer's initial state is {@link #STOPPED}.
-	 */
-	enum State {
-		STOPPED,
-		READY,
-		EXECUTING,
-		REPEAT,
-		STOPPING
-	}
-
-	/**
-	 * A list of the uncaught exceptions thrown by the command.
-	 */
-	final Vector<Throwable> exceptions = new Vector<Throwable>();
-
-
-	// ********** construction **********
-
-	/**
-	 * Construct a synchronous synchronizer that uses the specified command to
-	 * perform the synchronization.
-	 */
-	public SynchronousSynchronizer(Command command) {
-		super();
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.command = command;
-		// use the synchronizer as the mutex so it is freed up by the wait in #stop()
-		this.state = new SynchronizedObject<State>(State.STOPPED, this);
-	}
-
-
-	// ********** Synchronizer implementation **********
-
-	/**
-	 * Set the synchronizer's {@link #state} to {@link State#READY READY}
-	 * and execute the first synchronization. Throw an exception if the
-	 * synchronizer is not {@link State#STOPPED STOPPED}.
-	 */
-	public synchronized void start() {
-		switch (this.state.getValue()) {
-			case STOPPED:
-				this.state.setValue(State.READY);
-				this.synchronize();
-				break;
-			case READY:
-			case EXECUTING:
-			case REPEAT:
-			case STOPPING:
-			default:
-				throw this.buildIllegalStateException();
-		}
-	}
-
-	/**
-	 * It's possible to come back here if the synchronization command recurses
-	 * and triggers another synchronization.
-	 */
-	public void synchronize() {
-		if (this.beginSynchronization()) {
-			this.synchronize_();
-		}
-	}
-
-	/**
-	 * A client has requested a synchronization.
-	 * Return whether we can begin a new synchronization.
-	 * If a synchronization is already under way, return <code>false</code>;
-	 * but set the {@link #state} to {@link State#REPEAT REPEAT}
-	 * so another synchronization will occur once the current
-	 * synchronization is complete.
-	 */
-	private synchronized boolean beginSynchronization() {
-		switch (this.state.getValue()) {
-			case STOPPED:
-				// synchronization is not allowed
-				return false;
-			case READY:
-				// begin a new synchronization
-				this.state.setValue(State.EXECUTING);
-				return true;
-			case EXECUTING:
-				// set flag so a new synchronization will occur once the current one is finished
-				this.state.setValue(State.REPEAT);
-				return false;
-			case REPEAT:
-				// the "repeat" flag is already set
-				return false;
-			case STOPPING:
-				// no further synchronizations are allowed
-				return false;
-			default:
-				throw this.buildIllegalStateException();
-		}
-	}
-
-	/**
-	 * This method should be called only once per set of "recursing"
-	 * synchronizations. Any recursive call to {@link #synchronize()} will
-	 * simply set the {@link #state} to {@link State#REPEAT REPEAT},
-	 * causing the command to execute again.
-	 */
-	private void synchronize_() {
-		do {
-			this.execute();
-		} while (this.repeatSynchronization());
-	}
-
-	/**
-	 * Execute the client-supplied command. Do not allow any unhandled
-	 * exceptions to kill the thread. Store them up for later pain.
-	 */
-	private void execute() {
-		try {
-			this.execute_();
-		} catch (Throwable ex) {
-			this.exceptions.add(ex);
-		}
-	}
-
-	/**
-	 * By default, just execute the command.
-	 */
-	void execute_() {
-		this.command.execute();
-	}
-
-	/**
-	 * The current synchronization has finished.
-	 * Return whether we should begin another synchronization.
-	 */
-	private synchronized boolean repeatSynchronization() {
-		switch (this.state.getValue()) {
-			case STOPPED:
-			case READY:
-				throw this.buildIllegalStateException();
-			case EXECUTING:
-				// synchronization has finished and there are no outstanding requests for another; return to "ready"
-				this.state.setValue(State.READY);
-				return false;
-			case REPEAT:
-				// the "repeat" flag was set; clear it and start another synchronization
-				this.state.setValue(State.EXECUTING);
-				return true;
-			case STOPPING:
-				// a client has initiated a "stop"; mark the "stop" complete and perform no more synchronizations
-				this.state.setValue(State.STOPPED);
-				return false;
-			default:
-				throw this.buildIllegalStateException();
-		}
-	}
-
-	/**
-	 * Set the flags so that no further synchronizations occur. If any uncaught
-	 * exceptions were thrown while the synchronization was executing,
-	 * wrap them in a composite exception and throw the composite exception.
-	 */
-	public synchronized void stop() {
-		switch (this.state.getValue()) {
-			case STOPPED:
-				throw this.buildIllegalStateException();
-			case READY:
-				// simply return to "stopped" state
-				this.state.setValue(State.STOPPED);
-				break;
-			case EXECUTING:
-			case REPEAT:
-				// set the "stopping" flag and wait until the synchronization has finished
-				this.state.setValue(State.STOPPING);
-				this.waitUntilStopped();
-				break;
-			case STOPPING:
-				throw this.buildIllegalStateException();
-			default:
-				throw this.buildIllegalStateException();
-		}
-
-		if (this.exceptions.size() > 0) {
-			Throwable[] temp = this.exceptions.toArray(new Throwable[this.exceptions.size()]);
-			this.exceptions.clear();
-			throw new CompositeException(temp);
-		}
-	}
-
-	/**
-	 * This wait will free up the synchronizer's synchronized methods
-	 * (since the synchronizer is the state's mutex).
-	 */
-	private void waitUntilStopped() {
-		try {
-			this.state.waitUntilValueIs(State.STOPPED);
-		} catch (InterruptedException ex) {
-			// the thread that called #stop() was interrupted while waiting
-			// for the synchronization to finish - ignore;
-			// 'state' is still set to 'STOPPING', so the #synchronize_() loop
-			// will still stop - we just won't wait around for it...
-		}
-	}
-
-	private IllegalStateException buildIllegalStateException() {
-		return new IllegalStateException("state: " + this.state); //$NON-NLS-1$
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.state);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java
deleted file mode 100644
index 050cb25..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model;
-
-import org.eclipse.jpt.common.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener;
-
-/**
- * Interface to be implemented by models that notify listeners of
- * changes to bound properties, collections, lists, and/or trees.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @see ChangeListener
- * @see StateChangeListener
- * @see PropertyChangeListener
- * @see CollectionChangeListener
- * @see ListChangeListener
- * @see TreeChangeListener
- * @see org.eclipse.jpt.common.utility.internal.model.AbstractModel
- */
-// TODO use objects (IDs?) instead of strings to identify aspects?
-public interface Model {
-
-	// ********** change **********
-
-	/**
-	 * Add a listener that listens to all change events.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addChangeListener(ChangeListener listener);
-
-	/**
-	 * Remove the specified change listener.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removeChangeListener(ChangeListener listener);
-
-
-	// ********** state change **********
-
-	/**
-	 * Add a listener that listens to all state change events.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addStateChangeListener(StateChangeListener listener);
-
-	/**
-	 * Remove the specified state change listener.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removeStateChangeListener(StateChangeListener listener);
-
-
-	// ********** property change **********
-
-	/**
-	 * Add a listener that listens to all property change events with
-	 * the specified property name.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all property change events,
-	 * with the specified property name.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
-
-
-	// ********** collection change **********
-
-	/**
-	 * Add a listener that listens to all collection change events with
-	 * the specified collection name.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addCollectionChangeListener(String collectionName, CollectionChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all collection change events,
-	 * with the specified collection name.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener);
-
-
-	// ********** list change **********
-
-	/**
-	 * Add a listener that listens to all list change events with
-	 * the specified list name.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addListChangeListener(String listName, ListChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all list change events,
-	 * with the specified list name.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removeListChangeListener(String listName, ListChangeListener listener);
-
-
-	// ********** tree change **********
-
-	/**
-	 * Add a listener that listens to all tree change events with
-	 * the specified tree name.
-	 * Throw an exception if the same listener is added more than once.
-	 * The listener cannot be null.
-	 */
-	void addTreeChangeListener(String treeName, TreeChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all tree change events,
-	 * with the specified tree name.
-	 * Throw an exception if the listener is null or if the listener was never added.
-	 */
-	void removeTreeChangeListener(String treeName, TreeChangeListener listener);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java
deleted file mode 100644
index 9d702ba..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.EventObject;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Abstract class for all the change events that can be fired by models.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class ChangeEvent extends EventObject {
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a new change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 */
-	protected ChangeEvent(Model source) {
-		super(source);
-	}
-
-	/**
-	 * Covariant override.
-	 */
-	@Override
-	public Model getSource() {
-		return (Model) super.getSource();
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		StringTools.buildSimpleToStringOn(this, sb);
-		sb.append('(');
-		int len = sb.length();
-		this.toString(sb);
-		if (sb.length() == len) {
-			sb.deleteCharAt(len - 1);
-		} else {
-			sb.append(')');
-		}
-		return sb.toString();
-	}
-
-	protected void toString(@SuppressWarnings("unused") StringBuilder sb) {
-		// subclasses should override this to do something a bit more helpful
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java
deleted file mode 100644
index c2a2e7b..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "collection add" event gets delivered whenever a model adds items to a
- * "bound" or "constrained" collection. A <code>CollectionAddEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-/* 
- * Design options:
- * - create a collection to wrap a single added or removed item
- * 	(this is the option we implemented below and in collaborating code)
- * 	since there is no way to optimize downstream code for
- * 	single items, we take another performance hit by building
- * 	a collection each time  (@see Collections#singleton(Object))
- * 	and forcing downstream code to use an iterator every time
- * 
- * - fire a separate event for each item added or removed
- * 	eliminates any potential for optimizations to downstream code
- * 
- * - add protocol to support both single items and collections
- * 	adds conditional logic to downstream code
- */
-public final class CollectionAddEvent extends CollectionEvent {
-
-	/** The items added to the collection. */
-	private final Object[] items;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new collection add event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 * @param item The item added to the collection.
-	 */
-	public CollectionAddEvent(Model source, String collectionName, Object item) {
-		this(source, collectionName, new Object[] {item});
-	}
-
-	/**
-	 * Construct a new collection add event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 * @param items The items added to the collection.
-	 */
-	public CollectionAddEvent(Model source, String collectionName, Collection<?> items) {
-		this(source, collectionName, items.toArray());  // NPE if 'items' is null
-	}
-
-	private CollectionAddEvent(Model source, String collectionName, Object[] items) {
-		super(source, collectionName);
-		this.items = items;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the items added to the collection.
-	 */
-	public Iterable<?> getItems() {
-		return new ArrayIterable<Object>(this.items);
-	}
-
-	/**
-	 * Return the number of items added to the collection.
-	 */
-	public int getItemsSize() {
-		return this.items.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.items);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public CollectionAddEvent clone(Model newSource) {
-		return this.clone(newSource, this.collectionName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public CollectionAddEvent clone(Model newSource, String newCollectionName) {
-		return new CollectionAddEvent(newSource, newCollectionName, this.items);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java
deleted file mode 100644
index 5c2c759..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "collection change" event gets delivered whenever a model changes a "bound"
- * or "constrained" collection in a manner that is not easily characterized by
- * the other collection events.
- * A <code>CollectionChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}.
- * A <code>CollectionChangeEvent</code> is accompanied by the collection name and
- * the current state of the collection.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class CollectionChangeEvent extends CollectionEvent {
-
-	/**
-	 * The the collection in its current state.
-	 * Clients will need to calculate the necessary changes to synchronize
-	 * with the collection.
-	 */
-	private final Object[] collection;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new collection change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 */
-	public CollectionChangeEvent(Model source, String collectionName, Collection<?> collection) {
-		this(source, collectionName, collection.toArray());  // NPE if 'collection' is null
-	}
-
-	private CollectionChangeEvent(Model source, String collectionName, Object[] collection) {
-		super(source, collectionName);
-		this.collection = collection;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the current state of the collection.
-	 */
-	public Iterable<?> getCollection() {
-		return new ArrayIterable<Object>(this.collection);
-	}
-
-	/**
-	 * Return the number of items in the current state of the collection.
-	 */
-	public int getCollectionSize() {
-		return this.collection.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.collection);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public CollectionChangeEvent clone(Model newSource) {
-		return this.clone(newSource, this.collectionName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public CollectionChangeEvent clone(Model newSource, String newCollectionName) {
-		return new CollectionChangeEvent(newSource, newCollectionName, this.collection);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java
deleted file mode 100644
index 0fb2adc..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "collection clear" event gets delivered whenever a model clears
- * a "bound" or "constrained" collection. A <code>CollectionClearEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class CollectionClearEvent extends CollectionEvent {
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new collection clear event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 */
-	public CollectionClearEvent(Model source, String collectionName) {
-		super(source, collectionName);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public CollectionClearEvent clone(Model newSource) {
-		return this.clone(newSource, this.collectionName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public CollectionClearEvent clone(Model newSource, String newCollectionName) {
-		return new CollectionClearEvent(newSource, newCollectionName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java
deleted file mode 100644
index d3e0bda..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-// TODO add "item/original/nested event" for item changed?
-/**
- * A "collection" event gets delivered whenever a model changes a "bound"
- * or "constrained" collection. A <code>CollectionEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}.
- * The intent is that any listener
- * can keep itself synchronized with the model's collection via the collection
- * events it receives and need not maintain a reference to the original
- * collection.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class CollectionEvent extends ChangeEvent {
-
-	/** Name of the collection that changed. */
-	final String collectionName;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a new collection event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 */
-	public CollectionEvent(Model source, String collectionName) {
-		super(source);
-		if (collectionName == null) {
-			throw new NullPointerException();
-		}
-		this.collectionName = collectionName;
-	}
-
-	/**
-	 * Return the programmatic name of the collection that was changed.
-	 */
-	public String getCollectionName() {
-		return this.collectionName;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		sb.append(this.collectionName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java
deleted file mode 100644
index a12218d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "collection remove" event gets delivered whenever a model removes items
- * from a "bound" or "constrained" collection. A <code>CollectionRemoveEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-/*
- * See design discussion in CollectionAddEvent
- */
-public final class CollectionRemoveEvent extends CollectionEvent {
-
-	/** The items removed from the collection. */
-	private final Object[] items;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new collection remove event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 * @param item The item removed from the collection.
-	 */
-	public CollectionRemoveEvent(Model source, String collectionName, Object item) {
-		this(source, collectionName, new Object[] {item});
-	}
-
-	/**
-	 * Construct a new collection remove event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 * @param items The items removed from the collection.
-	 */
-	public CollectionRemoveEvent(Model source, String collectionName, Collection<?> items) {
-		this(source, collectionName, items.toArray());  // NPE if 'items' is null
-	}
-
-	private CollectionRemoveEvent(Model source, String collectionName, Object[] items) {
-		super(source, collectionName);
-		this.items = items;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the items removed from the collection.
-	 */
-	public Iterable<?> getItems() {
-		return new ArrayIterable<Object>(this.items);
-	}
-
-	/**
-	 * Return the number of items removed from the collection.
-	 */
-	public int getItemsSize() {
-		return this.items.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.items);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public CollectionRemoveEvent clone(Model newSource) {
-		return this.clone(newSource, this.collectionName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public CollectionRemoveEvent clone(Model newSource, String newCollectionName) {
-		return new CollectionRemoveEvent(newSource, newCollectionName, this.items);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java
deleted file mode 100644
index 900740a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list add" event gets delivered whenever a model adds items to a
- * "bound" or "constrained" list. A <code>ListAddEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-/*
- * See design discussion in CollectionAddEvent
- */
-public final class ListAddEvent extends ListEvent {
-
-	/** The index at which the items were added. */
-	private final int index;
-
-	/** The items added to the list. */
-	private final Object[] items;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new list add event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the items were added.
-	 * @param item The item added to the list.
-	 */
-	public ListAddEvent(Model source, String listName, int index, Object item) {
-		this(source, listName, index, new Object[] {item});
-	}
-
-	/**
-	 * Construct a new list add event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the items were added.
-	 * @param items The items added to the list.
-	 */
-	public ListAddEvent(Model source, String listName, int index, List<?> items) {
-		this(source, listName, index, items.toArray());  // NPE if 'items' is null
-	}
-
-	private ListAddEvent(Model source, String listName, int index, Object[] items) {
-		super(source, listName);
-		this.index = index;
-		this.items = items;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the index at which the items were added to the list.
-	 */
-	public int getIndex() {
-		return this.index;
-	}
-
-	/**
-	 * Return the items added to the list.
-	 */
-	public Iterable<?> getItems() {
-		return new ArrayIterable<Object>(this.items);
-	}
-
-	/**
-	 * Return the number of items added to the list.
-	 */
-	public int getItemsSize() {
-		return this.items.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.items);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListAddEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListAddEvent clone(Model newSource, String newListName) {
-		return this.clone(newSource, newListName, 0);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name and displacing
-	 * the index by the specified amount.
-	 */
-	public ListAddEvent clone(Model newSource, String newListName, int offset) {
-		return new ListAddEvent(newSource, newListName, this.index + offset, this.items);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java
deleted file mode 100644
index ebcf291..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list change" event gets delivered whenever a model changes a "bound"
- * or "constrained" list in a manner that is not easily characterized by
- * the other list events.
- * A <code>ListChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * A <code>ListChangeEvent</code> is accompanied by the list name and
- * the current state of the list.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class ListChangeEvent extends ListEvent {
-
-	/**
-	 * The the list in its current state.
-	 * Clients will need to calculate the necessary changes to synchronize
-	 * with the list.
-	 */
-	private final Object[] list;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new list change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 */
-	public ListChangeEvent(Model source, String listName, List<?> list) {
-		this(source, listName, list.toArray());  // NPE if 'list' is null
-	}
-
-	private ListChangeEvent(Model source, String listName, Object[] list) {
-		super(source, listName);
-		this.list = list;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the current state of the list.
-	 */
-	public Iterable<?> getList() {
-		return new ArrayIterable<Object>(this.list);
-	}
-
-	/**
-	 * Return the number of items in the current state of the list.
-	 */
-	public int getListSize() {
-		return this.list.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.list);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListChangeEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListChangeEvent clone(Model newSource, String newListName) {
-		return new ListChangeEvent(newSource, newListName, this.list);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java
deleted file mode 100644
index 8faf558..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list clear" event gets delivered whenever a model clears
- * a "bound" or "constrained" list. A <code>ListClearEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class ListClearEvent extends ListEvent {
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct a new list clear event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 */
-	public ListClearEvent(Model source, String listName) {
-		super(source, listName);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListClearEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListClearEvent clone(Model newSource, String newListName) {
-		return new ListClearEvent(newSource, newListName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java
deleted file mode 100644
index acd3458..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-// TODO add "item/original/nested event" for item changed?
-/**
- * A "list" event gets delivered whenever a model changes a "bound"
- * or "constrained" list. A <code>ListEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * The intent is that any listener
- * can keep itself synchronized with the model's list via the list
- * events it receives and need not maintain a reference to the original
- * list.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ListEvent extends ChangeEvent {
-
-	/** Name of the list that changed. */
-	final String listName;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a new list event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 */
-	public ListEvent(Model source, String listName) {
-		super(source);
-		if (listName == null) {
-			throw new NullPointerException();
-		}
-		this.listName = listName;
-	}
-
-	/**
-	 * Return the programmatic name of the list that was changed.
-	 */
-	public String getListName() {
-		return this.listName;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		sb.append(this.listName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java
deleted file mode 100644
index 4627edb..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list move" event gets delivered whenever a model moves the elements in
- * a "bound" or "constrained" list. A <code>ListMoveEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class ListMoveEvent extends ListEvent {
-
-	/** The index to which the items were moved. */
-	private final int targetIndex;
-
-	/** The index from which the items were moved. */
-	private final int sourceIndex;
-
-	/** The number of items moved. */
-	private final int length;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct a new list move event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param targetIndex The index to which the items were moved.
-	 * @param sourceIndex The index from which the items were moved.
-	 * @param length The number of items moved.
-	 */
-	public ListMoveEvent(Model source, String listName, int targetIndex, int sourceIndex, int length) {
-		super(source, listName);
-		this.targetIndex = targetIndex;
-		this.sourceIndex = sourceIndex;
-		this.length = length;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the index to which the items were moved.
-	 */
-	public int getTargetIndex() {
-		return this.targetIndex;
-	}
-
-	/**
-	 * Return the index from which the items were moved.
-	 */
-	public int getSourceIndex() {
-		return this.sourceIndex;
-	}
-
-	/**
-	 * Return the number of items moved.
-	 */
-	public int getLength() {
-		return this.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		sb.append(this.sourceIndex);
-		sb.append(" => "); //$NON-NLS-1$
-		sb.append(this.targetIndex);
-		sb.append(" length="); //$NON-NLS-1$
-		sb.append(this.length);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListMoveEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListMoveEvent clone(Model newSource, String newListName) {
-		return this.clone(newSource, newListName, 0);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name and displacing
-	 * the index by the specified amount.
-	 */
-	public ListMoveEvent clone(Model newSource, String newListName, int offset) {
-		return new ListMoveEvent(newSource, newListName, this.targetIndex + offset, this.sourceIndex + offset, this.length);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java
deleted file mode 100644
index 41b82d8..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list remove" event gets delivered whenever a model removes items
- * from a "bound" or "constrained" list. A <code>ListRemoveEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-/*
- * See design discussion in CollectionAddEvent
- */
-public final class ListRemoveEvent extends ListEvent {
-
-	/** The index at which the items were removed. */
-	private final int index;
-
-	/** The items removed from the list. */
-	private final Object[] items;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new list remove event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the list that was changed.
-	 * @param index The index at which the items were removed.
-	 * @param item The item removed from the list.
-	 */
-	public ListRemoveEvent(Model source, String listName, int index, Object item) {
-		this(source, listName, index, new Object[] {item});
-	}
-
-	/**
-	 * Construct a new list remove event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the list that was changed.
-	 * @param index The index at which the items were removed.
-	 * @param items The items removed from the list.
-	 */
-	public ListRemoveEvent(Model source, String listName, int index, Collection<?> items) {
-		this(source, listName, index, items.toArray());  // NPE if 'items' is null
-	}
-
-	private ListRemoveEvent(Model source, String listName, int index, Object[] items) {
-		super(source, listName);
-		this.index = index;
-		this.items = items;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the index at which the items were removed from the list.
-	 */
-	public int getIndex() {
-		return this.index;
-	}
-
-	/**
-	 * Return the items removed from the list.
-	 */
-	public Iterable<?> getItems() {
-		return new ArrayIterable<Object>(this.items);
-	}
-
-	/**
-	 * Return the number of items removed from the list.
-	 */
-	public int getItemsSize() {
-		return this.items.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.items);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListRemoveEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListRemoveEvent clone(Model newSource, String newListName) {
-		return this.clone(newSource, newListName, 0);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name and displacing
-	 * the index by the specified amount.
-	 */
-	public ListRemoveEvent clone(Model newSource, String newListName, int offset) {
-		return new ListRemoveEvent(newSource, newListName, this.index + offset, this.items);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java
deleted file mode 100644
index dd6f376..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "list replace" event gets delivered whenever a model replaces items in a
- * "bound" or "constrained" list. A <code>ListReplaceEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class ListReplaceEvent extends ListEvent {
-
-	/** The index at which the items were replaced. */
-	private final int index;
-
-	/** The new items that replaced the old items in the list. */
-	private final Object[] newItems;
-
-	/** The old items that were replaced by the new items in the list. */
-	private final Object[] oldItems;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new list replace event for a list of replaced items.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the item in the list was replaced.
-	 * @param newItem The new item in the list.
-	 * @param oldItem The old item in the list that were replaced.
-	 */
-	public ListReplaceEvent(Model source, String listName, int index, Object newItem, Object oldItem) {
-		this(source, listName, index, new Object[] {newItem}, new Object[] {oldItem});
-	}
-
-	/**
-	 * Construct a new list replace event for a list of replaced items.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the items in the list were replaced.
-	 * @param newItems The new items in the list.
-	 * @param oldItems The old items in the list that were replaced.
-	 */
-	public ListReplaceEvent(Model source, String listName, int index, List<?> newItems, List<?> oldItems) {
-		this(source, listName, index, newItems.toArray(), oldItems.toArray());  // NPE if either 'newItems' or 'oldItems' is null
-	}
-
-	private ListReplaceEvent(Model source, String listName, int index, Object[] newItems, Object[] oldItems) {
-		super(source, listName);
-		if (newItems.length != oldItems.length) {
-			throw new IllegalArgumentException("sizes must match - new items size: " + newItems.length //$NON-NLS-1$
-					+ " old items size: " + oldItems.length); //$NON-NLS-1$
-		}
-		this.index = index;
-		this.newItems = newItems;
-		this.oldItems = oldItems;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the index at which the items were replaced in the list.
-	 */
-	public int getIndex() {
-		return this.index;
-	}
-
-	/**
-	 * Return the new items that replaced the old items in the list.
-	 */
-	public Iterable<?> getNewItems() {
-		return new ArrayIterable<Object>(this.newItems);
-	}
-
-	/**
-	 * Return the old items that were replaced by the new items in the list.
-	 */
-	public Iterable<?> getOldItems() {
-		return new ArrayIterable<Object>(this.oldItems);
-	}
-
-	/**
-	 * Return the number of items that were replaced.
-	 */
-	public int getItemsSize() {
-		return this.newItems.length;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		super.toString(sb);
-		sb.append(": "); //$NON-NLS-1$
-		StringTools.append(sb, this.oldItems);
-		sb.append(" => "); //$NON-NLS-1$
-		StringTools.append(sb, this.newItems);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public ListReplaceEvent clone(Model newSource) {
-		return this.clone(newSource, this.listName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListReplaceEvent clone(Model newSource, String newListName) {
-		return this.clone(newSource, newListName, 0);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name and displacing
-	 * the index by the specified amount.
-	 */
-	public ListReplaceEvent clone(Model newSource, String newListName, int offset) {
-		return new ListReplaceEvent(newSource, newListName, this.index + offset, this.newItems, this.oldItems);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java
deleted file mode 100644
index 55c7475..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "property change" event gets delivered whenever a model changes a "bound"
- * or "constrained" property. A <code>PropertyChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener}.
- * A <code>PropertyChangeEvent</code> is accompanied by the old and new values
- * of the property.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class PropertyChangeEvent extends ChangeEvent {
-
-	/** Name of the property that changed. */
-	private final String propertyName;
-
-	/** The property's old value, before the change. */
-	private final Object oldValue;
-
-	/** The property's new value, after the change. */
-	private final Object newValue;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new property change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param propertyName The programmatic name of the property that was changed.
-	 * @param oldValue The old value of the property.
-	 * @param newValue The new value of the property.
-	 */
-	public PropertyChangeEvent(Model source, String propertyName, Object oldValue, Object newValue) {
-		super(source);
-		if (propertyName == null) {
-			throw new NullPointerException();
-		}
-		this.propertyName = propertyName;
-		this.oldValue = oldValue;
-		this.newValue = newValue;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the programmatic name of the property that was changed.
-	 */
-	public String getPropertyName() {
-		return this.propertyName;
-	}
-
-	/**
-	 * Return the old value of the property.
-	 */
-	public Object getOldValue() {
-		return this.oldValue;
-	}
-
-	/**
-	 * Return the new value of the property.
-	 */
-	public Object getNewValue() {
-		return this.newValue;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		sb.append(this.propertyName);
-		sb.append(": "); //$NON-NLS-1$
-		sb.append(this.oldValue);
-		sb.append(" => "); //$NON-NLS-1$
-		sb.append(this.newValue);
-	}
-
-
-	// ********** cloning **********
-
-	public PropertyChangeEvent clone(Model newSource) {
-		return new PropertyChangeEvent(newSource, this.propertyName, this.oldValue, this.newValue);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and property name
-	 * replacing the current source and property name.
-	 */
-	public PropertyChangeEvent clone(Model newSource, String newPropertyName) {
-		return new PropertyChangeEvent(newSource, newPropertyName, this.oldValue, this.newValue);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java
deleted file mode 100644
index fdac399..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A generic "state change" event gets delivered whenever a model changes to
- * such extent that it cannot be delineated all aspects of it that have changed.
- * Any listener can synchronize with the model as necessary since the model is
- * available as the event's 'source'.
- * A <code>StateChangeEvent</code> is sent as an argument to the
- * {@link org.eclipse.jpt.common.utility.model.listener.StateChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class StateChangeEvent extends ChangeEvent {
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new state change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 */
-	public StateChangeEvent(Model source) {
-		super(source);
-	}
-
-
-	// ********** cloning **********
-
-	public StateChangeEvent clone(Model newSource) {
-		return new StateChangeEvent(newSource);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java
deleted file mode 100644
index 0550271..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "tree add" event gets delivered whenever a model adds a node to a "bound"
- * or "constrained" tree. A <code>TreeChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class TreeAddEvent extends TreeEvent {
-
-	/**
-     * Path to the node added to the tree.
-     */
-	protected final Object[] path;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new tree add event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 * @param path The path to the part of the tree that was added.
-	 */
-	public TreeAddEvent(Model source, String treeName, List<?> path) {
-		this(source, treeName, path.toArray());  // NPE if 'path' is null
-	}
-
-	private TreeAddEvent(Model source, String treeName, Object[] path) {
-		super(source, treeName);
-		this.path = path;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the path to the part of the tree that was added.
-	 */
-	public Iterable<?> getPath() {
-		return new ArrayIterable<Object>(this.path);
-	}
-
-
-	// ********** cloning **********
-
-	public TreeAddEvent clone(Model newSource) {
-		return this.clone(newSource, this.treeName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and tree name
-	 * replacing the current source and tree name.
-	 */
-	public TreeAddEvent clone(Model newSource, String newTreeName) {
-		return new TreeAddEvent(newSource, newTreeName, this.path);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java
deleted file mode 100644
index 7ad7e03..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "tree change" event gets delivered whenever a model changes a "bound"
- * or "constrained" tree in a manner that is not easily characterized by
- * the other tree events.
- * A <code>TreeChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class TreeChangeEvent extends TreeEvent {
-
-    /**
-     * The current nodes in the changed tree.
-     */
-	protected final Object[] nodes;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct a new tree change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 * @param nodes The current nodes in the changed tree.
-	 */
-	public TreeChangeEvent(Model source, String treeName, Collection<?> nodes) {
-		this(source, treeName, nodes.toArray());  // NPE if 'nodes' is null
-	}
-	
-	private TreeChangeEvent(Model source, String treeName, Object[] nodes) {
-		super(source, treeName);
-		this.nodes = nodes;
-	}
-	
-
-	// ********** standard state **********
-
-	/**
-	 * Return the current nodes in the changed tree.
-	 */
-	public Iterable<?> getNodes() {
-		return new ArrayIterable<Object>(this.nodes);
-	}
-
-	/**
-	 * Return the current nodes in the changed tree.
-	 */
-	public int getNodesSize() {
-		return this.nodes.length;
-	}
-
-
-	// ********** cloning **********
-
-	public TreeChangeEvent clone(Model newSource) {
-		return this.clone(newSource, this.treeName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and tree name
-	 * replacing the current source and tree name.
-	 */
-	public TreeChangeEvent clone(Model newSource, String newTreeName) {
-		return new TreeChangeEvent(newSource, newTreeName, this.nodes);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java
deleted file mode 100644
index 6d96568..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "tree clear" event gets delivered whenever a model clears
- * a "bound" or "constrained" tree. A <code>TreeClearEvent</code> is sent
- * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class TreeClearEvent extends TreeEvent {
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new tree clear event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the tree that was changed.
-	 */
-	public TreeClearEvent(Model source, String treeName) {
-		super(source, treeName);
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public TreeClearEvent clone(Model newSource) {
-		return this.clone(newSource, this.treeName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public TreeClearEvent clone(Model newSource, String newCollectionName) {
-		return new TreeClearEvent(newSource, newCollectionName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java
deleted file mode 100644
index e57777a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "tree" event gets delivered whenever a model changes a "bound"
- * or "constrained" tree. A <code>TreeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}.
- * The intent is that any listener
- * can keep itself synchronized with the model's tree via the tree events
- * it receives and need not maintain a reference to the original tree.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class TreeEvent extends ChangeEvent {
-
-	/** Name of the tree that changed. */
-	final String treeName;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a new tree event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 */
-	public TreeEvent(Model source, String treeName) {
-		super(source);
-		if (treeName == null) {
-			throw new NullPointerException();
-		}
-		this.treeName = treeName;
-	}
-
-	/**
-	 * Return the programmatic name of the tree that was changed.
-	 */
-	public String getTreeName() {
-		return this.treeName;
-	}
-
-	@Override
-	protected void toString(StringBuilder sb) {
-		sb.append(this.treeName);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java
deleted file mode 100644
index afa3157..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.event;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * A "tree remove" event gets delivered whenever a model removes a node rom a
- * "bound" or "constrained" tree. A <code>TreeChangeEvent</code> is sent as an
- * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public final class TreeRemoveEvent extends TreeEvent {
-
-	/**
-     * Path to the node removed from the tree.
-     */
-	protected final Object[] path;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new tree remove event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 * @param path The path to the part of the tree that was removed.
-	 */
-	public TreeRemoveEvent(Model source, String treeName, List<?> path) {
-		this(source, treeName, path.toArray());  // NPE if 'path' is null
-	}
-
-	private TreeRemoveEvent(Model source, String treeName, Object[] path) {
-		super(source, treeName);
-		this.path = path;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the path to the part of the tree that was removed.
-	 */
-	public Iterable<?> getPath() {
-		return new ArrayIterable<Object>(this.path);
-	}
-
-
-	// ********** cloning **********
-
-	public TreeRemoveEvent clone(Model newSource) {
-		return this.clone(newSource, this.treeName);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and tree name
-	 * replacing the current source and tree name.
-	 */
-	public TreeRemoveEvent clone(Model newSource, String newTreeName) {
-		return new TreeRemoveEvent(newSource, newTreeName, this.path);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java
deleted file mode 100644
index 51dcbd0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * Convenience implementation of {@link ChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ChangeAdapter implements ChangeListener {
-
-	// ***** state
-	public void stateChanged(StateChangeEvent event) {
-		// do nothing
-	}
-
-	// ***** property
-	public void propertyChanged(PropertyChangeEvent event) {
-		// do nothing
-	}
-
-	// ***** collection
-	public void itemsAdded(CollectionAddEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		// do nothing
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		// do nothing
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-	// ***** list
-	public void itemsAdded(ListAddEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		// do nothing
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		// do nothing
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		// do nothing
-	}
-
-	public void listCleared(ListClearEvent event) {
-		// do nothing
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		// do nothing
-	}
-
-	// ***** tree
-	public void nodeAdded(TreeAddEvent event) {
-		// do nothing
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		// do nothing
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		// do nothing
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java
deleted file mode 100644
index c5c6203..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-/**
- * General purpose change listener.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ChangeListener
-	extends StateChangeListener, PropertyChangeListener, CollectionChangeListener, ListChangeListener, TreeChangeListener
-{
-	// combine the other listener interfaces
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java
deleted file mode 100644
index 99ca881..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-
-/**
- * Convenience implementation of {@link CollectionChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class CollectionChangeAdapter implements CollectionChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public CollectionChangeAdapter() {
-		super();
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		// do nothing
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		// do nothing
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java
deleted file mode 100644
index a8ff664..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-
-/**
- * A "collection change" event gets fired whenever a model changes a "bound"
- * collection. You can register a <code>CollectionChangeListener</code> with a source
- * model so as to be notified of any bound collection updates.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface CollectionChangeListener extends EventListener {
-
-	/**
-	 * This method gets called when items are added to a bound collection.
-	 * 
-	 * @param event An event describing the event source,
-	 * the collection that changed, and the items that were added.
-	 */
-	void itemsAdded(CollectionAddEvent event);
-
-	/**
-	 * This method gets called when items are removed from a bound collection.
-	 * 
-	 * @param event An event describing the event source,
-	 * the collection that changed, and the items that were removed.
-	 */
-	void itemsRemoved(CollectionRemoveEvent event);
-
-	/**
-	 * This method gets called when a bound collection is cleared.
-	 * 
-	 * @param event An event describing the event source 
-	 * and the collection that changed.
-	 */
-	void collectionCleared(CollectionClearEvent event);
-
-	/**
-	 * This method gets called when a bound collection is changed in a manner
-	 * that is not easily characterized by the other methods in this interface.
-	 * 
-	 * @param event An event describing the event source 
-	 * and the collection that changed.
-	 */
-	void collectionChanged(CollectionChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java
deleted file mode 100644
index 5b3fd4a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.Command;
-
-/**
- * Convenience implementation of {@link ChangeListener}.
- * All change notifications are funneled through a single command.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class CommandChangeListener
-	extends SimpleChangeListener
-{
-	protected final Command command;
-
-	/**
-	 * Construct a change listener that executes the specified command whenever
-	 * it receives any change notification from the model to which it is added
-	 * as a listener.
-	 */
-	public CommandChangeListener(Command command) {
-		super();
-		this.command = command;
-	}
-
-	@Override
-	protected void modelChanged() {
-		this.command.execute();
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java
deleted file mode 100644
index a2b85b4..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-
-/**
- * Convenience implementation of {@link ListChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ListChangeAdapter implements ListChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public ListChangeAdapter() {
-		super();
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		// do nothing
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		// do nothing
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		// do nothing
-	}
-
-	public void listCleared(ListClearEvent event) {
-		// do nothing
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java
deleted file mode 100644
index 0680c55..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-
-/**
- * A "list change" event gets fired whenever a model changes a "bound"
- * list. You can register a <code>ListChangeListener</code> with a source
- * model so as to be notified of any bound list updates.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ListChangeListener extends EventListener {
-
-	/**
-	 * This method gets called when items are added to a bound list.
-	 * 
-	 * @param event An event describing the event source,
-	 * the list that changed, the items that were added, and the index
-	 * at which the items were added.
-	 */
-	void itemsAdded(ListAddEvent event);
-
-	/**
-	 * This method gets called when items are removed from a bound list.
-	 * 
-	 * @param event An event describing the event source,
-	 * the list that changed, the items that were removed, and the index
-	 * at which the items were removed.
-	 */
-	void itemsRemoved(ListRemoveEvent event);
-
-	/**
-	 * This method gets called when items in a bound list are replaced.
-	 * 
-	 * @param event An event describing the event source,
-	 * the list that changed, the items that were added, the items that were
-	 * replaced, and the index at which the items were replaced.
-	 */
-	void itemsReplaced(ListReplaceEvent event);
-
-	/**
-	 * This method gets called when items in a bound list are moved.
-	 * 
-	 * @param event An event describing the event source,
-	 * the list that changed, and the indices of where items were moved
-	 * from and to.
-	 */
-	void itemsMoved(ListMoveEvent event);
-
-	/**
-	 * This method gets called when a bound list is cleared.
-	 * 
-	 * @param event A ListClearEvent object describing the event source 
-	 * and the list that changed.
-	 */
-	void listCleared(ListClearEvent event);
-
-	/**
-	 * This method gets called when a bound list is changed in a manner
-	 * that is not easily characterized by the other methods in this interface.
-	 * 
-	 * @param event A ListChangeEvent object describing the event source 
-	 * and the list that changed.
-	 */
-	void listChanged(ListChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java
deleted file mode 100644
index 45762bf..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * This class is used by {@link ReflectiveChangeListener} when the requested listener
- * needs to implement multiple methods (i.e. {@link CollectionChangeListener},
- * {@link ListChangeListener}, or {@link TreeChangeListener}).
- */
-class MultiMethodReflectiveChangeListener
-	extends ReflectiveChangeListener 
-	implements CollectionChangeListener, ListChangeListener, TreeChangeListener
-{
-	/** the methods we will invoke on the target object */
-	private final Method addMethod;
-	private final Method removeMethod;
-	private final Method replaceMethod;	// this can be null
-	private final Method moveMethod;	// this can be null
-	private final Method clearMethod;
-	private final Method changeMethod;
-
-
-	/**
-	 * The "replace" and "move" methods are optional.
-	 */
-	MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) {
-		super(target);
-		this.addMethod = addMethod;
-		this.removeMethod = removeMethod;
-		this.replaceMethod = replaceMethod;
-		this.moveMethod = moveMethod;
-		this.clearMethod = clearMethod;
-		this.changeMethod = changeMethod;
-	}
-
-	/**
-	 * No "replace" or "move" methods.
-	 */
-	MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		this(target, addMethod, removeMethod, null, null, clearMethod, changeMethod);
-	}
-
-
-	// ********** CollectionChangeListener implementation **********
-
-	private void invoke(Method method, CollectionEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY);
-		} else {
-			ReflectionTools.executeMethod(method, this.target, new CollectionEvent[] {event});
-		}
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-
-	// ********** ListChangeListener implementation **********
-
-	private void invoke(Method method, ListEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY);
-		} else {
-			ReflectionTools.executeMethod(method, this.target, new ListEvent[] {event});
-		}
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		this.invoke(this.replaceMethod, event);
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		this.invoke(this.moveMethod, event);
-	}
-
-	public void listCleared(ListClearEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-
-	// ********** TreeChangeListener implementation **********
-
-	private void invoke(Method method, TreeEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY);
-		} else {
-			ReflectionTools.executeMethod(method, this.target, new TreeEvent[] {event});
-		}
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java
deleted file mode 100644
index c492353..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-
-/**
- * Convenience implementation of {@link PropertyChangeListener}.
- * This is probably of limited use, since there only a single method to implement;
- * maybe as a null implementation.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class PropertyChangeAdapter implements PropertyChangeListener {
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java
deleted file mode 100644
index 4bb488f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-
-/**
- * A "property change" event gets fired whenever a model changes a "bound"
- * property. You can register a <code>PropertyChangeListener</code> with a source
- * model so as to be notified of any bound property updates.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface PropertyChangeListener extends EventListener {
-
-	/**
-	 * This method gets called when a model has changed a bound property.
-	 * 
-	 * @param event An event describing the event source
-	 * and the property's old and new values.
-	 */
-	void propertyChanged(PropertyChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java
deleted file mode 100644
index 8a24cd5..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * This factory builds listeners that reflectively forward change events.
- * If you are worried about having too many little classes that have to be
- * loaded and maintained by the class loader, you can use one of these.
- * Of course, this comes with the additional overhead of reflection....
- * Also note that the validity of the method name is not checked at compile
- * time, but at runtime; although we <em>do</em> check the method as soon as the
- * listener is instantiated.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class ReflectiveChangeListener {
-
-	/** the target object on which we will invoke the method */
-	protected final Object target;
-
-
-	protected static final Class<StateChangeEvent> STATE_CHANGE_EVENT_CLASS = StateChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<StateChangeEvent>[] STATE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {STATE_CHANGE_EVENT_CLASS};
-
-
-	protected static final Class<PropertyChangeEvent> PROPERTY_CHANGE_EVENT_CLASS = PropertyChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<PropertyChangeEvent>[] PROPERTY_CHANGE_EVENT_CLASS_ARRAY = new Class[] {PROPERTY_CHANGE_EVENT_CLASS};
-
-
-	protected static final Class<CollectionEvent> COLLECTION_EVENT_CLASS = CollectionEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionEvent>[] COLLECTION_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_EVENT_CLASS};
-
-	protected static final Class<CollectionAddEvent> COLLECTION_ADD_EVENT_CLASS = CollectionAddEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionAddEvent>[] COLLECTION_ADD_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_ADD_EVENT_CLASS};
-
-	protected static final Class<CollectionRemoveEvent> COLLECTION_REMOVE_EVENT_CLASS = CollectionRemoveEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionRemoveEvent>[] COLLECTION_REMOVE_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_REMOVE_EVENT_CLASS};
-
-	protected static final Class<CollectionClearEvent> COLLECTION_CLEAR_EVENT_CLASS = CollectionClearEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionClearEvent>[] COLLECTION_CLEAR_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_CLEAR_EVENT_CLASS};
-
-	protected static final Class<CollectionChangeEvent> COLLECTION_CHANGE_EVENT_CLASS = CollectionChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionChangeEvent>[] COLLECTION_CHANGE_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_CHANGE_EVENT_CLASS};
-
-
-	protected static final Class<ListEvent> LIST_EVENT_CLASS = ListEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListEvent>[] LIST_EVENT_CLASS_ARRAY = new Class[] {LIST_EVENT_CLASS};
-
-	protected static final Class<ListAddEvent> LIST_ADD_EVENT_CLASS = ListAddEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListAddEvent>[] LIST_ADD_EVENT_CLASS_ARRAY = new Class[] {LIST_ADD_EVENT_CLASS};
-
-	protected static final Class<ListRemoveEvent> LIST_REMOVE_EVENT_CLASS = ListRemoveEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListRemoveEvent>[] LIST_REMOVE_EVENT_CLASS_ARRAY = new Class[] {LIST_REMOVE_EVENT_CLASS};
-
-	protected static final Class<ListReplaceEvent> LIST_REPLACE_EVENT_CLASS = ListReplaceEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListReplaceEvent>[] LIST_REPLACE_EVENT_CLASS_ARRAY = new Class[] {LIST_REPLACE_EVENT_CLASS};
-
-	protected static final Class<ListMoveEvent> LIST_MOVE_EVENT_CLASS = ListMoveEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListMoveEvent>[] LIST_MOVE_EVENT_CLASS_ARRAY = new Class[] {LIST_MOVE_EVENT_CLASS};
-
-	protected static final Class<ListClearEvent> LIST_CLEAR_EVENT_CLASS = ListClearEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListClearEvent>[] LIST_CLEAR_EVENT_CLASS_ARRAY = new Class[] {LIST_CLEAR_EVENT_CLASS};
-
-	protected static final Class<ListChangeEvent> LIST_CHANGE_EVENT_CLASS = ListChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListChangeEvent>[] LIST_CHANGE_EVENT_CLASS_ARRAY = new Class[] {LIST_CHANGE_EVENT_CLASS};
-
-
-	protected static final Class<TreeEvent> TREE_EVENT_CLASS = TreeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeEvent>[] TREE_EVENT_CLASS_ARRAY = new Class[] {TREE_EVENT_CLASS};
-
-	protected static final Class<TreeAddEvent> TREE_ADD_EVENT_CLASS = TreeAddEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeAddEvent>[] TREE_ADD_EVENT_CLASS_ARRAY = new Class[] {TREE_ADD_EVENT_CLASS};
-
-	protected static final Class<TreeRemoveEvent> TREE_REMOVE_EVENT_CLASS = TreeRemoveEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeRemoveEvent>[] TREE_REMOVE_EVENT_CLASS_ARRAY = new Class[] {TREE_REMOVE_EVENT_CLASS};
-
-	protected static final Class<TreeClearEvent> TREE_CLEAR_EVENT_CLASS = TreeClearEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeClearEvent>[] TREE_CLEAR_EVENT_CLASS_ARRAY = new Class[] {TREE_CLEAR_EVENT_CLASS};
-
-	protected static final Class<TreeChangeEvent> TREE_CHANGE_EVENT_CLASS = TreeChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeChangeEvent>[] TREE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {TREE_CHANGE_EVENT_CLASS};
-
-	protected static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-
-
-	// ********** helper methods **********
-
-	/**
-	 * Find and return a method implemented by the target that can be invoked
-	 * reflectively when a change event occurs.
-	 */
-	private static Method findChangeListenerMethod(Object target, String methodName, Class<? extends ChangeEvent>[] eventClassArray) {
-		try {
-			return ReflectionTools.getMethod(target, methodName, eventClassArray);
-		} catch (RuntimeException ex1) {
-			return ReflectionTools.getMethod(target, methodName);
-		}
-	}
-
-	/**
-	 * Check whether the specified method is suitable for being invoked when a
-	 * change event has occurred. Throw an exception if it is not suitable.
-	 */
-	private static void checkChangeListenerMethod(Method method, Class<? extends ChangeEvent> eventClass) {
-		Class<?>[] parmTypes = method.getParameterTypes();
-		int parmTypesLength = parmTypes.length;
-		if (parmTypesLength == 0) {
-			return;
-		}
-		if ((parmTypesLength == 1) && parmTypes[0].isAssignableFrom(eventClass)) {
-			return;
-		}
-		throw new IllegalArgumentException(method.toString());
-	}
-
-
-	// ********** factory methods: StateChangeListener **********
-
-	/**
-	 * Construct a state change listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	public static StateChangeListener buildStateChangeListener(Object target, Method method) {
-		checkChangeListenerMethod(method, STATE_CHANGE_EVENT_CLASS);
-		return new SingleMethodReflectiveChangeListener(target, method);
-	}
-
-	/**
-	 * Construct a state change listener that will invoke the specified method
-	 * on the specified target. If a single-argument method with the specified
-	 * name and appropriate argument is found, it will be invoked; otherwise,
-	 * a zero-argument method with the specified name will be invoked.
-	 */
-	public static StateChangeListener buildStateChangeListener(Object target, String methodName) {
-		return buildStateChangeListener(target, findChangeListenerMethod(target, methodName, STATE_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: PropertyChangeListener **********
-
-	/**
-	 * Construct a property change listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	public static PropertyChangeListener buildPropertyChangeListener(Object target, Method method) {
-		checkChangeListenerMethod(method, PROPERTY_CHANGE_EVENT_CLASS);
-		return new SingleMethodReflectiveChangeListener(target, method);
-	}
-
-	/**
-	 * Construct a property change listener that will invoke the specified method
-	 * on the specified target. If a single-argument method with the specified
-	 * name and appropriate argument is found, it will be invoked; otherwise,
-	 * a zero-argument method with the specified name will be invoked.
-	 */
-	public static PropertyChangeListener buildPropertyChangeListener(Object target, String methodName) {
-		return buildPropertyChangeListener(target, findChangeListenerMethod(target, methodName, PROPERTY_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: CollectionChangeListener **********
-
-	/**
-	 * Construct a collection change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, COLLECTION_ADD_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, COLLECTION_REMOVE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, COLLECTION_CLEAR_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, COLLECTION_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, Method method) {
-		return buildCollectionChangeListener(target, method, method, method, method);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) {
-		return buildCollectionChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, COLLECTION_ADD_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, COLLECTION_REMOVE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, COLLECTION_CLEAR_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, String methodName) {
-		return buildCollectionChangeListener(target, findChangeListenerMethod(target, methodName, COLLECTION_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: ListChangeListener **********
-
-	/**
-	 * Construct a list change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, LIST_ADD_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, LIST_REMOVE_EVENT_CLASS);
-		checkChangeListenerMethod(replaceMethod, LIST_REPLACE_EVENT_CLASS);
-		checkChangeListenerMethod(moveMethod, LIST_MOVE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, LIST_CLEAR_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, LIST_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, replaceMethod, moveMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, Method method) {
-		return buildListChangeListener(target, method, method, method, method, method, method);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, String addMethodName, String removeMethodName, String replaceMethodName, String moveMethodName, String clearMethodName, String changeMethodName) {
-		return buildListChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, LIST_ADD_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, LIST_REMOVE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, replaceMethodName, LIST_REPLACE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, moveMethodName, LIST_MOVE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, LIST_CLEAR_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, String methodName) {
-		return buildListChangeListener(target, findChangeListenerMethod(target, methodName, LIST_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: TreeChangeListener **********
-
-	/**
-	 * Construct a tree change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, TREE_ADD_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, TREE_REMOVE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, TREE_CLEAR_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, TREE_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, Method method) {
-		return buildTreeChangeListener(target, method, method, method, method);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) {
-		return buildTreeChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, TREE_ADD_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, TREE_REMOVE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, TREE_CLEAR_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, String methodName) {
-		return buildTreeChangeListener(target, findChangeListenerMethod(target, methodName, TREE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct a listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	protected ReflectiveChangeListener(Object target) {
-		super();
-		this.target = target;
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java
deleted file mode 100644
index cc82b77..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
-import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
-import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
-import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
-import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * Convenience abstract implementation of {@link ChangeListener}.
- * All change notifications are funneled through a single method.
- * This class can be used by
- * subclassing it and overriding either {@link #modelChanged(ChangeEvent)}
- * (if access to the event is required) or {@link #modelChanged()} (if access
- * to the event is not required).
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class SimpleChangeListener
-	implements ChangeListener
-{
-	public SimpleChangeListener() {
-		super();
-	}
-
-	public void stateChanged(StateChangeEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void collectionCleared(CollectionClearEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsAdded(CollectionAddEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsRemoved(CollectionRemoveEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsAdded(ListAddEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsMoved(ListMoveEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsRemoved(ListRemoveEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void itemsReplaced(ListReplaceEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void listCleared(ListClearEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		this.modelChanged(event);
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		this.modelChanged(event);
-	}
-
-	/**
-	 * The model has notified the listener of the change described by the
-	 * specified change event. By default the listener executes {@link #modelChanged()}.
-	 */
-	protected void modelChanged(@SuppressWarnings("unused") ChangeEvent event) {
-		this.modelChanged();
-	}
-
-	/**
-	 * The model has notified the listener of a change.
-	 * By default the listener throws an exception.
-	 */
-	protected void modelChanged() {
-		throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java
deleted file mode 100644
index 146e75f..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.lang.reflect.Method;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-
-/**
- * This class is used by {@link ReflectiveChangeListener} when the requested listener
- * need only implement a single method (i.e. {@link StateChangeListener} or
- * {@link PropertyChangeListener}).
- */
-class SingleMethodReflectiveChangeListener
-	extends ReflectiveChangeListener
-	implements StateChangeListener, PropertyChangeListener
-{
-
-	/** the method we will invoke on the target object */
-	private final Method method;
-	/** cache the number of arguments */
-	private final boolean methodIsZeroArgument;
-
-	SingleMethodReflectiveChangeListener(Object target, Method method) {
-		super(target);
-		this.method = method;
-		this.methodIsZeroArgument = method.getParameterTypes().length == 0;
-	}
-
-
-	// ********** StateChangeListener implementation **********
-
-	public void stateChanged(StateChangeEvent event) {
-		if (this.methodIsZeroArgument) {
-			ReflectionTools.executeMethod(this.method, this.target, EMPTY_OBJECT_ARRAY);
-		} else {
-			ReflectionTools.executeMethod(this.method, this.target, new StateChangeEvent[] {event});
-		}
-	}
-
-
-	// ********** PropertyChangeListener implementation **********
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (this.methodIsZeroArgument) {
-			ReflectionTools.executeMethod(this.method, this.target, EMPTY_OBJECT_ARRAY);
-		} else {
-			ReflectionTools.executeMethod(this.method, this.target, new PropertyChangeEvent[] {event});
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java
deleted file mode 100644
index 3cc5f18..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-
-/**
- * Convenience implementation of {@link StateChangeListener}.
- * This is probably of limited use, since there only a single method to implement;
- * maybe as a null implementation.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class StateChangeAdapter implements StateChangeListener {
-
-	public void stateChanged(StateChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java
deleted file mode 100644
index f9c599e..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
-
-/**
- * A generic "state change" event gets delivered whenever a model changes to 
- * such extent that it cannot be delineated all aspects of it that have changed. 
- * You can register a <code>StateChangeListener</code> with a source model so as to be notified 
- * of any such changes.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface StateChangeListener extends EventListener {
-
-	/**
-	 * This method gets called when a model has changed in some general fashion.
-	 * 
-	 * @param event An event describing the event source.
-	 */
-	void stateChanged(StateChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java
deleted file mode 100644
index 8d7ccee..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * Convenience implementation of {@link TreeChangeListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class TreeChangeAdapter implements TreeChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public TreeChangeAdapter() {
-		super();
-	}
-
-	public void nodeAdded(TreeAddEvent event) {
-		// do nothing
-	}
-
-	public void nodeRemoved(TreeRemoveEvent event) {
-		// do nothing
-	}
-
-	public void treeCleared(TreeClearEvent event) {
-		// do nothing
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java
deleted file mode 100644
index de8c898..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.listener;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.common.utility.model.event.TreeAddEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeClearEvent;
-import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent;
-
-/**
- * A "tree change" event gets fired whenever a model changes a "bound"
- * tree. You can register a <code>TreeChangeListener</code> with a source
- * model so as to be notified of any bound tree updates.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeChangeListener extends EventListener {
-
-	/**
-	 * This method gets called when a node is added to a bound tree.
-	 * 
-	 * @param event An event describing the event source,
-	 * the tree that changed, and the path to the node that was added.
-	 */
-	void nodeAdded(TreeAddEvent event);
-
-	/**
-	 * This method gets called when a node is removed from a bound tree.
-	 * 
-	 * @param event An event describing the event source,
-	 * the tree that changed, and the path to the node that was removed.
-	 */
-	void nodeRemoved(TreeRemoveEvent event);
-
-	/**
-	 * This method gets called when a bound tree is cleared.
-	 * 
-	 * @param event An event describing the event source,
-	 * the tree that changed, and an empty path.
-	 */
-	void treeCleared(TreeClearEvent event);
-
-	/**
-	 * This method gets called when a portion of a bound tree is changed in
-	 * a manner that is not easily characterized by the other methods in this
-	 * interface.
-	 * 
-	 * @param event An event describing the event source,
-	 * the tree that changed, and the current state of the
-	 * tree that changed.
-	 */
-	void treeChanged(TreeChangeEvent event);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java
deleted file mode 100644
index d7adf50..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Interface used to abstract collection accessing and
- * change notification and make it more pluggable.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <E> the type of values held by the model
- */
-public interface CollectionValueModel<E>
-	extends Model, Iterable<E>
-{
-
-	/**
-	 * Return the collection's values.
-	 */
-	Iterator<E> iterator();
-		String VALUES = "values"; //$NON-NLS-1$
-
-	/**
-	 * Return the size of the collection.
-	 */
-	int size();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java
deleted file mode 100644
index 16d8828..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Interface used to abstract list accessing and
- * change notification and make it more pluggable.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <E> the type of values held by the list model
- */
-public interface ListValueModel<E>
-	extends Model, Iterable<E>
-{
-	/**
-	 * Return the list's values.
-	 */
-	Iterator<E> iterator();
-		String LIST_VALUES = "list values"; //$NON-NLS-1$
-
-	/**
-	 * Return the list's values.
-	 */
-	ListIterator<E> listIterator();
-
-	/**
-	 * Return the size of the list.
-	 */
-	int size();
-
-	/**
-	 * Return the item at the specified index of the list.
-	 */
-	E get(int index);
-
-	/**
-	 * Return the list's values.
-	 */
-	Object[] toArray();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java
deleted file mode 100644
index 180be43..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Interface used to abstract property accessing and
- * change notification and make it more pluggable.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <T> the type of value held by the model
- */
-public interface PropertyValueModel<T>
-	extends Model
-{
-
-	/**
-	 * Return the property's value.
-	 */
-	T getValue();
-		String VALUE = "value"; //$NON-NLS-1$
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java
deleted file mode 100644
index f9281b0..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-/**
- * Extend {@link WritablePropertyValueModel} to better support
- * {@link org.eclipse.jpt.common.utility.internal.model.value.swing.TreeModelAdapter}.
- * <p>
- * Implementors of this interface should fire a "state change" event
- * whenever the node's internal state changes in a way that the
- * tree listeners should be notified.
- * <p>
- * Implementors of this interface should also fire a "value property change"
- * event whenever the node's value changes. Typically, only nodes that
- * hold "primitive" data will fire this event.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <T> the type of values held by the model
- * 
- * @see org.eclipse.jpt.common.utility.internal.model.value.AbstractTreeNodeValueModel
- */
-public interface TreeNodeValueModel<T>
-	extends WritablePropertyValueModel<T>
-{
-
-	/**
-	 * Return the node's parent node; null if the node
-	 * is the root.
-	 */
-	TreeNodeValueModel<T> parent();
-
-	/**
-	 * Return the path to the node.
-	 */
-	TreeNodeValueModel<T>[] path();
-
-	/**
-	 * Return a list value model of the node's child nodes.
-	 */
-	ListValueModel<TreeNodeValueModel<T>> childrenModel();
-
-	/**
-	 * Return the node's child at the specified index.
-	 */
-	TreeNodeValueModel<T> child(int index);
-
-	/**
-	 * Return the size of the node's list of children.
-	 */
-	int childrenSize();
-
-	/**
-	 * Return the index in the node's list of children of the specified child.
-	 */
-	int indexOfChild(TreeNodeValueModel<T> child);
-
-	/**
-	 * Return whether the node is a leaf (i.e. it has no children)
-	 */
-	boolean isLeaf();
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java
deleted file mode 100644
index 7a3e44d..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.common.utility.model.Model;
-
-/**
- * Interface used to abstract tree accessing and
- * change notification and make it more pluggable.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <E> the type of values held by the model
- */
-public interface TreeValueModel<E>
-	extends Model
-{
-	/**
-	 * Return the tree's nodes.
-	 */
-	Iterator<E> nodes();
-		String NODES = "nodes"; //$NON-NLS-1$
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java
deleted file mode 100644
index 6fe5fa7..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-/**
- * Extend {@link CollectionValueModel} to allow the setting of the
- * collection's values.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <E> the type of values held by the model
- */
-public interface WritableCollectionValueModel<E>
-	extends CollectionValueModel<E>
-{
-
-	/**
-	 * Set the values and fire a collection change notification.
-	 * @see CollectionValueModel#VALUES
-	 */
-	void setValues(Iterable<E> values);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java
deleted file mode 100644
index df8e536..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-/**
- * Extend {@link ListValueModel} to allow the setting of the
- * lists's values.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <E> the type of values held by the model
- */
-public interface WritableListValueModel<E>
-	extends ListValueModel<E>
-{
-
-	/**
-	 * Set the list values and fire a list change notification.
-	 * @see ListValueModel#LIST_VALUES
-	 */
-	void setListValues(Iterable<E> values);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java
deleted file mode 100644
index fe35c35..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.model.value;
-
-/**
- * Extend {@link PropertyValueModel} to allow the setting of the property's value.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @param <T> the type of value held by the model
- */
-public interface WritablePropertyValueModel<T>
-	extends PropertyValueModel<T>
-{
-
-	/**
-	 * Set the value and fire a property change notification.
-	 * @see PropertyValueModel#VALUE
-	 */
-	void setValue(T value);
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java
deleted file mode 100644
index 029227a..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.synchronizers;
-
-import java.io.Serializable;
-import java.util.EventListener;
-
-/**
- * Extend {@link Synchronizer} to notify listeners
- * when a synchronization "cycle" is complete; i.e. the synchronization has,
- * for the moment, quiesced.
- */
-public interface CallbackSynchronizer
-	extends Synchronizer
-{
-	/**
-	 * Add the specified listener to be notified whenever the synchronizer has
-	 * quiesced.
-	 * @see #removeListener(Listener)
-	 */
-	void addListener(Listener listener);
-
-	/**
-	 * Remove the specified listener.
-	 * @see #addListener(Listener)
-	 */
-	void removeListener(Listener listener);
-
-
-	// ********** listener **********
-
-	/**
-	 * Interface implemented by listeners to be notified whenever the
-	 * synchronizer has quiesced.
-	 */
-	public interface Listener
-		extends EventListener
-	{
-		/**
-		 * The specified synchronizer has quiesced.
-		 */
-		void synchronizationQuiesced(CallbackSynchronizer synchronizer);
-	}
-
-
-	/**
-	 * Singleton implementation of the {@link CallbackSynchronizer} interface that will do
-	 * nothing.
-	 */
-	final class Null implements CallbackSynchronizer, Serializable {
-		public static final CallbackSynchronizer INSTANCE = new Null();
-		public static CallbackSynchronizer instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void start() {
-			// do nothing
-		}
-		public void synchronize() {
-			// do nothing
-		}
-		public void stop() {
-			// do nothing
-		}
-		public void addListener(Listener listener) {
-			// do nothing
-		}
-		public void removeListener(Listener listener) {
-			// do nothing
-		}
-		@Override
-		public String toString() {
-			return "CallbackSynchronizer.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java
deleted file mode 100644
index 230fb86..0000000
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.utility.synchronizers;
-
-import java.io.Serializable;
-
-/**
- * This interface defines the protocol for starting, stopping, and executing a
- * long-running, repeatable, and possibly recursive "synchronization" process.
- * The intent is for the synchronizer to synchronize a "secondary" model with
- * a "primary" model. Any change to the "primary" model will trigger the
- * synchronization. The synchronizer implementation will determine whether the
- * "secondary" model remains in sync synchronously or asynchronously.
- * <p>
- * The assumption is that the {@link #start()} and {@link #stop()} methods will be called from
- * a single master thread that would control the synchronizer's lifecycle and
- * the {@link #synchronize()} method will be called multiple times, possibly from
- * multiple threads.
- */
-public interface Synchronizer {
-
-	/**
-	 * Enable the synchronizer to allow future synchronizations as requested
-	 * by calls to {@link #synchronize()}.
-	 */
-	void start();
-
-	/**
-	 * Synchronize the dependent model with the primary model. Do nothing if
-	 * {@link #start()} has not previously been called. Do nothing if {@link #stop}
-	 * has been called (without any intermediate call to {@link #start()}.
-	 */
-	void synchronize();
-
-	/**
-	 * Stop the synchronizer immediately or, if a synchronization is currently
-	 * in progress, when it completes. Return when the synchronizer is stopped.
-	 * No further synchonizations will performed until {@link #start()} is called.
-	 */
-	void stop();
-
-
-	/**
-	 * Singleton implementation of the {@link Synchronizer} interface that will do
-	 * nothing.
-	 */
-	final class Null implements Synchronizer, Serializable {
-		public static final Synchronizer INSTANCE = new Null();
-		public static Synchronizer instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void start() {
-			// do nothing
-		}
-		public void synchronize() {
-			// do nothing
-		}
-		public void stop() {
-			// do nothing
-		}
-		@Override
-		public String toString() {
-			return "Synchronizer.Null"; //$NON-NLS-1$
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			// replace this object with the singleton
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath b/common/tests/org.eclipse.jpt.common.ui.tests/.classpath
deleted file mode 100644
index 62dd151..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/common/ui/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.project b/common/tests/org.eclipse.jpt.common.ui.tests/.project
deleted file mode 100644
index 0e0633e..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.common.ui.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs b/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c07512e..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Jan 24 14:35:58 EST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF b/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 1230d75..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.common.ui.tests
-Bundle-Version: 1.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: 
- org.junit;bundle-version="4.3.1",
- org.eclipse.core.runtime;bundle-version="[3.6.100,4.0.0)",
- org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.common.ui;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.ui.forms;bundle-version="[3.5.100,4.0.0)",
- org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.5.0,4.0.0)"
-Export-Package: org.eclipse.jpt.common.ui.tests,
- org.eclipse.jpt.common.ui.tests.internal.jface;x-internal:=true,
- org.eclipse.jpt.common.ui.tests.internal.swt;x-internal:=true,
- org.eclipse.jpt.common.ui.tests.internal.util;x-internal:=true,
- org.eclipse.jpt.common.ui.tests.internal.utility.swt;x-internal:=true
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties b/common/tests/org.eclipse.jpt.common.ui.tests/build.properties
deleted file mode 100644
index 4dce676..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-################################################################################
-# Copyright (c) 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties b/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties
deleted file mode 100644
index 7b81997..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName=Dali Java Persistence Tools - Common UI Tests
-providerName=Eclipse Web Tools Platform
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java
deleted file mode 100644
index bb3b72f..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.common.ui.tests.internal.swt.JptUiSWTTests;
-import org.eclipse.jpt.common.ui.tests.internal.util.JptUiUtilTests;
-
-/**
- * Runs all JPT UI Tests
- */
-public class JptCommonUiTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCommonUiTests.class.getPackage().getName());
-		suite.addTest(JptUiSWTTests.suite());
-		suite.addTest(JptUiUtilTests.suite());
-		return suite;
-	}
-
-	private JptCommonUiTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java
deleted file mode 100644
index 4b7cec0..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java
+++ /dev/null
@@ -1,602 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.jface;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.jface.AbstractItemLabelProvider;
-import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider;
-import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.ItemLabelProvider;
-import org.eclipse.jpt.common.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-public class DelegatingLabelProviderUiTest extends ApplicationWindow
-{
-	private TreeViewer tree;
-	
-	private WritablePropertyValueModel<Vehicle> selectedVehicle;
-	
-	
-	public static void main(String[] args) {
-		Window window = new DelegatingLabelProviderUiTest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-	
-	
-	private DelegatingLabelProviderUiTest(String[] args) {
-		super(null);
-		this.selectedVehicle = new SimplePropertyValueModel<Vehicle>();
-	}
-	
-	
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(400, 400);
-		parent.setLayout(new GridLayout());
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		mainPanel.setLayout(new GridLayout());
-		buildTreePanel(mainPanel);
-		buildControlPanel(mainPanel);
-		return mainPanel;
-	}
-	
-	private void buildTreePanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout());
-		
-		Label label = new Label(panel, SWT.NONE);
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		label.setText("My Vehicles");
-		
-		tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-		DelegatingContentAndLabelProvider contentAndLabelProvider = 
-			new DelegatingTreeContentAndLabelProvider(
-				new VehicleContentProviderFactory(),
-				new VehicleLabelProviderFactory());
-		tree.setContentProvider(contentAndLabelProvider);
-		tree.setLabelProvider(contentAndLabelProvider);
-		tree.setInput(new Root());
-		tree.addSelectionChangedListener(buildTreeSelectionChangedListener());
-	}
-	
-	private ISelectionChangedListener buildTreeSelectionChangedListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				selectedVehicle.setValue((Vehicle) ((IStructuredSelection) event.getSelection()).getFirstElement());
-			}
-		};
-	}
-	
-	private void buildControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout());
-		buildUpperControlPanel(panel);
-		buildLowerControlPanel(panel);
-	}
-	
-	private void buildUpperControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout(2, true));
-		buildVehicleCombo(panel);
-		buildColorCombo(panel);
-	}
-	
-	private void buildVehicleCombo(Composite parent) {
-		final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY);
-		combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		combo.setContentProvider(new ArrayContentProvider());
-		combo.setLabelProvider(new VehicleTypeLabelProvider());
-		combo.setInput(
-			new VehicleType[] {
-				VehicleType.BICYCLE, VehicleType.CAR, 
-				VehicleType.TRUCK, VehicleType.BOAT
-			});
-		combo.getCombo().setEnabled(false);
-		combo.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					selectedVehicle().setVehicleType((VehicleType) ((StructuredSelection) event.getSelection()).getFirstElement()); 
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					combo.getCombo().setEnabled(vehicle != null);
-					combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.vehicleType()));
-				}
-			});
-	}
-	
-	private void buildColorCombo(Composite parent) {
-		final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY);
-		combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		combo.setContentProvider(new ArrayContentProvider());
-		combo.setLabelProvider(new ColorLabelProvider());
-		combo.setInput(new Color[] {Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN});
-		combo.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					selectedVehicle().setColor((Color) ((StructuredSelection) event.getSelection()).getFirstElement()); 
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					combo.getCombo().setEnabled(vehicle != null);
-					combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.color()));
-				}
-			});
-	}
-	
-	private void buildLowerControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout(3, false));
-		buildEffectsLabel(panel);
-		buildGreyedCheckBox(panel);
-		buildTranslucentCheckBox(panel);
-		buildActionPanel(panel);
-	}
-	
-	private void buildEffectsLabel(Composite parent) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText("Color effects: ");
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false, 3, 1));
-	}
-	
-	private void buildGreyedCheckBox(Composite parent) {
-		final Button button = new Button(parent, SWT.CHECK);
-		button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		button.setText("greyed");
-		button.setEnabled(false);
-		button.addSelectionListener(
-			new SelectionAdapter() {
-				@Override
-				public void widgetSelected(SelectionEvent e) {
-					selectedVehicle().setGreyed(button.getSelection());
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					button.setEnabled(vehicle != null);
-					button.setSelection(vehicle != null && vehicle.isGreyed());
-				}
-			});
-	}
-	
-	private void buildTranslucentCheckBox(Composite parent) {
-		final Button button = new Button(parent, SWT.CHECK);
-		button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, true, false));
-		button.setText("translucent");
-		button.setEnabled(false);
-		button.addSelectionListener(
-			new SelectionAdapter() {
-				@Override
-				public void widgetSelected(SelectionEvent e) {
-					selectedVehicle().setTranslucent(button.getSelection());
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					button.setEnabled(vehicle != null);
-					button.setSelection(vehicle != null && vehicle.isTranslucent());
-				}
-			});
-	}
-	
-	private void buildActionPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.END, GridData.FILL, false, false));
-		panel.setLayout(new GridLayout());
-		buildRefreshTreeACI().fill(panel);
-	}
-	
-	private ActionContributionItem buildRefreshTreeACI() {
-		Action action = new Action("Refresh tree", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				refreshTree();
-			}
-		};
-		action.setToolTipText("Refresh the tree's labels");
-		return new ActionContributionItem(action);
-	}
-	
-	void refreshTree() {
-		tree.refresh();
-	}
-	
-	private Vehicle selectedVehicle() {
-		return selectedVehicle.getValue();
-	}
-	
-	
-	private static class VehicleTypeLabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-		
-		public String getText(Object element) {
-			return ((VehicleType) element).description();
-		}
-	}
-	
-	
-	private static class ColorLabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-		
-		public String getText(Object element) {
-			return ((Color) element).description();
-		}
-	}
-	
-	
-	private static class VehicleContentProviderFactory
-		implements TreeItemContentProviderFactory
-	{
-		public TreeItemContentProvider buildItemContentProvider(Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			if (item instanceof Root) {
-				return new RootContentProvider(
-					(Root) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-			}
-			return new VehicleContentProvider(
-				(Vehicle) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-		}
-	}
-	
-	
-	private static class RootContentProvider extends AbstractTreeItemContentProvider<Vehicle>
-	{
-		public RootContentProvider(Root item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) {
-			super(item, contentAndLabelProvider);
-		}
-		
-		@Override
-		public Root getModel() {
-			return (Root) super.getModel();
-		}
-		
-		@Override
-		public Object getParent() {
-			return null;
-		}
-		
-		@Override
-		protected CollectionValueModel<Vehicle> buildChildrenModel() {
-			return new StaticCollectionValueModel<Vehicle>(this.getModel().vehicles());
-		}
-	}
-	
-	@SuppressWarnings("unchecked")
-	private static class VehicleContentProvider extends AbstractTreeItemContentProvider
-	{
-		public VehicleContentProvider(Vehicle item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) {
-			super(item, contentAndLabelProvider);
-		}
-		
-		@Override
-		public Vehicle getModel() {
-			return (Vehicle) super.getModel();
-		}
-		
-		@Override
-		public Object getParent() {
-			return getModel().parent();
-		}
-		
-		@Override
-		protected CollectionValueModel buildChildrenModel() {
-			return new NullCollectionValueModel();
-		}
-	}
-	
-	
-	private static class VehicleLabelProviderFactory
-		implements ItemLabelProviderFactory
-	{
-		public ItemLabelProvider buildItemLabelProvider(Object element, DelegatingContentAndLabelProvider labelProvider) {
-			return new VehicleLabelProvider((Vehicle) element, labelProvider);
-		}
-	}
-	
-	
-	private static class VehicleLabelProvider extends AbstractItemLabelProvider
-	{
-		public VehicleLabelProvider(Vehicle vehicle, DelegatingContentAndLabelProvider labelProvider) {
-			super(vehicle, labelProvider);
-		}
-		
-		@Override
-		protected PropertyValueModel<Image> buildImageModel() {
-			return new PropertyAspectAdapter<Vehicle, Image>(
-					new StaticPropertyValueModel<Vehicle>((Vehicle) model()), 
-					Vehicle.COLOR_PROPERTY, Vehicle.GREYED_PROPERTY, Vehicle.TRANSLUCENT_PROPERTY) {
-				@Override
-				protected Image buildValue_() {
-					return subject.image();
-				}
-			};
-		}
-		
-		@Override
-		protected PropertyValueModel<String> buildTextModel() {
-			return new PropertyAspectAdapter<Vehicle, String>(
-					new StaticPropertyValueModel<Vehicle>((Vehicle) model()), 
-					Vehicle.VEHICLE_TYPE_PROPERTY, Vehicle.COLOR_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return subject.color().description() + ' ' + subject.vehicleType().description();
-				}
-			};
-		}
-		
-		@Override
-		protected PropertyValueModel<String> buildDescriptionModel() {
-			return buildTextModel();
-		}
-	}
-	
-	
-	private static abstract class TreeNode extends AbstractModel
-	{
-		private TreeNode parent;
-		
-		
-		public TreeNode(TreeNode parent) {
-			this.parent = parent;
-		}
-		
-		
-		public TreeNode parent() {
-			return parent;
-		}
-	}
-	
-	
-	private static class Root extends TreeNode
-	{
-		protected final Vehicle[] vehicles;
-		
-		
-		public Root() {
-			super(null);
-			vehicles = new Vehicle[] {
-				new Vehicle(this, VehicleType.BICYCLE, Color.BLUE),
-				new Vehicle(this, VehicleType.CAR, Color.YELLOW),
-				new Vehicle(this, VehicleType.TRUCK, Color.RED),
-				new Vehicle(this, VehicleType.BOAT, Color.GREEN)};
-		}
-		
-		public Vehicle[] vehicles() {
-			return vehicles;
-		}
-	}
-	
-	
-	private static class Vehicle extends TreeNode
-	{
-		private VehicleType vehicleType;
-		public final static String VEHICLE_TYPE_PROPERTY = "vehicleType";
-		
-		private Color color;
-		public final static String COLOR_PROPERTY = "color";
-		
-		private boolean greyed = false;
-		public final static String GREYED_PROPERTY = "greyed";
-		
-		private boolean translucent = false;
-		public final static String TRANSLUCENT_PROPERTY = "translucent";
-		
-		private Image image;
-		
-			
-		public Vehicle(TreeNode parent, VehicleType vehicleType, Color color) {
-			super(parent);
-			this.vehicleType = vehicleType;
-			this.color = color;
-		}
-		
-		public VehicleType vehicleType() {
-			return vehicleType;
-		}
-		
-		public void setVehicleType(VehicleType newVehicleType) {
-			VehicleType oldVehicleType = vehicleType;
-			vehicleType = newVehicleType;
-			firePropertyChanged(VEHICLE_TYPE_PROPERTY, oldVehicleType, newVehicleType);
-		}
-		
-		public Color color() {
-			return color;
-		}
-		
-		public void setColor(Color newColor) {
-			Color oldColor = color;
-			color = newColor;
-			firePropertyChanged(COLOR_PROPERTY, oldColor, newColor);
-		}
-		
-		public boolean isGreyed() {
-			return greyed;
-		}
-		
-		public void setGreyed(boolean newGreyed) {
-			boolean oldGreyed = greyed;
-			greyed = newGreyed;
-			firePropertyChanged(GREYED_PROPERTY, oldGreyed, newGreyed);
-		}
-		
-		public boolean isTranslucent() {
-			return translucent;
-		}
-		
-		public void setTranslucent(boolean newTranslucent) {
-			boolean oldTranslucent = translucent;
-			translucent = newTranslucent;
-			firePropertyChanged(TRANSLUCENT_PROPERTY, oldTranslucent, newTranslucent);
-		}
-		
-		public Image image() {
-			if (image != null) {
-				image.dispose();
-			}
-			
-			return ImageFactory.image(color(), greyed, translucent);
-		}
-	}
-	
-	
-	private static enum VehicleType
-	{
-		BICYCLE("bicycle"),
-		CAR("car"),
-		TRUCK("truck"),
-		BOAT("boat");
-		
-		private final String description;
-		
-		private VehicleType(String description) {
-			this.description = description;
-		}
-		
-		public String description() {
-			return description;
-		}
-		
-		@Override
-		public String toString() {
-			return description();
-		}
-	}
-	
-	
-	private static enum Color
-	{
-		RED("red", new RGB(255, 0, 0)),
-		BLUE("blue", new RGB(0, 0, 255)),
-		YELLOW("yellow", new RGB(255, 255, 0)),
-		GREEN("green", new RGB(0, 255, 0));
-		
-		private final String description;
-		
-		private final RGB rgb;
-		
-		private Color(String description, RGB rgb) {
-			this.description = description;
-			this.rgb = rgb;
-		}
-		
-		public String description() {
-			return description;
-		}
-		
-		public RGB rgb() {
-			return rgb;
-		}
-		
-		@Override
-		public String toString() {
-			return description();
-		}
-	}
-	
-	
-	private static class ImageFactory
-	{
-		private static RGB rgb(Color color, boolean greyed, boolean translucent) {
-			RGB rgb = (greyed) ? new RGB(127, 127, 127) : color.rgb();
-			if (translucent) {
-				rgb = new RGB(translucify(rgb.red), translucify(rgb.green), translucify(rgb.blue));
-			}
-			return rgb;
-		}
-		
-		private static int translucify(int color) {
-			return 255 - (int) ((255 - color) * 0.3);
-		}
-		
-		public static Image image(Color color, boolean greyed, boolean translucent) {
-			PaletteData pd = new PaletteData(new RGB[] {rgb(color, greyed, translucent)});
-			ImageData id = new ImageData(20, 20, 1, pd);
-			for (int x = 0; x < 20; x ++) {
-				for (int y = 0; y < 20; y ++) {
-					id.setPixel(x, y, 0);
-				}
-			}
-			return new Image(Display.getCurrent(), id);
-		}
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java
deleted file mode 100644
index 00af4be..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java
+++ /dev/null
@@ -1,563 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.jface;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider;
-import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.NotNullFilter;
-import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.CompositeCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-@SuppressWarnings("nls")
-public class DelegatingTreeContentProviderUiTest extends ApplicationWindow
-{
-	private final Root root;
-
-	private WritablePropertyValueModel<TreeNode> selectedNode;
-
-	private TreeViewer controlTree;
-
-	private TreeViewer viewTree;
-
-	private Text nodeNameText;
-
-
-	public static void main(String[] args) {
-		Window window = new DelegatingTreeContentProviderUiTest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private DelegatingTreeContentProviderUiTest(String[] args) {
-		super(null);
-		this.root = new Root();
-		this.root.addChild("Parent_1");
-		this.selectedNode = new SimplePropertyValueModel<TreeNode>(this.root);
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(800, 400);
-		parent.setLayout(new GridLayout());
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		mainPanel.setLayout(new GridLayout());
-		buildTreePanel(mainPanel);
-		buildControlPanel(mainPanel);
-		return mainPanel;
-	}
-
-	private void buildTreePanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout(2, true));
-		buildControlTreePanel(panel);
-		buildViewTreePanel(panel);
-	}
-
-	private void buildControlTreePanel(Composite parent) {
-		controlTree = buildTreePanel(
-				parent, "Control tree",
-				new DelegatingTreeContentAndLabelProvider(new ControlTreeItemContentProviderFactory()),
-				new LabelProvider());
-		controlTree.addSelectionChangedListener(buildTreeSelectionChangedListener());
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						controlTree.setSelection(new StructuredSelection(event.getNewValue()));
-					}
-				}
-			);
-	}
-
-	private void buildViewTreePanel(Composite parent) {
-		viewTree = buildTreePanel(
-				parent, "View tree",
-				new DelegatingTreeContentAndLabelProvider(new ViewTreeItemContentProviderFactory()),
-				new LabelProvider());
-	}
-
-	private TreeViewer buildTreePanel(Composite parent, String labelText, ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout());
-
-		Label label = new Label(panel, SWT.LEFT);
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		label.setText(labelText);
-
-		final TreeViewer tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-		tree.setContentProvider(contentProvider);
-		tree.setLabelProvider(labelProvider);
-		tree.setInput(root);
-
-		return tree;
-	}
-
-	private ISelectionChangedListener buildTreeSelectionChangedListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				TreeNode selection = (TreeNode) ((IStructuredSelection) event.getSelection()).getFirstElement();
-				selectedNode.setValue((selection == null) ? root : selection);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-		panel.setLayout(new GridLayout(6, false));
-		buildNodeNameText(panel);
-		buildAddChildACI().fill(panel);
-		buildAddNestedChildACI().fill(panel);
-		buildRemoveACI().fill(panel);
-		buildClearModelACI().fill(panel);
-		buildRestoreModelACI().fill(panel);
-	}
-
-	private void buildNodeNameText(Composite parent) {
-		nodeNameText = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		nodeNameText.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-	}
-
-	private ActionContributionItem buildAddChildACI() {
-		final Action action = new Action("Add child", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				addChild();
-			}
-		};
-		action.setToolTipText("Add a child with the given name");
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(((TreeNode) event.getNewValue()).canHaveChildren());
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildAddNestedChildACI() {
-		final Action action = new Action("Add nested child", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				addNestedChild();
-			}
-		};
-		action.setToolTipText("Add a nested child with the given name");
-		action.setEnabled(false);
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(((TreeNode) event.getNewValue()).canHaveNestedChildren());
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRemoveACI() {
-		final Action action = new Action("Remove", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				remove();
-			}
-		};
-		action.setToolTipText("Remove the selected node");
-		action.setEnabled(false);
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(event.getNewValue() != root);
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("Clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				clearModel();
-			}
-		};
-		action.setToolTipText("Clear the model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("Restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				restoreModel();
-			}
-		};
-		action.setToolTipText("Restore the model");
-		return new ActionContributionItem(action);
-	}
-
-	void addChild() {
-		String nodeName = nodeNameText.getText();
-		if (nodeName.length() != 0) {
-			selectedNode.getValue().addChild(nodeName);
-		}
-	}
-
-	void addNestedChild() {
-		String nodeName = nodeNameText.getText();
-		if (nodeName.length() != 0) {
-			selectedNode.getValue().addNestedChild(nodeName);
-		}
-	}
-
-	void remove() {
-		TreeNode node = selectedNode.getValue();
-		node.parent().removeChild(node);
-	}
-
-	void clearModel() {
-		controlTree.setInput(null);
-		viewTree.setInput(null);
-	}
-
-	void restoreModel() {
-		controlTree.setInput(root);
-		viewTree.setInput(root);
-	}
-
-
-	static abstract class AbstractTreeItemContentProviderFactory
-		implements TreeItemContentProviderFactory
-	{
-		public TreeItemContentProvider buildItemContentProvider(
-			Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			return new GenericTreeItemContentProvider(
-				(TreeNode) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-		}
-	}
-
-
-	static class ControlTreeItemContentProviderFactory extends AbstractTreeItemContentProviderFactory
-	{
-
-	}
-
-
-	static class ViewTreeItemContentProviderFactory
-		extends AbstractTreeItemContentProviderFactory
-	{
-		@Override
-		public TreeItemContentProvider buildItemContentProvider(
-				Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			if (item instanceof Parent) {
-				return new ViewTreeParentItemContentProvider(
-						(Parent) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-			}
-			return super.buildItemContentProvider(item, contentAndLabelProvider);
-		}
-	}
-
-
-	static class GenericTreeItemContentProvider extends AbstractTreeItemContentProvider<TreeNode>
-	{
-		public GenericTreeItemContentProvider(
-				TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) {
-			super(treeNode, treeContentAndLabelProvider);
-		}
-
-		protected TreeNode treeNode() {
-			return (TreeNode) getModel();
-		}
-
-		@Override
-		public TreeNode getParent() {
-			return treeNode().parent();
-		}
-
-		@Override
-		protected CollectionValueModel<TreeNode> buildChildrenModel() {
-			return new ListCollectionValueModelAdapter<TreeNode>(
-			new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, treeNode()) {
-				@Override
-				protected ListIterator<TreeNode> listIterator_() {
-					return treeNode().children();
-				}
-			});
-		}
-	}
-
-	static class ViewTreeParentItemContentProvider extends GenericTreeItemContentProvider
-	{
-		public ViewTreeParentItemContentProvider(
-				TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) {
-			super(treeNode, treeContentAndLabelProvider);
-		}
-
-		@Override
-		public TreeNode getParent() {
-			TreeNode parent = super.getParent();
-			if (parent instanceof Nest) {
-				parent = parent.parent();
-			}
-			return parent;
-		}
-
-		@Override
-		protected CollectionValueModel<TreeNode> buildChildrenModel() {
-				return new CompositeCollectionValueModel<TreeNode, TreeNode>(super.buildChildrenModel()) {
-						@Override
-						protected CollectionValueModel<TreeNode> transform(TreeNode value) {
-							if (value instanceof Nest) {
-								final Nest nest = (Nest) value;
-								return new ListCollectionValueModelAdapter<TreeNode>(
-										new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, nest) {
-											@Override
-											protected ListIterator<TreeNode> listIterator_() {
-												return nest.children();
-											}
-										}
-									);
-							}
-							return new StaticCollectionValueModel<TreeNode>(CollectionTools.collection(value));
-						}
-					};
-		}
-	}
-
-
-	static class LabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-
-		public String getText(Object element) {
-			return ((TreeNode) element).getName();
-		}
-	}
-
-
-	static abstract class TreeNode extends AbstractModel
-	{
-		private TreeNode parent;
-
-		protected final List<TreeNode> children;
-		public final static String CHILDREN_LIST = "children";
-
-		protected String name;
-		public final static String NAME_PROPERTY = "name";
-
-
-		public TreeNode(TreeNode parent, String name) {
-			this.parent = parent;
-			this.children = new ArrayList<TreeNode>();
-			this.name = name;
-		}
-
-		public TreeNode parent() {
-			return parent;
-		}
-
-		public ListIterator<TreeNode> children() {
-			return new ReadOnlyListIterator<TreeNode>(children);
-		}
-
-		protected void addChild(TreeNode child) {
-			addItemToList(child, children, CHILDREN_LIST);
-		}
-
-		public void removeChild(TreeNode child) {
-			removeItemFromList(child, children, CHILDREN_LIST);
-		}
-
-		public void removeChild(int index) {
-			removeItemFromList(index, children, CHILDREN_LIST);
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String newName) {
-			String oldName = name;
-			name = newName;
-			firePropertyChanged(NAME_PROPERTY, oldName, newName);
-		}
-
-		public boolean canHaveChildren() {
-			return false;
-		}
-
-		public void addChild(String name) {
-			throw new UnsupportedOperationException();
-		}
-
-		public boolean canHaveNestedChildren() {
-			return false;
-		}
-
-		public void addNestedChild(String name) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(getName());
-		}
-	}
-
-
-	static class Root extends TreeNode
-	{
-		public Root() {
-			super(null, null);
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return true;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Parent(this, name));
-		}
-	}
-
-
-	static class Parent extends TreeNode
-	{
-		public Parent(TreeNode parent, String name) {
-			super(parent, name);
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return true;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Child(this, name));
-		}
-
-		@Override
-		public boolean canHaveNestedChildren() {
-			return true;
-		}
-
-		@Override
-		public void addNestedChild(String name) {
-			TreeNode nest = new Nest(this);
-			addChild(nest);
-			nest.addChild(name);
-		}
-
-		public Iterator<Child> nestlessChildren() {
-			return new FilteringIterator<Child>(
-					new TransformationIterator<TreeNode, Child>(children()) {
-						@Override
-						protected Child transform(TreeNode next) {
-							if (next instanceof Nest) {
-								return ((Nest) next).child();
-							}
-							return (Child) next;
-						}
-					},
-					NotNullFilter.<Child>instance()
-				);
-		}
-	}
-
-
-	static class Nest extends TreeNode
-	{
-		public Nest(TreeNode parent) {
-			super(parent, "nest");
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return children.size() == 0;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Child(this, name));
-		}
-
-		/* can only have one child */
-		public Child child() {
-			return (children.isEmpty()) ? null : (Child) children.get(0);
-		}
-	}
-
-
-	static class Child extends TreeNode
-	{
-		public Child(TreeNode parent, String name) {
-			super(parent, name);
-		}
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java
deleted file mode 100644
index d987d9e..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java
+++ /dev/null
@@ -1,777 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.common.utility.internal.StringConverter;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public abstract class AbstractComboModelAdapterTest {
-
-	private Model model;
-	private WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder;
-	private Shell shell;
-	private WritablePropertyValueModel<Model> subjectHolder;
-
-	protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter();
-
-	protected final ListValueModel<SimpleDisplayable> buildEmptyListHolder() {
-		return new SimpleListValueModel<SimpleDisplayable>();
-	}
-
-	private List<SimpleDisplayable> buildList() {
-		List<SimpleDisplayable> list = new ArrayList<SimpleDisplayable>();
-		populateCollection(list);
-		return list;
-	}
-
-	protected final ListValueModel<SimpleDisplayable> buildListHolder() {
-		return new ListAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEMS_LIST) {
-			@Override
-			protected ListIterator<SimpleDisplayable> listIterator_() {
-				return subject.items();
-			}
-
-			@Override
-			protected int size_() {
-				return subject.itemsSize();
-			}
-		};
-	}
-
-	protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter();
-
-	private SimpleDisplayable buildSelectedItem() {
-		return new SimpleDisplayable("baz");
-	}
-
-	private WritablePropertyValueModel<SimpleDisplayable> buildSelectedItemHolder() {
-		return new PropertyAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEM_PROPERTY) {
-			@Override
-			protected SimpleDisplayable buildValue_() {
-				return subject.getItem();
-			}
-
-			@Override
-			protected void setValue_(SimpleDisplayable value) {
-				subject.setItem(value);
-			}
-		};
-	}
-
-	protected final StringConverter<SimpleDisplayable> buildStringConverter() {
-		return new StringConverter<SimpleDisplayable>() {
-			public String convertToString(SimpleDisplayable value) {
-				return (value == null) ? "" : value.displayString();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Model> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Model>();
-	}
-
-	public abstract String comboSelectedItem();
-
-	protected abstract boolean emptyComboCanHaveSelectedValue();
-
-	protected abstract String itemAt(int index);
-
-	protected abstract int itemCounts();
-
-	private void populateCollection(Collection<SimpleDisplayable> c) {
-		c.add(new SimpleDisplayable("foo"));
-		c.add(new SimpleDisplayable("bar"));
-		c.add(new SimpleDisplayable("baz"));
-		c.add(new SimpleDisplayable("joo"));
-		c.add(new SimpleDisplayable("jar"));
-		c.add(new SimpleDisplayable("jaz"));
-	}
-
-	protected final WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder() {
-		return selectedItemHolder;
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell              = new Shell(Display.getCurrent());
-		model              = new Model();
-		subjectHolder      = buildSubjectHolder();
-		selectedItemHolder = buildSelectedItemHolder();
-	}
-
-	protected final Shell shell() {
-		return shell;
-	}
-
-	protected final WritablePropertyValueModel<Model> subjectHolder() {
-		return subjectHolder;
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell              = null;
-		subjectHolder      = null;
-		selectedItemHolder = null;
-	}
-
-	private void testItems() {
-
-		assertEquals(
-			"The count of items is not in sync with the model",
-			model.itemsSize(),
-			itemCounts()
-		);
-
-		for (int index = 0; index < model.itemsSize(); index++) {
-			assertEquals(
-				"The item at index " + index + " is not the same between the model and the combo",
-				model.itemAt(index).displayString(),
-				itemAt(index)
-			);
-		}
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedAfter_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-		testRemoveItems_AddedAfter();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedAfter_RemoveItems_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-		testRemoveItems_AddedAfter();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedBefore_RemoveItems_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		buildEditableComboModelAdapter();
-		testSelectedItem(null);
-		testItems();
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedBefore_RemoveItems_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		buildReadOnlyComboModelAdapter();
-		testSelectedItem(null);
-		testItems();
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		model.addItems(buildList());
-		subjectHolder.setValue(model);
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		model.addItems(buildList());
-		subjectHolder.setValue(model);
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_Editable() throws Exception {
-
-		model.addItems(buildList());
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_ReadOnly() throws Exception {
-
-		model.addItems(buildList());
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_NoItems_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_SelectedItemChanged_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		SimpleDisplayable selectedItem = model.itemAt(0);
-
-		AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter();
-		SelectionListener selectionListener = new SelectionListener();
-		adapter.addSelectionChangeListener(selectionListener);
-
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-		testSelectedItem(null);
-
-		testSelectedItemChanged(selectedItem, selectionListener);
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Editable() throws Exception {
-
-		SimpleDisplayable selectedItem = buildSelectedItem();
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_Editable() throws Exception {
-
-		SimpleDisplayable selectedItem = buildSelectedItem();
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Editable() throws Exception {
-
-		model.addItems(buildList());
-		SimpleDisplayable selectedItem = model.itemAt(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_Editable() throws Exception {
-
-		model.addItems(buildList());
-		SimpleDisplayable selectedItem = model.itemAt(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_Items_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_Items_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_NoItems_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_SelectedItemChanged_Editable() throws Exception {
-
-		model.addItems(buildList());
-
-		SimpleDisplayable selectedItem = model.itemAt(3);
-		subjectHolder.setValue(model);
-
-		AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter();
-		SelectionListener selectionListener = new SelectionListener();
-		adapter.addSelectionChangeListener(selectionListener);
-
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-		testSelectedItem(null);
-
-		testSelectedItemChanged(selectedItem, selectionListener);
-	}
-
-	private void testNullSubject() throws Exception {
-
-		assertNull("The selected item should be null", selectedItemHolder.getValue());
-
-		selectedItemHolder.setValue(buildSelectedItem());
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-
-		// Null because the subject holder doesn't have the subject set
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_Items_Editable() throws Exception {
-		buildEditableComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_Items_ReadOnly() throws Exception {
-		buildReadOnlyComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_NoItems_Editable() throws Exception {
-		buildEditableComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-		buildReadOnlyComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	private void testRemoveItems_AddedAfter() {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-		testSelectedItem(null);
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-
-		testItems();
-		testSelectedItem(null);
-	}
-
-	private void testSelectedItem(SimpleDisplayable selectedItem) {
-
-		if (selectedItem == null) {
-
-			assertNull(
-				"The selected item is supposed to be null",
-				model.getItem()
-			);
-
-			assertEquals(
-				"The combo's selected item should be null",
-				"",
-				comboSelectedItem()
-			);
-		}
-		else if (!emptyComboCanHaveSelectedValue()) {
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem,
-				model.getItem()
-			);
-
-			assertEquals(
-				"The combo's selected item should be null",
-				"",
-				comboSelectedItem()
-			);
-		}
-		else {
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem,
-				model.getItem()
-			);
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem.displayString(),
-				comboSelectedItem()
-			);
-		}
-	}
-
-	private void testSelectedItemChanged(SimpleDisplayable selectedItem,
-	                                     SelectionListener selectionListener) {
-
-		// Test 1
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 2
-		selectedItem = model.itemAt(1);
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 3
-		selectedItem = null;
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item wasn't set properly", model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 3
-		selectedItem = model.itemAt(2);
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-	}
-
-	private static class Model extends AbstractModel {
-
-		private SimpleDisplayable item;
-		private List<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		private boolean setItemCalled;
-
-		static final String ITEM_PROPERTY = "item";
-		static final String ITEMS_LIST = "items";
-
-		void addItems(Iterator<SimpleDisplayable> items) {
-			addItemsToList(items, this.items, ITEMS_LIST);
-		}
-
-		void addItems(List<SimpleDisplayable> items) {
-			addItemsToList(items, this.items, ITEMS_LIST);
-		}
-
-		void clearItemCalledFlag() {
-			setItemCalled = false;
-		}
-
-		SimpleDisplayable getItem() {
-			return item;
-		}
-
-		boolean isSetItemCalled() {
-			return setItemCalled;
-		}
-
-		SimpleDisplayable itemAt(int index) {
-			return this.items.get(index);
-		}
-
-		ListIterator<SimpleDisplayable> items() {
-			return items.listIterator();
-		}
-
-		int itemsSize() {
-			return items.size();
-		}
-
-		void removeItems(Iterator<SimpleDisplayable> items) {
-			removeItemsFromList(items, this.items, ITEMS_LIST);
-		}
-
-		void setItem(SimpleDisplayable item) {
-			setItemCalled = true;
-
-			SimpleDisplayable oldItem = this.item;
-			this.item = item;
-			firePropertyChanged(ITEM_PROPERTY, oldItem, item);
-		}
-	}
-
-	private class SelectionListener implements SelectionChangeListener<SimpleDisplayable> {
-
-		private SimpleDisplayable item;
-		private boolean listenerNotified;
-
-		void clearInfo() {
-			this.listenerNotified = false;
-			this.item = null;
-		}
-
-		SimpleDisplayable getItem() {
-			return item;
-		}
-
-		public boolean isListenerNotified() {
-			return listenerNotified;
-		}
-
-		public void selectionChanged(SelectionChangeEvent<SimpleDisplayable> e) {
-			listenerNotified = true;
-			item = e.selectedItem();
-		}
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java
deleted file mode 100644
index f237931..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter;
-import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.junit.After;
-
-public class ComboModelAdapterTest extends AbstractComboModelAdapterTest {
-
-	private Combo combo;
-	private boolean editable;
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter() {
-
-		combo = new Combo(shell(), SWT.NULL);
-		editable = true;
-
-		return ComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter() {
-
-		combo = new Combo(shell(), SWT.READ_ONLY);
-		editable = false;
-
-		return ComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	public String comboSelectedItem() {
-		return combo.getText();
-	}
-
-	@Override
-	protected boolean emptyComboCanHaveSelectedValue() {
-		return editable;
-	}
-
-	@Override
-	protected String itemAt(int index) {
-		return this.combo.getItem(index);
-	}
-
-	@Override
-	protected int itemCounts() {
-		return combo.getItemCount();
-	}
-
-	@After
-	@Override
-	public void tearDown() throws Exception {
-		super.tearDown();
-		combo = null;
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java
deleted file mode 100644
index fb7f5d3..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@SuiteClasses
-({
-	ComboModelAdapterTest.class,
-	SpinnerModelAdapterTest.class,
-	TableModelAdapterTest.class
-})
-@RunWith(Suite.class)
-public final class JptUiSWTTests {
-
-	private JptUiSWTTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(new JUnit4TestAdapter(JptUiSWTTests.class));
-		return suite;
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java
deleted file mode 100644
index f8792a4..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import org.eclipse.jpt.common.ui.internal.swt.SpinnerModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class SpinnerModelAdapterTest {
-
-	private Model model;
-	private Shell shell;
-	private WritablePropertyValueModel<Model> subjectHolder;
-
-	private WritablePropertyValueModel<Model> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Model>();
-	}
-
-	private WritablePropertyValueModel<Integer> buildValueHolder() {
-		return new PropertyAspectAdapter<Model, Integer>(subjectHolder, Model.VALUE_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return subject.getValue();
-			}
-
-			@Override
-			protected void setValue_(Integer value) {
-				subject.setValue(value);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell              = new Shell(Display.getCurrent());
-		model              = new Model();
-		subjectHolder      = buildSubjectHolder();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell         = null;
-		subjectHolder = null;
-	}
-
-	@Test
-	public void testDisposed() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be the model's value",
-			model.getValue(),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-
-		// Change the value in the model
-		spinner.dispose();
-
-		value = 4;
-		model.setValue(value);
-
-		assertEquals(
-			"The model's value was somehow changed",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_1() {
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = new SimplePropertyValueModel<Integer>();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_2() {
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_3() {
-
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-	}
-
-	@Test
-	public void testInitialization_4() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the value coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be " + value,
-			Integer.valueOf(value),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-	}
-
-	@Test
-	public void testValueChanged() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be the model's value",
-			model.getValue(),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-
-		// Change the value in the model
-		value = 4;
-		model.setValue(value);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The model's value was somehow changed",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-
-		// Change the value from the spinner
-		value = 6;
-		spinner.setSelection(value);
-
-		assertEquals(
-			"The spinner's value should be the new value set",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The model's value was supposed to be updated",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-
-		// Disconnect from model
-		subjectHolder.setValue(null);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-	}
-
-	private static class Model extends AbstractModel {
-
-		private boolean setValueCalled;
-		private Integer value;
-
-		static final String VALUE_PROPERTY = "value";
-
-		void clearSetValueCalledFlag() {
-			setValueCalled = false;
-		}
-
-		Integer getValue() {
-			return value;
-		}
-
-		boolean isSetValueCalled() {
-			return setValueCalled;
-		}
-
-		void setValue(Integer value) {
-			setValueCalled = true;
-
-			Integer oldValue = this.value;
-			this.value = value;
-			firePropertyChanged(VALUE_PROPERTY, oldValue, value);
-		}
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java
deleted file mode 100644
index f8e6dd0..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java
+++ /dev/null
@@ -1,1201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class TableModelAdapterTest {
-
-	private Shell shell;
-	private WritablePropertyValueModel<Manager> subjectHolder;
-
-	private ColumnAdapter<Employee> buildColumnAdapter() {
-		return new TableColumnAdapter();
-	}
-
-	private WritablePropertyValueModel<Employee> buildEmployeeHolder() {
-		return new SimplePropertyValueModel<Employee>();
-	}
-
-	private SimpleCollectionValueModel<Employee> buildEmployeeHolders() {
-		return new SimpleCollectionValueModel<Employee>();
-	}
-
-	private ListValueModel<Employee> buildEmployeeListHolder() {
-		return new ListAspectAdapter<Manager, Employee>(subjectHolder, Manager.EMPLOYEES_LIST) {
-			@Override
-			protected ListIterator<Employee> listIterator_() {
-				return subject.employees();
-			}
-
-			@Override
-			protected int size_() {
-				return subject.employeesSize();
-			}
-		};
-	}
-
-	private ITableLabelProvider buildLabelProvider() {
-		return new TableLabelProvider();
-	}
-
-	private SelectionChangeListener<Employee> buildSelectionChangeListener(final Collection<Employee> employees) {
-		return new SelectionChangeListener<Employee>() {
-			public void selectionChanged(SelectionChangeEvent<Employee> e) {
-				employees.clear();
-				CollectionTools.addAll(employees, e.selection());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Manager> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Manager>();
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell         = new Shell(Display.getCurrent());
-		subjectHolder = buildSubjectHolder();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell         = null;
-		subjectHolder = null;
-	}
-
-	@Test
-	public void testChanged() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Table was populated
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		// Change the list of Employees
-		ArrayList<Employee> employees = new ArrayList<Employee>(3);
-		employees.add(employee3);
-		employees.add(employee2);
-		employees.add(employee1);
-		manager.changeEmployees(employees);
-
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		testTableItemProperties(table, 0, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, 2, expectedName1, expectedManager1, expectedTitle1);
-	}
-
-	@Test
-	public void testCleared() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Table was populated
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		// Test removing them all
-		manager.removeAllEmployees();
-
-		Assert.assertEquals("The list holder should have been cleared", 0, listHolder.size());
-		Assert.assertEquals("The Table should have been cleared", 0, table.getItemCount());
-	}
-
-	@Test
-	public void testItemAdded() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-
-		// Retrieve the TableItem representing the new Employee
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle);
-	}
-
-	@Test
-	public void testItemMoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Employees were added to the Table
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		// Move an Employee up the list
-		manager.moveEmployeeUp(employee2);
-
-		int index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not moved in the table model", 1, index1);
-
-		int index2 = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2);
-
-		int index3 = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 should not have been moved in the table model", 2, index3);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-
-		// Move an Employee down the list
-		manager.moveEmployeeDown(employee1);
-
-		index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 should not have been moved in the table model", 2, index1);
-
-		index2 = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2);
-
-		index3 = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not moved in the table model", 1, index3);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-	}
-
-	@Test
-	public void testItemRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Make sure it was added to the model
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle);
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		// Now test the item being removed
-		manager.removeEmployee(employee);
-		index = tableModel.indexOf(employee);
-		Assert.assertEquals("The Employee was not removed from the table model", -1, index);
-		Assert.assertEquals("The number of TableItem should be 0", 0, table.getItemCount());
-	}
-
-	@Test
-	public void testItemReplaced() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		Employee employee1 = manager.addEmployee(expectedName1, expectedTitle1, expectedManager1);
-		Assert.assertNotNull("The new Employee was not created", employee1);
-
-		// Make sure it was added to the model
-		int index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index1);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index1);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-
-		// Replace the Employee
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		manager.replace(employee1, employee2);
-
-		int index2 = tableModel.indexOf(employee2);
-		Assert.assertSame("The Employee that got replaced should be at index " + index1, index1, index2);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-	}
-
-	@Test
-	public void testItemsAdded() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Retrieve the TableItems representing the employees
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		int index = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not added to the table model", 0, index);
-
-		index = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not added to the table model", 1, index);
-
-		index = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not added to the table model", 2, index);
-
-		// Make sure the TableItem was correctly populated
-		testTableItemProperties(table, 0, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, 2, expectedName3, expectedManager3, expectedTitle3);
-	}
-
-	@Test
-	public void testItemsMoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		String expectedName4    = "Dali_4";
-		String expectedManager4 = "WTP_4";
-		String expectedTitle4   = "plug-in_4";
-
-		String expectedName5    = "Dali_5";
-		String expectedManager5 = "WTP_5";
-		String expectedTitle5   = "plug-in_5";
-
-		String expectedName6    = "Dali_6";
-		String expectedManager6 = "WTP_6";
-		String expectedTitle6   = "plug-in_6";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-		Employee employee4 = new Employee(expectedName4, expectedTitle4, expectedManager4);
-		Employee employee5 = new Employee(expectedName5, expectedTitle5, expectedManager5);
-		Employee employee6 = new Employee(expectedName6, expectedTitle6, expectedManager6);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-		manager.addEmployee(employee4);
-		manager.addEmployee(employee5);
-		manager.addEmployee(employee6);
-
-		// Make sure the Employees were added to the Table
-		Assert.assertEquals("The number of TableItem should be 6", 6, table.getItemCount());
-
-		// Move an Employee up the list
-		ArrayList<Employee> employees = new ArrayList<Employee>(3);
-		employees.add(employee3);
-		employees.add(employee4);
-		employees.add(employee5);
-		manager.moveEmployees(employees, 0);
-
-		int index1 = tableModel.indexOf(employee1);
-		int index2 = tableModel.indexOf(employee2);
-		int index3 = tableModel.indexOf(employee3);
-		int index4 = tableModel.indexOf(employee4);
-		int index5 = tableModel.indexOf(employee5);
-		int index6 = tableModel.indexOf(employee6);
-
-		Assert.assertEquals("The Employee 1 is not at the right index", 3, index1);
-		Assert.assertEquals("The Employee 2 is not at the right index", 4, index2);
-		Assert.assertEquals("The Employee 3 is not at the right index", 0, index3);
-		Assert.assertEquals("The Employee 4 is not at the right index", 1, index4);
-		Assert.assertEquals("The Employee 5 is not at the right index", 2, index5);
-		Assert.assertEquals("The Employee 6 is not at the right index", 5, index6);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4);
-		testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5);
-		testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6);
-
-		// Move an Employee down the list
-		employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee2);
-		manager.moveEmployees(employees, 4);
-
-		index1 = tableModel.indexOf(employee1);
-		index2 = tableModel.indexOf(employee2);
-		index3 = tableModel.indexOf(employee3);
-		index4 = tableModel.indexOf(employee4);
-		index5 = tableModel.indexOf(employee5);
-		index6 = tableModel.indexOf(employee6);
-
-		Assert.assertEquals("The Employee 1 is not at the right index", 4, index1);
-		Assert.assertEquals("The Employee 2 is not at the right index", 5, index2);
-		Assert.assertEquals("The Employee 3 is not at the right index", 0, index3);
-		Assert.assertEquals("The Employee 4 is not at the right index", 1, index4);
-		Assert.assertEquals("The Employee 5 is not at the right index", 2, index5);
-		Assert.assertEquals("The Employee 6 is not at the right index", 3, index6);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4);
-		testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5);
-		testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6);
-	}
-
-	@Test
-	public void testItemsRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Retrieve the TableItems representing the employees
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		int index = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not added to the table model", 0, index);
-
-		index = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not added to the table model", 1, index);
-
-		index = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not added to the table model", 2, index);
-
-		// Remove 2 items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		manager.removeEmployees(employees);
-
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-	}
-
-	@Test
-	public void testPropertyChanged() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-
-		// Make sure it was added to the model
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		// Name property
-		String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		expectedName = "Jpt";
-		employee.setName(expectedName);
-
-		actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		// Manager property
-		String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-
-		expectedManager = "boss";
-		employee.setManager(expectedManager);
-
-		actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-
-		// Title property
-		String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-
-		expectedTitle = "EclipseLink";
-		employee.setTitle(expectedTitle);
-
-		actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-	}
-
-	@Test
-	public void testSelectedItemsAddedRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemsHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		selectedItemsHolder.addAll(employees);
-
-		Collection<Employee> actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size());
-
-		actualEmployees.remove(employee1);
-		actualEmployees.remove(employee3);
-
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-
-		// Test removing selected items
-		selectedItemsHolder.remove(employee1);
-
-		actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 1", 1, actualEmployees.size());
-
-		actualEmployees.remove(employee3);
-
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-	}
-
-	@Test
-	public void testSelectedItemsCleared() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemsHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		selectedItemsHolder.addAll(employees);
-
-		Collection<Employee> actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size());
-
-		actualEmployees.remove(employee1);
-		actualEmployees.remove(employee3);
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-
-		// Test removing selected items
-		selectedItemsHolder.clear();
-
-		actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be ", 0, actualEmployees.size());
-	}
-
-	@Test
-	public void testSelectionChangeListener() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			buildEmployeeListHolder(),
-			buildEmployeeHolder(),
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		Collection<Employee> employees = new ArrayList<Employee>();
-		tableModel.addSelectionChangeListener(buildSelectionChangeListener(employees));
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		table.setSelection(new int[] { 0, 2 });
-
-		// It seems a manual selection doesn't send any selection event
-		tableModel.tableSelectionChanged(null);
-
-		Assert.assertNotNull("The collection of selected items can't be null", employees);
-		Assert.assertEquals("The count of selected items should be 2", 2, employees.size());
-
-		employees.remove(employee1);
-		employees.remove(employee3);
-		Assert.assertTrue("The selected items was not retrieved correctly", employees.isEmpty());
-
-		// Test adding selected items
-		employees.add(employee1);
-		employees.add(employee3);
-		table.deselectAll();
-
-		// It seems a manual selection doesn't send any selection event
-		tableModel.tableSelectionChanged(null);
-
-		Assert.assertNotNull("The collection of selected items can't be null", employees);
-		Assert.assertEquals("The count of selected items should be 0", 0, employees.size());
-	}
-
-	private void testTableItemProperties(Table table,
-	                                     int index,
-	                                     String expectedName,
-	                                     String expectedManager,
-	                                     String expectedTitle)
-	{
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the Employee", tableItem);
-
-		String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-
-		String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-	}
-
-	private class Employee extends AbstractModel {
-
-		private String manager;
-		private String name;
-		private String title;
-
-		static final String MANAGER_PROPERTY = "manager";
-		static final String NAME_PROPERTY = "name";
-		static final String TITLE_PROPERTY = "title";
-
-		Employee(String name, String title, String manager) {
-			super();
-
-			this.name    = name;
-			this.title   = title;
-			this.manager = manager;
-		}
-
-		String getManager() {
-			return manager;
-		}
-
-		String getName() {
-			return name;
-		}
-
-		String getTitle() {
-			return title;
-		}
-
-		void setManager(String manager) {
-			String oldManager = this.manager;
-			this.manager = manager;
-			firePropertyChanged(MANAGER_PROPERTY, oldManager, manager);
-		}
-
-		void setName(String name) {
-			String oldName = this.name;
-			this.name = name;
-			firePropertyChanged(NAME_PROPERTY, oldName, name);
-		}
-
-		void setTitle(String title) {
-			String oldTitle = this.title;
-			this.title = title;
-			firePropertyChanged(TITLE_PROPERTY, oldTitle, title);
-		}
-	}
-
-	private class Manager extends AbstractModel {
-
-		private List<Employee> employees;
-
-		static final String EMPLOYEES_LIST = "employees";
-
-		Manager() {
-			super();
-			employees = new ArrayList<Employee>();
-		}
-
-		Employee addEmployee(Employee employee) {
-			addItemToList(employee, employees, EMPLOYEES_LIST);
-			return employee;
-		}
-
-		Employee addEmployee(String name, String title, String manager) {
-			Employee employee = new Employee(name, title, manager);
-			return addEmployee(employee);
-		}
-
-		void changeEmployees(List<Employee> newEmployees) {
-			this.synchronizeList(newEmployees, this.employees, EMPLOYEES_LIST);
-		}
-
-		ListIterator<Employee> employees() {
-			return new CloneListIterator<Employee>(employees);
-		}
-
-		int employeesSize() {
-			return employees.size();
-		}
-
-		void moveEmployeeDown(Employee employee) {
-			int index = employees.indexOf(employee);
-			moveItemInList(index + 1, index, employees, EMPLOYEES_LIST);
-		}
-
-		void moveEmployees(Collection<Employee> employees, int targetIndex) {
-
-			int sourceIndex = Integer.MAX_VALUE;
-
-			for (Employee employee : employees) {
-				sourceIndex = Math.min(sourceIndex, this.employees.indexOf(employee));
-			}
-
-			moveItemsInList(
-				targetIndex,
-				sourceIndex,
-				employees.size(),
-				this.employees,
-				EMPLOYEES_LIST
-			);
-		}
-
-		void moveEmployeeUp(Employee employee) {
-			int index = employees.indexOf(employee);
-			moveItemInList(index - 1, index, employees, EMPLOYEES_LIST);
-		}
-
-		void removeAllEmployees() {
-			clearList(employees, EMPLOYEES_LIST);
-		}
-
-		void removeEmployee(Employee employee) {
-			removeItemFromList(employee, employees, EMPLOYEES_LIST);
-		}
-
-		void removeEmployees(Collection<Employee> employees) {
-			removeItemsFromList(employees.iterator(), this.employees, EMPLOYEES_LIST);
-		}
-
-		void replace(Employee oldEmployee, Employee newEmployee) {
-			replaceItemInList(oldEmployee, newEmployee, employees, EMPLOYEES_LIST);
-		}
-	}
-
-	private class TableColumnAdapter implements ColumnAdapter<Employee> {
-
-		static final int COLUMN_COUNT = 3;
-		static final int MANAGER_COLUMN = 2;
-		static final int NAME_COLUMN = 0;
-		static final int TITLE_COLUMN = 1;
-
-		private WritablePropertyValueModel<String> buildManagerHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.MANAGER_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getManager();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setManager(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildNameHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.NAME_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getName();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setName(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildTitleHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.TITLE_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getTitle();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setTitle(value);
-				}
-			};
-		}
-
-		public WritablePropertyValueModel<?>[] cellModels(Employee subject) {
-			WritablePropertyValueModel<?>[] holders = new WritablePropertyValueModel<?>[3];
-			holders[NAME_COLUMN] = buildNameHolder(subject);
-			holders[TITLE_COLUMN] = buildTitleHolder(subject);
-			holders[MANAGER_COLUMN] = buildManagerHolder(subject);
-			return holders;
-		}
-
-		public int columnCount() {
-			return COLUMN_COUNT;
-		}
-
-		public String columnName(int columnIndex) {
-			return String.valueOf(columnIndex);
-		}
-	}
-
-	private class TableLabelProvider extends LabelProvider
-	                                 implements ITableLabelProvider {
-
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			Employee employee = (Employee) element;
-
-			if (columnIndex == TableColumnAdapter.NAME_COLUMN) {
-				return employee.getName();
-			}
-
-			if (columnIndex == TableColumnAdapter.TITLE_COLUMN) {
-				return employee.getTitle();
-			}
-
-			return employee.getManager();
-		}
-	}
-
-	private class TableModel extends TableModelAdapter<Employee> {
-
-		TableModel(ListValueModel<Employee> listHolder,
-		           CollectionValueModel<Employee> selectedItemsHolder,
-		           Table table,
-		           ColumnAdapter<Employee> columnAdapter,
-		           ITableLabelProvider labelProvider) {
-
-			super(listHolder,
-			      selectedItemsHolder,
-			      table,
-			      columnAdapter,
-			      labelProvider);
-		}
-
-		TableModel(ListValueModel<Employee> listHolder,
-		           WritablePropertyValueModel<Employee> selectedItemHolder,
-		           Table table,
-		           ColumnAdapter<Employee> columnAdapter,
-		           ITableLabelProvider labelProvider) {
-
-			super(listHolder,
-					new PropertyCollectionValueModelAdapter<Employee>(selectedItemHolder),
-			      table,
-			      columnAdapter,
-			      labelProvider);
-		}
-
-		@Override
-		protected int indexOf(Employee item) {
-			return super.indexOf(item);
-		}
-
-		@Override
-		protected Collection<Employee> selectedItems() {
-			return super.selectedItems();
-		}
-
-		@Override
-		protected void tableSelectionChanged(SelectionEvent event) {
-			super.tableSelectionChanged(event);
-		}
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java
deleted file mode 100644
index 810c151..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.swt.TriStateCheckBoxModelAdapter;
-import org.eclipse.jpt.common.ui.internal.widgets.DefaultWidgetFactory;
-import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Play around with a set of tri-state check boxes.
- */
-public class TriStateCheckBoxModelAdapterUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<Boolean> flag1Holder;
-	private final WritablePropertyValueModel<Boolean> flag2Holder;
-	private final WritablePropertyValueModel<Boolean> notFlag2Holder;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new TriStateCheckBoxModelAdapterUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private TriStateCheckBoxModelAdapterUITest(String[] args) {
-		super(null);
-		this.testModel = new TestModel(Boolean.TRUE, Boolean.FALSE);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.flag1Holder = this.buildFlag1Holder(this.testModelHolder);
-		this.flag2Holder = this.buildFlag2Holder(this.testModelHolder);
-		this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isFlag1();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag1(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isFlag2();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag2(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isNotFlag2();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setNotFlag2(value);
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel);
-		this.buildControlPanel(mainPanel, checkBoxPanel);
-		return mainPanel;
-	}
-
-	private Control buildCheckBoxPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlag1CheckBox(panel);
-		this.buildFlag2CheckBox(panel);
-		this.buildNotFlag2CheckBox(panel);
-		this.buildUnattachedCheckBox(panel);
-
-		return panel;
-	}
-
-	private void buildFlag1CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 1", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.flag1Holder, checkBox);
-	}
-
-	private void buildFlag2CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 2", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.flag2Holder, checkBox);
-	}
-
-	private void buildNotFlag2CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "next flag 2", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildUnattachedCheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "unattached", DefaultWidgetFactory.instance());
-		checkBox.addSelectionListener(this.buildUnattachedSelectionListener());
-	}
-
-	private SelectionListener buildUnattachedSelectionListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				System.out.println("unattached default selected: " + e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				System.out.println("unattached selected: " + e);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlipFlag1Button(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildFlipFlag1Button(Composite parent) {
-		this.buildFlipFlag1ACI().fill(parent);
-	}
-
-	private ActionContributionItem buildFlipFlag1ACI() {
-		Action action = new Action("next flag 1", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.nextFlag1();
-			}
-		};
-		action.setToolTipText("next flag 1");
-		return new ActionContributionItem(action);
-	}
-
-	void nextFlag1() {
-		this.testModel.nextFlag1();
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("flag 1: " + this.testModel.isFlag1());
-		System.out.println("flag 2: " + this.testModel.isFlag2());
-		System.out.println("not flag 2: " + this.testModel.isNotFlag2());
-		System.out.println("***");
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private Boolean flag1;
-			public static final String FLAG1_PROPERTY = "flag1";
-		private Boolean flag2;
-			public static final String FLAG2_PROPERTY = "flag2";
-		private Boolean notFlag2;
-			public static final String NOT_FLAG2_PROPERTY = "notFlag2";
-	
-		public TestModel(Boolean flag1, Boolean flag2) {
-			this.flag1 = flag1;
-			this.flag2 = flag2;
-			this.notFlag2 = this.next(flag2);
-		}
-		private Boolean next(Boolean b) {
-			return (b == null) ? Boolean.TRUE : b.booleanValue() ? Boolean.FALSE : null;
-		}
-		public Boolean isFlag1() {
-			return this.flag1;
-		}
-		public void setFlag1(Boolean flag1) {
-			Boolean old = this.flag1;
-			this.flag1 = flag1;
-			this.firePropertyChanged(FLAG1_PROPERTY, old, flag1);
-		}
-		public void nextFlag1() {
-			this.setFlag1(this.next(this.flag1));
-		}
-		public Boolean isFlag2() {
-			return this.flag2;
-		}
-		public void setFlag2(Boolean flag2) {
-			Boolean old = this.flag2;
-			this.flag2 = flag2;
-			this.firePropertyChanged(FLAG2_PROPERTY, old, flag2);
-
-			old = this.notFlag2;
-			this.notFlag2 = this.next(flag2);
-			this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2);
-		}
-		public void nextFlag2() {
-			this.setFlag2(this.next(this.flag2));
-		}
-		public Boolean isNotFlag2() {
-			return this.notFlag2;
-		}
-		public void setNotFlag2(Boolean notFlag2) {
-			this.setFlag2(this.next(flag2));
-		}
-		public void nextNotFlag2() {
-			this.setNotFlag2(this.next(this.notFlag2));
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")";
-		}
-	}
-
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java
deleted file mode 100644
index 1c2904e..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java
+++ /dev/null
@@ -1,803 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.fail;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jpt.common.ui.internal.util.ControlAligner;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlAlignerTest {
-
-	private ControlAligner controlAligner;
-	private Composite parent;
-	private Shell shell;
-
-	private Layout buildSpacerLayout() {
-		return new Layout() {
-			@Override
-			protected Point computeSize(Composite composite,
-			                            int widthHint,
-			                            int heightHint,
-			                            boolean flushCache) {
-
-				return new Point(widthHint, heightHint);
-			}
-
-			@Override
-			protected void layout(Composite composite, boolean flushCache) {
-				GridData data = (GridData) composite.getLayoutData();
-				composite.setBounds(0, 0, data.widthHint, data.heightHint);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() {
-
-		controlAligner = new ControlAligner();
-
-		shell  = new Shell(Display.getCurrent());
-		shell.setLayout(new GridLayout(1, false));
-
-		parent = new Composite(shell, SWT.NONE);
-		parent.setLayout(new GridLayout(1, false));
-		parent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-	}
-
-	@After
-	public void tearDown() {
-
-		if (controlAligner != null) {
-			controlAligner.dispose();
-			controlAligner = null;
-		}
-
-		if (shell != null) {
-			shell.dispose();
-			shell = null;
-		}
-	}
-
-	@Test
-	public void testAddControl1() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		updateGridData(label);
-
-		controlAligner.add(label);
-
-		assertEquals(
-			"The maximum width should be 0,",
-			0,
-			controlAligner.getMaximumWidth()
-		);
-
-		label.setText("This is a ControlAligner");
-//		parent.layout(true, true);
-
-		Point size = label.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControl2() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("This is a ControlAligner");
-		updateGridData(button);
-
-		controlAligner.add(button);
-		parent.layout(true, true);
-
-		Point size = button.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControl3() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-
-//		parent.layout(true, true);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControlAligner1() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControlAligner2() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-
-		controlAligner.add(controlAligner2);
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test(expected=IllegalArgumentException.class)
-	public void testAddControlAlignerToItself() throws Exception {
-		controlAligner.add(controlAligner);
-		fail("A ControlAligner can't be added to itself");
-	}
-
-	@Test
-	public void testDialog_AddControl1() throws Exception {
-
-		final int[] maximumWidth = new int[1];
-		final int[] size = new int[1];
-
-		TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) {
-
-			private Label label;
-
-			@Override
-			protected Control createDialogArea(Composite parent) {
-
-				Composite pane = new Composite(parent, SWT.NULL);
-				pane.setLayout(new GridLayout(3, false));
-				pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-				label = new Label(pane, SWT.LEFT);
-				label.setText("This is a ControlAligner");
-				updateGridData(label);
-
-				controlAligner.add(label);
-
-				return parent;
-			}
-
-			@Override
-			protected void initializeBounds() {
-				super.initializeBounds();
-				size[0] = label.getSize().x;
-				maximumWidth[0] = controlAligner.getMaximumWidth();
-			}
-		};
-
-		dialog.create();
-		dialog.close();
-
-		assertEquals(
-			"The width should be " + size[0] + ",",
-			size[0],
-			maximumWidth[0]
-		);
-	}
-
-	@Test
-	public void testDialog_AddControl2() throws Exception {
-
-		final int[] maximumWidth = new int[1];
-		final int[] sizes = new int[2];
-
-		TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) {
-
-			private Button button;
-			private Label label;
-
-			@Override
-			protected Control createDialogArea(Composite parent) {
-
-				Composite pane = new Composite(parent, SWT.NULL);
-				pane.setLayout(new GridLayout(3, false));
-				pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-				label = new Label(pane, SWT.NULL);
-				label.setText("This is a ControlAligner");
-				updateGridData(label);
-
-				controlAligner.add(label);
-
-				button = new Button(pane, SWT.NULL);
-				button.setText("Short text");
-				updateGridData(button);
-
-				controlAligner.add(button);
-
-				return parent;
-			}
-
-			@Override
-			protected void initializeBounds() {
-				super.initializeBounds();
-				sizes[0] = label.getSize().x;
-				sizes[1] = button.getSize().x;
-				maximumWidth[0] = controlAligner.getMaximumWidth();
-			}
-		};
-
-		dialog.create();
-		dialog.close();
-
-		int labelSize  = sizes[0];
-		int buttonSize = sizes[1];
-		int max = Math.max(labelSize, buttonSize);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			maximumWidth[0]
-		);
-	}
-
-	@Test
-	public void testDispose() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		label.dispose();
-
-		Point newButtonSize = button.getSize();
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			newButtonSize.x
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			newButtonSize.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testHierarchyOfControlAligners() throws Exception {
-
-		// Aligner1
-		//  ^
-		//  |-Aligner2
-		//     ^
-		//     |-Aligner3
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-
-		ControlAligner controlAligner3 = new ControlAligner();
-		controlAligner2.add(controlAligner3);
-
-		// Test 1
-		Label label1 = new Label(parent, SWT.NULL);
-		label1.setText("This is a label widget");
-		parent.layout(true, true);
-
-		int labelWidth1 = label1.getSize().x;
-		controlAligner3.add(label1);
-
-		assertEquals(controlAligner3.getMaximumWidth(), labelWidth1);
-		assertEquals(controlAligner2.getMaximumWidth(), labelWidth1);
-		assertEquals(controlAligner.getMaximumWidth(), labelWidth1);
-
-		// Test 2
-		Label label2 = new Label(parent, SWT.NULL);
-		label2.setText("ShortLabel");
-		controlAligner2.add(label2);
-		parent.layout(true);
-
-		int newLabelWidth1 = label1.getSize().x;
-		int newLabelWidth2 = label2.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		// Test 3
-		Label label3 = new Label(parent, SWT.NULL);
-		label3.setText("A very long label that takes a lot of horizontal space");
-//		parent.layout(true);
-		controlAligner.add(label3);
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		int newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		// Make sure all the locked are removed
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label2
-		label2.setText("mm");
-//		parent.layout(true);
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label1
-		label1.setText("a");
-//		parent.layout(true);
-
-		Composite parent1 = new Composite(SWTUtil.getShell(), SWT.NULL);
-		parent1.setLayout(new GridLayout());
-
-		Label tempLabel = new Label(parent1, SWT.NULL);
-		tempLabel.setText("a");
-//		parent1.layout(true);
-
-		int realWidth = tempLabel.getSize().x;
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-		assertFalse(newLabelWidth1 == realWidth);
-
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label1
-		label1.setText("Yes another big long long text so that all the labels will have to take the size of this label to make sure ControlAligner works correctly");
-//		parent.layout(true);
-
-		// Weird: It seems no notification is sent, fire one manually
-		Event event  = new Event();
-		event.widget = label1;
-		event.type   = SWT.Resize;
-		label1.notifyListeners(SWT.Resize, event);
-
-		Composite parent2 = new Composite(SWTUtil.getShell(), SWT.NULL);
-		parent2.setLayout(new GridLayout());
-
-		tempLabel = new Label(parent2, SWT.NULL);
-		tempLabel.setText(label1.getText());
-		parent2.layout(true);
-
-		realWidth = tempLabel.getSize().x;
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(controlAligner.getMaximumWidth(), newLabelWidth1);
-		assertEquals(realWidth, newLabelWidth1);
-
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE);
-	}
-
-	@Test
-	public void testRemoveControl1() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("This is a ControlAligner");
-		updateGridData(button);
-
-		controlAligner.add(button);
-		parent.layout(true, true);
-
-		Point size = button.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-
-		controlAligner.remove(button);
-
-		assertEquals(
-			"The width should be 0, ",
-			0,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControl2() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-//		parent.layout(true, true);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		controlAligner.remove(label);
-
-		Point newButtonSize = button.getSize();
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			newButtonSize.x
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			newButtonSize.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControl4() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// Widget 1
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-		controlAligner.add(label);
-
-		// Widget 2
-		Composite spacer = new Composite(pane, SWT.NULL);
-		spacer.setLayout(buildSpacerLayout());
-		updateGridData(spacer);
-		controlAligner.add(spacer);
-
-		// Widget 3
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-		controlAligner.add(button);
-
-//		parent.layout(true, true);
-
-		// Make sure the 3 widgets have the same width
-		Point labelSize  = label.getSize();
-		Point spacerSize = spacer.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-		max = Math.max(max, spacerSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The spacer's width should be " + max + ",",
-			max,
-			spacerSize.x
-		);
-
-		// Remove the label (the widest widget) and make sure the width was
-		// correctly calculated
-		controlAligner.remove(label);
-
-		spacerSize = spacer.getSize();
-		buttonSize = button.getSize();
-		int max2 = Math.max(spacerSize.x, buttonSize.x);
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			max2
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			max2,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The spacer's width should have been adjusted",
-			max2,
-			spacerSize.x
-		);
-	}
-
-	@Test
-	public void testRemoveControlAligner1() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		// Test 1
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-
-		// Test 2
-		controlAligner.remove(label1);
-
-		width = label2.getSize().x;
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControlAligner2() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		// Test 1
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-
-		// Test 2
-		controlAligner2.remove(label2);
-
-		width = label1.getSize().x;
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	private void updateGridData(Control control) {
-		GridData data = new GridData();
-		data.horizontalAlignment       = GridData.FILL;
-		data.grabExcessHorizontalSpace = false;
-		control.setLayoutData(data);
-	}
-}
\ No newline at end of file
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java
deleted file mode 100644
index d6406a1..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		Combo combo = new Combo(parent, SWT.BORDER);
-
-		SWTTools.controlEnabledState(booleanHolder, combo);
-
-		assertTrue(
-			"The Combo should be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The Combo should not be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The Combo should be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The Combo should not be enabled",
-			combo.isEnabled()
-		);
-
-		// Dispose
-		combo.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java
deleted file mode 100644
index 49111bd..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.internal.Transformer;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.PageBook;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlSwitcherTest {
-
-	private PageBook pageBook;
-	private Composite pane1;
-	private Composite pane2;
-	private Composite parent;
-
-	private Composite buildPane1() {
-
-		if (pane1 == null) {
-
-			pane1 = new Composite(pageBook, SWT.NULL);
-			pane1.setLayout(new GridLayout(2, false));
-
-			Label label = new Label(pane1, SWT.NULL);
-			label.setText("&Test2:");
-
-			Text text = new Text(pane1, SWT.BORDER);
-			text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			Combo combo = new Combo(pane1, SWT.BORDER);
-
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			combo.setLayoutData(data);
-		}
-
-		return pane1;
-	}
-
-	private Composite buildPane2() {
-
-		if (pane2 == null) {
-
-			pane2 = new Composite(pageBook, SWT.NULL);
-			pane2.setLayout(new GridLayout(2, false));
-
-			Label label = new Label(pane2, SWT.NULL);
-			label.setText("&Test1:");
-
-			Text text = new Text(pane2, SWT.BORDER);
-			text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-
-		return pane2;
-	}
-
-	private Transformer<Boolean, Control> buildTransformer() {
-		return new Transformer<Boolean, Control>() {
-			public Control transform(Boolean value) {
-				return (value == null) ? null : (value ? pane1 : pane2);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-
-		pageBook = new PageBook(parent, SWT.NULL);
-		pageBook.setLayoutData(new GridData());
-	}
-
-	@After
-	public void tearDown() {
-
-		if (parent != null) {
-
-			parent.dispose();
-
-			parent   = null;
-			pageBook = null;
-		}
-	}
-
-	@Test
-	public void testSwitch() {
-
-		SimplePropertyValueModel<Boolean> switchHolder = new SimplePropertyValueModel<Boolean>();
-		Transformer<Boolean, Control> transformer = buildTransformer();
-
-		pane1 = buildPane1();
-		pane1.setVisible(false);
-
-		pane2 = buildPane2();
-		pane2.setVisible(false);
-
-		new ControlSwitcher(
-			switchHolder,
-			transformer,
-			pageBook
-		);
-
-		// Test 1
-		switchHolder.setValue(true);
-		Control control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage");
-
-		assertNotNull(
-			"The page book's page shouldn't be null",
-			control
-		);
-
-		assertSame(
-			"The current pane should be pane1",
-			pane1,
-			control
-		);
-
-		Point pane1Size = pane1.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		Point pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		assertEquals(
-			"The width of the PageBook should be the same as the width of pane1",
-			pane1Size.x,
-			pageBookSize.x
-		);
-
-		assertEquals(
-			"The height of the PageBook should be the same as the height of pane1",
-			pane1Size.y,
-			pageBookSize.y
-		);
-
-		// Test 2
-		switchHolder.setValue(false);
-		control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage");
-
-		assertNotNull(
-			"The page book's page shouldn't be null",
-			control
-		);
-
-		assertSame(
-			"The current pane should be pane2",
-			pane2,
-			control
-		);
-
-		Point pane2Size = pane2.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		assertEquals(
-			"The width of the PageBook should be the same as the width of pane2",
-			pane2Size.x,
-			pageBookSize.x
-		);
-
-		assertEquals(
-			"The height of the PageBook should be the same as the height of pane2",
-			pane2Size.y,
-			pageBookSize.y
-		);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java
deleted file mode 100644
index f978ed1..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlVisibilityEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		Combo combo = new Combo(parent, SWT.BORDER);
-
-		SWTTools.controlVisibleState(booleanHolder, combo);
-
-		assertTrue(
-			"The Combo should be visible",
-			combo.isVisible()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The Combo should not be visible",
-			combo.isVisible()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The Combo should be visible",
-			combo.isVisible()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The Combo should not be visible",
-			combo.isVisible()
-		);
-
-		// Dispose
-		combo.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java
deleted file mode 100644
index 38f00d2..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@SuiteClasses
-({
-	ControlAlignerTest.class,
-	ControlSwitcherTest.class,
-	ControlEnablerTest.class,
-	ControlVisibilityEnablerTest.class,
-	LabeledButtonTest.class,
-	LabeledLabelTest.class,
-	LabeledControlUpdaterTest.class,
-	PaneEnablerTest.class,
-	PaneVisibilityEnablerTest.class,
-})
-@RunWith(Suite.class)
-public final class JptUiUtilTests {
-
-	private JptUiUtilTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(new JUnit4TestAdapter(JptUiUtilTests.class));
-		return suite;
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java
deleted file mode 100644
index 52515ac..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jpt.common.ui.internal.util.LabeledButton;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledButtonTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testLabeledButton1() {
-		Button button = new Button(parent, SWT.NULL);
-		new LabeledButton(button);
-	}
-
-	@Test(expected=AssertionFailedException.class)
-	public void testLabeledButton2() {
-		new LabeledButton(null);
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Button button = new Button(parent, SWT.NULL);
-			LabeledButton labeledButton = new LabeledButton(button);
-
-			labeledButton.setImage(expected);
-
-			assertEquals(
-				"The Button didn't receive the Image",
-				expected,
-				button.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Button button = new Button(parent, SWT.NULL);
-			LabeledButton labeledButton = new LabeledButton(button);
-
-			button.dispose();
-
-			// This should not fail but simply do nothing
-			labeledButton.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-		Button button = new Button(parent, SWT.NULL);
-		LabeledButton labeledButton = new LabeledButton(button);
-
-		String expected = "This is a test";
-		labeledButton.setText(expected);
-
-		assertEquals(
-			"The Button didn't receive the text",
-			expected,
-			button.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-		Button button = new Button(parent, SWT.NULL);
-		LabeledButton labeledButton = new LabeledButton(button);
-
-		button.dispose();
-
-		// This should not fail but simply do nothing
-		String expected = "This is a test";
-		labeledButton.setText(expected);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java
deleted file mode 100644
index 2238dc9..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.jpt.common.ui.internal.util.LabeledControlUpdater;
-import org.eclipse.jpt.common.ui.internal.util.LabeledLabel;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledControlUpdaterTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>();
-			new LabeledControlUpdater(labeledLabel, null, imageHolder);
-
-			labeledLabel.setImage(expected);
-
-			assertEquals(
-				"The Label didn't receive the Image",
-				expected,
-				label.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>();
-			new LabeledControlUpdater(labeledLabel, null, imageHolder);
-
-			label.dispose();
-			labeledLabel.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>();
-		new LabeledControlUpdater(labeledLabel, textHolder);
-
-		String expected = "This is a test";
-		textHolder.setValue(expected);
-
-		assertEquals(
-			"The Label didn't receive the text",
-			expected,
-			label.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>();
-		new LabeledControlUpdater(labeledLabel, textHolder);
-
-		label.dispose();
-
-		String expected = "This is a test";
-		textHolder.setValue(expected);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java
deleted file mode 100644
index d43bcee..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jpt.common.ui.internal.util.LabeledLabel;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledLabelTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testLabeledButton1() {
-		Label label = new Label(parent, SWT.NULL);
-		new LabeledLabel(label);
-	}
-
-	@Test(expected=AssertionFailedException.class)
-	public void testLabeledButton2() {
-		new LabeledLabel(null);
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			labeledLabel.setImage(expected);
-
-			assertEquals(
-				"The Label didn't receive the Image",
-				expected,
-				label.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			label.dispose();
-
-			// This should not fail but simply do nothing
-			labeledLabel.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		String expected = "This is a test";
-		labeledLabel.setText(expected);
-
-		assertEquals(
-			"The Label didn't receive the text",
-			expected,
-			label.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		label.dispose();
-
-		// This should not fail but simply do nothing
-		String expected = "This is a test";
-		labeledLabel.setText(expected);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java
deleted file mode 100644
index b68fd99..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import org.eclipse.jpt.common.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class PaneEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		DialogPane<Node> pane = new DialogPane<Node>(
-			new SimplePropertyValueModel<Node>(),
-			parent)
-		{
-			@Override
-			protected void initializeLayout(Composite container) {
-			}
-		};
-
-		new PaneEnabler(booleanHolder, pane);
-
-		assertTrue(
-			"The pane should be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The pane should not be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The pane should be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The pane should not be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Dispose
-		pane.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java
deleted file mode 100644
index e0ac3ce..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.util;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import org.eclipse.jpt.common.ui.internal.util.PaneVisibilityEnabler;
-import org.eclipse.jpt.common.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.common.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.node.Node;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class PaneVisibilityEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		DialogPane<Node> pane = new DialogPane<Node>(
-			new SimplePropertyValueModel<Node>(),
-			parent)
-		{
-			@Override
-			protected void initializeLayout(Composite container) {
-			}
-		};
-
-		new PaneVisibilityEnabler(booleanHolder, pane);
-
-		assertTrue(
-			"The pane should be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The pane should not be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The pane should be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The pane should not be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Dispose
-		pane.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java
deleted file mode 100644
index f1568bd..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.utility.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Play around with boolean state controllers ('enabled' and 'visible').
- * <p>
- * Note the behavior of composites:<ul>
- * <li>When a composite is disabled, its children are disabled but <em>not</em>
- *     grayed out.
- * <li>When a composite is made invisible, its children are also made
- *     invisible.
- * </ul>
- */
-@SuppressWarnings("nls")
-public class BooleanStateControllerUITest
-	extends ApplicationWindow
-{
-	private final WritablePropertyValueModel<Boolean> enabledHolder;
-	private final WritablePropertyValueModel<Boolean> visibleHolder;
-	private final SimpleListValueModel<String> listHolder;
-	private final WritablePropertyValueModel<String> listSelectionHolder;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new BooleanStateControllerUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private BooleanStateControllerUITest(@SuppressWarnings("unused") String[] args) {
-		super(null);
-		this.enabledHolder = new SimplePropertyValueModel<Boolean>(Boolean.TRUE);
-		this.visibleHolder = new SimplePropertyValueModel<Boolean>(Boolean.TRUE);
-		this.listHolder = this.buildListHolder();
-		this.listSelectionHolder = new SimplePropertyValueModel<String>(null);
-	}
-
-	private SimpleListValueModel<String> buildListHolder() {
-		SimpleListValueModel<String> result = new SimpleListValueModel<String>();
-		result.add("zero");
-		result.add("one");
-		result.add("two");
-		result.add("three");
-		result.add("four");
-		result.add("five");
-		result.add("six");
-		result.add("seven");
-		return result;
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(500, 150);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control widgetPanel = this.buildWidgetPanels(mainPanel);
-		this.buildControlPanel(mainPanel, widgetPanel);
-		return mainPanel;
-	}
-
-	private Control buildWidgetPanels(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout(SWT.VERTICAL));
-
-		this.buildWidgetPanel1(panel);
-		this.buildWidgetPanel2(panel);
-
-		return panel;
-	}
-
-	private void buildWidgetPanel1(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayout(new FillLayout(SWT.HORIZONTAL));
-
-		Button enabledComboBoxCheckBox = this.buildEnabledComboBoxCheckBox(panel);
-		SWTTools.bind(this.enabledHolder, enabledComboBoxCheckBox);
-
-		Button visibleComboBoxCheckBox = this.buildVisibleComboBoxCheckBox(panel);
-		SWTTools.bind(this.visibleHolder, visibleComboBoxCheckBox);
-
-		Label comboBoxLabel = this.buildComboBoxLabel(panel);
-		Combo comboBox = this.buildComboBox(panel);
-		SWTTools.bind(this.listHolder, this.listSelectionHolder, comboBox);
-		SWTTools.controlEnabledState(this.enabledHolder, comboBoxLabel, comboBox);
-		SWTTools.controlVisibleState(this.visibleHolder, comboBoxLabel, comboBox);
-	}
-
-	private Button buildEnabledComboBoxCheckBox(Composite parent) {
-		return this.buildCheckBox(parent, "enabled");
-	}
-
-	private Button buildVisibleComboBoxCheckBox(Composite parent) {
-		return this.buildCheckBox(parent, "visible");
-	}
-
-	private Button buildCheckBox(Composite parent, String text) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText(text);
-		return checkBox;
-	}
-
-	private Label buildComboBoxLabel(Composite parent) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText("list:");
-		return label;
-	}
-
-	private Combo buildComboBox(Composite parent) {
-		return new Combo(parent, SWT.READ_ONLY);
-	}
-
-	private void buildWidgetPanel2(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayout(new FillLayout(SWT.HORIZONTAL));
-
-		Button checkBox1 = this.buildCheckBox(panel, "one");
-		this.buildCheckBox(panel, "two");
-		this.buildCheckBox(panel, "three");
-		this.buildCheckBox(panel, "four");
-
-		SWTTools.controlEnabledState(this.enabledHolder, panel, checkBox1);
-		SWTTools.controlVisibleState(this.visibleHolder, panel);
-	}
-
-	private void buildControlPanel(Composite parent, Control widgetPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(widgetPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildClearEnabledModelButton(panel);
-		this.buildClearVisibleModelButton(panel);
-		this.buildNullSelectionModelButton(panel);
-		this.buildNextButton(panel);
-	}
-
-	private void buildClearEnabledModelButton(Composite parent) {
-		this.buildClearEnabledModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearEnabledModelACI() {
-		Action action = new Action("clear enabled model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				BooleanStateControllerUITest.this.clearEnabledModel();
-			}
-		};
-		action.setToolTipText("clear enabled model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearEnabledModel() {
-		this.enabledHolder.setValue(null);
-	}
-
-	private void buildClearVisibleModelButton(Composite parent) {
-		this.buildClearVisibleModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearVisibleModelACI() {
-		Action action = new Action("clear visible model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				BooleanStateControllerUITest.this.clearVisibleModel();
-			}
-		};
-		action.setToolTipText("clear visible model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearVisibleModel() {
-		this.visibleHolder.setValue(null);
-	}
-
-	private void buildNullSelectionModelButton(Composite parent) {
-		this.buildNullSelectionModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildNullSelectionModelACI() {
-		Action action = new Action("null selection model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				BooleanStateControllerUITest.this.setSelectionModelNull();
-			}
-		};
-		action.setToolTipText("null selection model");
-		return new ActionContributionItem(action);
-	}
-
-	void setSelectionModelNull() {
-		this.listSelectionHolder.setValue(null);
-	}
-
-	private void buildNextButton(Composite parent) {
-		this.buildNextACI().fill(parent);
-	}
-
-	private ActionContributionItem buildNextACI() {
-		Action action = new Action("next", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				BooleanStateControllerUITest.this.next();
-			}
-		};
-		action.setToolTipText("next");
-		return new ActionContributionItem(action);
-	}
-
-	void next() {
-		this.listSelectionHolder.setValue(this.getNextListSelection());
-	}
-
-	private String getNextListSelection() {
-		return this.listHolder.get(this.getNextListSelectionIndex());
-	}
-
-	private int getNextListSelectionIndex() {
-		int index = this.getListSelectionIndex();
-		if (index == -1) {
-			return 0;
-		}
-		index++;
-		return (index == this.listHolder.size()) ? 0 : index;
-	}
-
-	private int getListSelectionIndex() {
-		return this.listHolder.indexOf(this.getListSelection());
-	}
-
-	private String getListSelection() {
-		return this.listSelectionHolder.getValue();
-	}
-
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java
deleted file mode 100644
index 6d21101..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.utility.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Play around with a set of check boxes.
- */
-@SuppressWarnings("nls")
-public class CheckBoxModelBindingUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<Boolean> flag1Holder;
-	private final WritablePropertyValueModel<Boolean> flag2Holder;
-	private final WritablePropertyValueModel<Boolean> notFlag2Holder;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new CheckBoxModelBindingUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private CheckBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) {
-		super(null);
-		this.testModel = new TestModel(true, true);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.flag1Holder = this.buildFlag1Holder(this.testModelHolder);
-		this.flag2Holder = this.buildFlag2Holder(this.testModelHolder);
-		this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag1());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag1(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isNotFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setNotFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel);
-		this.buildControlPanel(mainPanel, checkBoxPanel);
-		return mainPanel;
-	}
-
-	private Control buildCheckBoxPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlag1CheckBox(panel);
-		this.buildFlag2CheckBox(panel);
-		this.buildNotFlag2CheckBox(panel);
-		this.buildUnattachedCheckBox(panel);
-
-		return panel;
-	}
-
-	private void buildFlag1CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("flag 1");
-		SWTTools.bind(this.flag1Holder, checkBox);
-	}
-
-	private void buildFlag2CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("flag 2");
-		SWTTools.bind(this.flag2Holder, checkBox);
-	}
-
-	private void buildNotFlag2CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("not flag 2");
-		SWTTools.bind(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildUnattachedCheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("unattached");
-		checkBox.addSelectionListener(this.buildUnattachedSelectionListener());
-	}
-
-	private SelectionListener buildUnattachedSelectionListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				System.out.println("unattached default selected: " + e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				System.out.println("unattached selected: " + e);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlipFlag1Button(panel);
-		this.buildNotFlag2ToggleButton(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildFlipFlag1Button(Composite parent) {
-		this.buildFlipFlag1ACI().fill(parent);
-	}
-
-	private ActionContributionItem buildFlipFlag1ACI() {
-		Action action = new Action("flip flag 1", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelBindingUITest.this.flipFlag1();
-			}
-		};
-		action.setToolTipText("flip flag 1");
-		return new ActionContributionItem(action);
-	}
-
-	void flipFlag1() {
-		this.testModel.setFlag1( ! this.testModel.isFlag1());
-	}
-
-	private void buildNotFlag2ToggleButton(Composite parent) {
-		Button checkBox = new Button(parent, SWT.TOGGLE);
-		checkBox.setText("not flag 2");
-		SWTTools.bind(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelBindingUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelBindingUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelBindingUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("flag 1: " + this.testModel.isFlag1());
-		System.out.println("flag 2: " + this.testModel.isFlag2());
-		System.out.println("not flag 2: " + this.testModel.isNotFlag2());
-		System.out.println("***");
-	}
-
-
-	public static class TestModel extends AbstractModel {
-		private boolean flag1;
-			public static final String FLAG1_PROPERTY = "flag1";
-		private boolean flag2;
-			public static final String FLAG2_PROPERTY = "flag2";
-		private boolean notFlag2;
-			public static final String NOT_FLAG2_PROPERTY = "notFlag2";
-	
-		public TestModel(boolean flag1, boolean flag2) {
-			this.flag1 = flag1;
-			this.flag2 = flag2;
-			this.notFlag2 = ! flag2;
-		}
-		public boolean isFlag1() {
-			return this.flag1;
-		}
-		public void setFlag1(boolean flag1) {
-			boolean old = this.flag1;
-			this.flag1 = flag1;
-			this.firePropertyChanged(FLAG1_PROPERTY, old, flag1);
-		}
-		public boolean isFlag2() {
-			return this.flag2;
-		}
-		public void setFlag2(boolean flag2) {
-			boolean old = this.flag2;
-			this.flag2 = flag2;
-			this.firePropertyChanged(FLAG2_PROPERTY, old, flag2);
-	
-			old = this.notFlag2;
-			this.notFlag2 = ! flag2;
-			this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2);
-		}
-		public boolean isNotFlag2() {
-			return this.notFlag2;
-		}
-		public void setNotFlag2(boolean notFlag2) {
-			this.setFlag2( ! notFlag2);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")";
-		}
-	}
-
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java
deleted file mode 100644
index dad37d9..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java
+++ /dev/null
@@ -1,664 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.utility.swt;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Play around with a set of read-only combo-boxes.
- */
-@SuppressWarnings("nls")
-public class DropDownListBoxModelBindingUITest
-	extends ApplicationWindow
-{
-	final TaskList taskList;
-	private final WritablePropertyValueModel<TaskList> taskListHolder;
-	private Text taskTextField;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new DropDownListBoxModelBindingUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private DropDownListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) {
-		super(null);
-		this.taskList = new TaskList();
-		this.taskListHolder = new SimplePropertyValueModel<TaskList>(this.taskList);
-		this.taskList.addTask("swim");
-		this.taskList.addTask("bike");
-		this.taskList.addTask("run");
-		Task rest = this.taskList.addTask("rest");
-		this.taskList.addTask("repeat");
-		this.taskList.setPriorityTask(rest);
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(800, 300);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control taskListPanel = this.buildTaskListPanel(mainPanel);
-		this.buildControlPanel(mainPanel, taskListPanel);
-		return mainPanel;
-	}
-
-	private Control buildTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -30);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		this.buildTaskListPanel_(panel);  // false = native (Combo)
-
-		return panel;
-	}
-
-	private Control buildTaskListPanel_(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(50);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		this.buildPrimitiveTaskListPanel(panel);
-		this.buildObjectTaskListPanel(panel);
-
-		return panel;
-	}
-
-	private void buildPrimitiveTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(50);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedPrimitiveListPanel(panel);
-		this.buildStandardSortedPrimitiveListPanel(panel);
-		this.buildCustomSortedPrimitiveListPanel(panel);
-	}
-
-	private void buildObjectTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(50);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedObjectListPanel(panel);
-		this.buildStandardSortedObjectListPanel(panel);
-		this.buildCustomSortedObjectListPanel(panel);
-	}
-
-	private void buildUnsortedPrimitiveListPanel(Composite parent) {
-		String label = "primitive unsorted";
-		this.buildComboBoxPanel(parent, label, this.buildUnsortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter());
-	}
-
-	private void buildStandardSortedPrimitiveListPanel(Composite parent) {
-		String label = "primitive sorted";
-		this.buildComboBoxPanel(parent, label, this.buildStandardSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter());
-	}
-
-	private void buildCustomSortedPrimitiveListPanel(Composite parent) {
-		String label = "primitive reverse sorted";
-		this.buildComboBoxPanel(parent, label, this.buildCustomSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter());
-	}
-
-	private void buildUnsortedObjectListPanel(Composite parent) {
-		String label = "object unsorted";
-		this.buildComboBoxPanel(parent, label, this.buildUnsortedObjectListModel(), this.buildPriorityTaskAdapter());
-	}
-
-	private void buildStandardSortedObjectListPanel(Composite parent) {
-		String label = "object sorted";
-		this.buildComboBoxPanel(parent, label, this.buildStandardSortedObjectListModel(), this.buildPriorityTaskAdapter());
-	}
-
-	private void buildCustomSortedObjectListPanel(Composite parent) {
-		String label = "object reverse sorted";
-		this.buildComboBoxPanel(parent, label, this.buildCustomSortedObjectListModel(), this.buildPriorityTaskAdapter());
-	}
-
-	private ListValueModel<String> buildUnsortedPrimitiveListModel() {
-		return this.buildPrimitiveTaskListAdapter();
-	}
-
-	private ListValueModel<String> buildStandardSortedPrimitiveListModel() {
-		return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter());
-	}
-
-	private ListValueModel<String> buildCustomSortedPrimitiveListModel() {
-		return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator());
-	}
-
-	private ListValueModel<Task> buildUnsortedObjectListModel() {
-		return this.buildObjectTaskListAdapter();
-	}
-
-	private ListValueModel<Task> buildStandardSortedObjectListModel() {
-		return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter());
-	}
-
-	private ListValueModel<Task> buildCustomSortedObjectListModel() {
-		return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator());
-	}
-
-	private <E> void buildComboBoxPanel(Composite parent, String label, ListValueModel<E> model, WritablePropertyValueModel<E> selectedItemModel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayout(new FormLayout());
-
-		Label comboBoxLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL);
-		comboBoxLabel.setText(label);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0, 3);
-			fd.bottom = new FormAttachment(0, 20);
-			fd.left = new FormAttachment(0, 5);
-			fd.right = new FormAttachment(100);
-		comboBoxLabel.setLayoutData(fd);
-
-		Combo comboBox = this.buildComboBox(panel);
-		fd = new FormData();
-			fd.top = new FormAttachment(comboBoxLabel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		comboBox.setLayoutData(fd);
-		SWTTools.bind(model, selectedItemModel, comboBox);  // use #toString()
-	}
-
-	private Combo buildComboBox(Composite parent) {
-		return new Combo(parent, SWT.READ_ONLY);
-	}
-
-	private Comparator<String> buildCustomStringComparator() {
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				return s2.compareTo(s1);
-			}
-		};
-	}
-
-	private Comparator<Task> buildCustomTaskComparator() {
-		return new Comparator<Task>() {
-			public int compare(Task to1, Task to2) {
-				return to2.compareTo(to1);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildPrimitiveTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, String>(this.taskListHolder, TaskList.TASK_NAMES_LIST) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.taskNames();
-			}
-		};
-	}
-
-	private ListValueModel<Task> buildObjectTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.TASKS_LIST) {
-			@Override
-			protected ListIterator<Task> listIterator_() {
-				return this.subject.tasks();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Task> buildPriorityTaskAdapter() {
-		return new PriorityTaskAdapter(this.taskListHolder);
-	}
-
-	static class PriorityTaskAdapter
-		extends PropertyAspectAdapter<TaskList, Task>
-	{
-		PriorityTaskAdapter(WritablePropertyValueModel<TaskList> taskListHolder) {
-			super(taskListHolder, TaskList.PRIORITY_TASK_PROPERTY);
-		}
-		@Override
-		protected Task buildValue_() {
-			return this.subject.getPriorityTask();
-		}
-		@Override
-		protected void setValue_(Task value) {
-			this.subject.setPriorityTask(value);
-		}
-	}
-
-	private WritablePropertyValueModel<String> buildPriorityTaskNameAdapter() {
-		return new PriorityTaskNameAdapter(this.taskListHolder);
-	}
-
-	static class PriorityTaskNameAdapter
-		extends PropertyAspectAdapter<TaskList, String>
-	{
-		PriorityTaskNameAdapter(WritablePropertyValueModel<TaskList> taskListHolder) {
-			super(taskListHolder, TaskList.PRIORITY_TASK_NAME_PROPERTY);
-		}
-		@Override
-		protected String buildValue_() {
-			return this.subject.getPriorityTaskName();
-		}
-		@Override
-		protected void setValue_(String value) {
-			// ignore
-		}
-	}
-
-	private void buildControlPanel(Composite parent, Control taskListPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(taskListPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control misc = this.buildMiscTaskPanel(panel);
-		this.buildAddRemoveTaskPanel(panel, misc);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildMiscTaskPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -400);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildClearListACI().fill(panel);
-		this.buildClearModelACI().fill(panel);
-		this.buildRestoreModelACI().fill(panel);
-		this.buildChangePriorityTaskACI().fill(panel);
-		this.buildClearPriorityTaskACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildClearListACI() {
-		Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.clearTasks();
-			}
-		};
-		action.setToolTipText("clear all the tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildChangePriorityTaskACI() {
-		Action action = new Action("change priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.changePriorityTask();
-			}
-		};
-		action.setToolTipText("change the priority task");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearPriorityTaskACI() {
-		Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.clearPriorityTask();
-			}
-		};
-		action.setToolTipText("clear the priority task");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(clearButton);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control addButton = this.buildAddButton(panel);
-		Control removeButton = this.buildRemoveButton(panel);
-		this.buildTaskTextField(panel, addButton, removeButton);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildAddButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(0, 50);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildAddACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildAddACI() {
-		Action action = new Action("add", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.addTask();
-			}
-		};
-		action.setToolTipText("add a task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildRemoveButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -50);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildRemoveACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildRemoveACI() {
-		Action action = new Action("remove", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				DropDownListBoxModelBindingUITest.this.removeTask();
-			}
-		};
-		action.setToolTipText("remove the task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) {
-		this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(addButton);
-			fd.right = new FormAttachment(removeButton);
-		this.taskTextField.setLayoutData(fd);
-	}
-
-	private String taskTextFieldText() {
-		return this.taskTextField.getText();
-	}
-
-	void addTask() {
-		String taskText = this.taskTextFieldText();
-		if (taskText.length() != 0) {
-			this.taskList.addTask(taskText);
-		}
-	}
-
-	void removeTask() {
-		String task = this.taskTextFieldText();
-		if (task.length() != 0) {
-			this.taskList.removeTask(task);
-		}
-	}
-
-	void clearTasks() {
-		this.taskList.clearTasks();
-	}
-
-	void clearModel() {
-		this.taskListHolder.setValue(null);
-	}
-
-	void restoreModel() {
-		this.taskListHolder.setValue(this.taskList);
-	}
-
-	void changePriorityTask() {
-		boolean found = false;
-		for (Task task : this.taskList.getTasks()) {
-			if (this.taskList.getPriorityTask() == task) {
-				found = true;
-			} else {
-				if (found) {
-					this.taskList.setPriorityTask(task);
-					return;
-				}
-			}
-		}
-		Iterator<Task> tasks = this.taskList.tasks();
-		if (tasks.hasNext()) {
-			this.taskList.setPriorityTask(tasks.next());
-		}
-	}
-
-	void clearPriorityTask() {
-		this.taskList.setPriorityTask(null);
-	}
-
-
-	// ********** TaskList **********
-
-	// note absence of validation...
-	public static class TaskList extends AbstractModel {
-		private final List<String> taskNames = new ArrayList<String>();
-			public static final String TASK_NAMES_LIST = "taskNames";
-		private final List<Task> tasks = new ArrayList<Task>();
-			public static final String TASKS_LIST = "tasks";
-		private String priorityTaskName = null;
-			public static final String PRIORITY_TASK_NAME_PROPERTY = "priorityTaskName";
-		private Task priorityTask = null;
-			public static final String PRIORITY_TASK_PROPERTY = "priorityTask";
-		public TaskList() {
-			super();
-		}
-		public ListIterator<String> taskNames() {
-			return this.taskNames.listIterator();
-		}
-		public Iterable<Task> getTasks() {
-			return this.tasks;
-		}
-		public ListIterator<Task> tasks() {
-			return this.tasks.listIterator();
-		}
-		public String getPriorityTaskName() {
-			return this.priorityTaskName;
-		}
-		public Task getPriorityTask() {
-			return this.priorityTask;
-		}
-		public Task addTask(String taskName) {
-			this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST);
-			Task task = new Task(taskName);
-			this.addItemToList(task, this.tasks, TASKS_LIST);
-			return task;
-		}		
-		public void removeTask(String taskName) {
-			int index = this.taskNames.indexOf(taskName);
-			if (index != -1) {
-				Task task = this.tasks.get(index);
-				if (task == this.priorityTask) {
-					this.setPriorityTask(null);
-				}
-				// assume the indexes match...
-				this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST);
-				this.removeItemFromList(index, this.tasks, TASKS_LIST);
-			}
-		}
-		public void clearTasks() {
-			this.setPriorityTask(null);
-			this.clearList(this.taskNames, TASK_NAMES_LIST);
-			this.clearList(this.tasks, TASKS_LIST);
-		}
-		private void setPriorityTaskName(String priorityTaskName) {
-			String old = this.priorityTaskName;
-			this.priorityTaskName = priorityTaskName;
-			this.firePropertyChanged(PRIORITY_TASK_NAME_PROPERTY, old, priorityTaskName);
-		}
-		public void setPriorityTask(Task priorityTask) {
-			Task old = this.priorityTask;
-			this.priorityTask = priorityTask;
-			this.firePropertyChanged(PRIORITY_TASK_PROPERTY, old, priorityTask);
-			this.setPriorityTaskName((priorityTask == null) ? null : priorityTask.getName());
-		}
-	}
-
-
-	// ********** Task **********
-
-	public static class Task extends AbstractModel implements Displayable {
-		private String name;
-		private int instanceCount;
-		private static int INSTANCE_COUNT = 1;
-		public Task(String name) {
-			this.name = name;
-			this.instanceCount = INSTANCE_COUNT++;
-		}
-		public String displayString() {
-			return this.name + ": " + this.instanceCount;
-		}
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return this.displayString();
-		}
-	}
-
-	public interface Displayable extends Model, Comparable<Displayable> {
-	
-		String displayString();
-			String DISPLAY_STRING_PROPERTY = "displayString";
-	
-	
-		// ********** helper implementations **********
-	
-		Collator DEFAULT_COLLATOR = Collator.getInstance();
-	
-		Comparator<Displayable> DEFAULT_COMPARATOR =
-			new Comparator<Displayable>() {
-				public int compare(Displayable d1, Displayable d2) {
-					// disallow duplicates based on object identity
-					if (d1 == d2) {
-						return 0;
-					}
-	
-					// first compare display strings using the default collator
-					int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString());
-					if (result != 0) {
-						return result;
-					}
-	
-					// then compare using object-id
-					result = System.identityHashCode(d1) - System.identityHashCode(d2);
-					if (result != 0) {
-						return result;
-					}
-	
-					// It's unlikely that we get to this point; but, just in case, we will return -1.
-					// Unfortunately, this introduces some mild unpredictability to the sort order
-					// (unless the objects are always passed into this method in the same order).
-					return -1;		// if all else fails, indicate that o1 < o2
-				}
-				@Override
-				public String toString() {
-					return "Displayable.DEFAULT_COMPARATOR";
-				}
-			};
-	
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java
deleted file mode 100644
index 1cb0d57..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java
+++ /dev/null
@@ -1,626 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.utility.swt;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper;
-import org.eclipse.jpt.common.utility.model.Model;
-import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Play around with a set of list boxes.
- */
-@SuppressWarnings("nls")
-public class ListBoxModelBindingUITest
-	extends ApplicationWindow
-{
-	final TaskList taskList;
-	private final WritablePropertyValueModel<TaskList> taskListHolder;
-	private Text taskTextField;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new ListBoxModelBindingUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private ListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) {
-		super(null);
-		this.taskList = new TaskList();
-		this.taskListHolder = new SimplePropertyValueModel<TaskList>(this.taskList);
-		this.taskList.addTask("swim");
-		this.taskList.addTask("bike");
-		this.taskList.addTask("run");
-		Task rest = this.taskList.addTask("rest");
-		this.taskList.addPriorityTask(rest);
-		Task repeat = this.taskList.addTask("repeat");
-		this.taskList.addPriorityTask(repeat);
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(800, 400);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control taskListPanel = this.buildTaskListPanel(mainPanel);
-		this.buildControlPanel(mainPanel, taskListPanel);
-		return mainPanel;
-	}
-
-	private Control buildTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -30);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		this.buildPrimitiveTaskListPanel(panel);
-		this.buildObjectTaskListPanel(panel);
-
-		return panel;
-	}
-
-	private void buildPrimitiveTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(50);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedPrimitiveListPanel(panel);
-		this.buildStandardSortedPrimitiveListPanel(panel);
-		this.buildCustomSortedPrimitiveListPanel(panel);
-	}
-
-	private void buildObjectTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(50);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedObjectListPanel(panel);
-		this.buildStandardSortedObjectListPanel(panel);
-		this.buildCustomSortedObjectListPanel(panel);
-	}
-
-	private void buildUnsortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive unsorted", this.buildUnsortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildStandardSortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive sorted", this.buildStandardSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildCustomSortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive reverse sorted", this.buildCustomSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildUnsortedObjectListPanel(Composite parent) {
-		this.buildListPanel(parent, "object unsorted", this.buildUnsortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private void buildStandardSortedObjectListPanel(Composite parent) {
-		this.buildListPanel(parent, "object sorted", this.buildStandardSortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private void buildCustomSortedObjectListPanel(Composite parent) {
-		this.buildListPanel(parent, "object reverse sorted", this.buildCustomSortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private ListValueModel<String> buildUnsortedPrimitiveListModel() {
-		return this.buildPrimitiveTaskListAdapter();
-	}
-
-	private ListValueModel<String> buildStandardSortedPrimitiveListModel() {
-		return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter());
-	}
-
-	private ListValueModel<String> buildCustomSortedPrimitiveListModel() {
-		return new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator());
-	}
-
-	private ListValueModel<Task> buildUnsortedObjectListModel() {
-		return this.buildObjectTaskListAdapter();
-	}
-
-	private ListValueModel<Task> buildStandardSortedObjectListModel() {
-		return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter());
-	}
-
-	private ListValueModel<Task> buildCustomSortedObjectListModel() {
-		return new SortedListValueModelWrapper<Task>(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator());
-	}
-
-	private <E> org.eclipse.swt.widgets.List buildListPanel(Composite parent, String label, ListValueModel<E> model, WritableCollectionValueModel<E> selectedItemsModel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayout(new FormLayout());
-
-		Label listLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL);
-		listLabel.setText(label);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0, 3);
-			fd.bottom = new FormAttachment(0, 20);
-			fd.left = new FormAttachment(0, 5);
-			fd.right = new FormAttachment(100);
-		listLabel.setLayoutData(fd);
-
-		org.eclipse.swt.widgets.List listBox = new org.eclipse.swt.widgets.List(panel, SWT.MULTI | SWT.BORDER);
-		fd = new FormData();
-			fd.top = new FormAttachment(listLabel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		listBox.setLayoutData(fd);
-		SWTTools.bind(model, selectedItemsModel, listBox);  // use #toString()
-		return listBox;
-	}
-
-	private Comparator<String> buildCustomStringComparator() {
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				return s2.compareTo(s1);
-			}
-		};
-	}
-
-	private Comparator<Task> buildCustomTaskComparator() {
-		return new Comparator<Task>() {
-			public int compare(Task to1, Task to2) {
-				return to2.compareTo(to1);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildPrimitiveTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, String>(this.taskListHolder, TaskList.TASK_NAMES_LIST) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.taskNames();
-			}
-		};
-	}
-
-	private ListValueModel<Task> buildObjectTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.TASKS_LIST) {
-			@Override
-			protected ListIterator<Task> listIterator_() {
-				return this.subject.tasks();
-			}
-		};
-	}
-
-	private WritableCollectionValueModel<Task> buildPriorityTaskListAdapter() {
-		return new PriorityTaskListAdapter(this.taskListHolder);
-	}
-
-	static class PriorityTaskListAdapter
-		extends CollectionAspectAdapter<TaskList, Task>
-		implements WritableCollectionValueModel<Task>
-	{
-		PriorityTaskListAdapter(WritablePropertyValueModel<TaskList> taskListHolder) {
-			super(taskListHolder, TaskList.PRIORITY_TASKS_COLLECTION);
-		}
-		@Override
-		protected Iterator<Task> iterator_() {
-			return this.subject.priorityTasks();
-		}
-		public void setValues(Iterable<Task> values) {
-			this.subject.setPriorityTasks(values);
-		}
-	}
-
-	private void buildControlPanel(Composite parent, Control taskListPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(taskListPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control misc = this.buildMiscTaskPanel(panel);
-		this.buildAddRemoveTaskPanel(panel, misc);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildMiscTaskPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -400);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildClearListACI().fill(panel);
-		this.buildClearModelACI().fill(panel);
-		this.buildRestoreModelACI().fill(panel);
-		this.buildAddPriorityTaskACI().fill(panel);
-		this.buildRemovePriorityTaskACI().fill(panel);
-		this.buildClearPriorityTasksACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildClearListACI() {
-		Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.clearTasks();
-			}
-		};
-		action.setToolTipText("clear all the tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildAddPriorityTaskACI() {
-		Action action = new Action("add priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.addPriorityTask();
-			}
-		};
-		action.setToolTipText("add a task to the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRemovePriorityTaskACI() {
-		Action action = new Action("remove priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.removePriorityTask();
-			}
-		};
-		action.setToolTipText("remove a task from the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearPriorityTasksACI() {
-		Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.clearPriorityTasks();
-			}
-		};
-		action.setToolTipText("clear the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(clearButton);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control addButton = this.buildAddButton(panel);
-		Control removeButton = this.buildRemoveButton(panel);
-		this.buildTaskTextField(panel, addButton, removeButton);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildAddButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(0, 50);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildAddACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildAddACI() {
-		Action action = new Action("add", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.addTask();
-			}
-		};
-		action.setToolTipText("add a task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildRemoveButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -50);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildRemoveACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildRemoveACI() {
-		Action action = new Action("remove", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelBindingUITest.this.removeTask();
-			}
-		};
-		action.setToolTipText("remove the task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) {
-		this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(addButton);
-			fd.right = new FormAttachment(removeButton);
-		this.taskTextField.setLayoutData(fd);
-	}
-
-	private String taskTextFieldText() {
-		return this.taskTextField.getText();
-	}
-
-	void addTask() {
-		String taskText = this.taskTextFieldText();
-		if (taskText.length() != 0) {
-			this.taskList.addTask(taskText);
-		}
-	}
-
-	void removeTask() {
-		String task = this.taskTextFieldText();
-		if (task.length() != 0) {
-			this.taskList.removeTask(task);
-		}
-	}
-
-	void clearTasks() {
-		this.taskList.clearTasks();
-	}
-
-	void clearModel() {
-		this.taskListHolder.setValue(null);
-	}
-
-	void restoreModel() {
-		this.taskListHolder.setValue(this.taskList);
-	}
-
-	void addPriorityTask() {
-		Iterator<Task> tasks = this.taskList.tasks();
-		while (tasks.hasNext()) {
-			if (this.taskList.addPriorityTask(tasks.next())) {
-				return;
-			}
-		}
-	}
-
-	void removePriorityTask() {
-		Iterator<Task> pTasks = this.taskList.priorityTasks();
-		if (pTasks.hasNext()) {
-			this.taskList.removePriorityTask(pTasks.next());
-		}
-	}
-
-	void clearPriorityTasks() {
-		this.taskList.clearPriorityTasks();
-	}
-
-
-	// ********** TaskList **********
-
-	// note absence of validation...
-	public static class TaskList extends AbstractModel {
-		private final List<String> taskNames = new ArrayList<String>();
-			public static final String TASK_NAMES_LIST = "taskNames";
-		private final List<Task> tasks = new ArrayList<Task>();
-			public static final String TASKS_LIST = "tasks";
-		private final Collection<Task> priorityTasks = new HashSet<Task>();
-			public static final String PRIORITY_TASKS_COLLECTION = "priorityTasks";
-		public TaskList() {
-			super();
-		}
-		public ListIterator<String> taskNames() {
-			return this.taskNames.listIterator();
-		}
-		public ListIterator<Task> tasks() {
-			return this.tasks.listIterator();
-		}
-		public Iterator<Task> priorityTasks() {
-			return this.priorityTasks.iterator();
-		}
-		public Task addTask(String taskName) {
-			this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST);
-			Task task = new Task(taskName);
-			this.addItemToList(task, this.tasks, TASKS_LIST);
-			return task;
-		}		
-		public void removeTask(String taskName) {
-			int index = this.taskNames.indexOf(taskName);
-			if (index != -1) {
-				this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST);
-				// assume the indexes match...
-				Task removedTask = this.removeItemFromList(index, this.tasks, TASKS_LIST);
-				this.removeItemFromCollection(removedTask, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-			}
-		}
-		public void clearTasks() {
-			this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-			this.clearList(this.taskNames, TASK_NAMES_LIST);
-			this.clearList(this.tasks, TASKS_LIST);
-		}
-		public boolean addPriorityTask(Task task) {
-			return this.addItemToCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}		
-		public void removePriorityTask(Task task) {
-			this.removeItemFromCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}
-		public void clearPriorityTasks() {
-			this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}
-		public void setPriorityTasks(Iterable<Task> tasks) {
-			this.priorityTasks.clear();
-			CollectionTools.addAll(this.priorityTasks, tasks);
-			this.fireCollectionChanged(PRIORITY_TASKS_COLLECTION, this.priorityTasks);
-		}
-	}
-
-
-	// ********** Task **********
-
-	public static class Task extends AbstractModel implements Displayable {
-		private String name;
-		private int instanceCount;
-		private static int INSTANCE_COUNT = 1;
-		public Task(String name) {
-			this.name = name;
-			this.instanceCount = INSTANCE_COUNT++;
-		}
-		public String displayString() {
-			return this.name + ": " + this.instanceCount;
-		}
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return this.displayString();
-		}
-	}
-
-	public interface Displayable extends Model, Comparable<Displayable> {
-	
-		String displayString();
-			String DISPLAY_STRING_PROPERTY = "displayString";
-	
-	
-		// ********** helper implementations **********
-	
-		Collator DEFAULT_COLLATOR = Collator.getInstance();
-	
-		Comparator<Displayable> DEFAULT_COMPARATOR =
-			new Comparator<Displayable>() {
-				public int compare(Displayable d1, Displayable d2) {
-					// disallow duplicates based on object identity
-					if (d1 == d2) {
-						return 0;
-					}
-	
-					// first compare display strings using the default collator
-					int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString());
-					if (result != 0) {
-						return result;
-					}
-	
-					// then compare using object-id
-					result = System.identityHashCode(d1) - System.identityHashCode(d2);
-					if (result != 0) {
-						return result;
-					}
-	
-					// It's unlikely that we get to this point; but, just in case, we will return -1.
-					// Unfortunately, this introduces some mild unpredictability to the sort order
-					// (unless the objects are always passed into this method in the same order).
-					return -1;		// if all else fails, indicate that o1 < o2
-				}
-				@Override
-				public String toString() {
-					return "Displayable.DEFAULT_COMPARATOR";
-				}
-			};
-	
-	}
-}
diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java
deleted file mode 100644
index 5bd6f16..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.common.ui.tests.internal.utility.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools;
-import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Play around with a set of entry fields.
- */
-@SuppressWarnings("nls")
-public class TextFieldModelBindingUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-		private static final String DEFAULT_NAME = "Scooby Doo";
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<String> nameHolder;
-	private final WritablePropertyValueModel<String> allCapsNameHolder;
-
-
-	public static void main(String[] args) throws Exception {
-		Window window = new TextFieldModelBindingUITest();
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private TextFieldModelBindingUITest() {
-		super(null);
-		this.testModel = new TestModel(DEFAULT_NAME);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.nameHolder = this.buildNameHolder(this.testModelHolder);
-		this.allCapsNameHolder = this.buildAllCapsNameHolder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<String> buildNameHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.name();
-			}
-			@Override
-			protected void setValue_(String value) {
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildAllCapsNameHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.name().toUpperCase();
-			}
-			@Override
-			protected void setValue_(String value) {
-				// do nothing
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(this.getClass().getSimpleName());
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control textFieldPanel = this.buildTextFieldPanel(mainPanel);
-		this.buildControlPanel(mainPanel, textFieldPanel);
-		return mainPanel;
-	}
-
-	private Control buildTextFieldPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildNameTextField(panel);
-		this.buildReadOnlyNameTextField(panel);
-		this.buildAllCapsNameTextField(panel);
-
-		return panel;
-	}
-
-	private void buildNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		SWTTools.bind(this.nameHolder, textField);
-	}
-
-	private void buildReadOnlyNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		textField.setEnabled(false);
-		SWTTools.bind(this.nameHolder, textField);
-	}
-
-	private void buildAllCapsNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		textField.setEnabled(false);
-		SWTTools.bind(this.allCapsNameHolder, textField);
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildResetNameButton(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildResetNameButton(Composite parent) {
-		this.buildResetNameACI().fill(parent);
-	}
-
-	private ActionContributionItem buildResetNameACI() {
-		Action action = new Action("reset name", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelBindingUITest.this.resetName();
-			}
-		};
-		action.setToolTipText("reset name");
-		return new ActionContributionItem(action);
-	}
-
-	void resetName() {
-		this.testModel.setName(DEFAULT_NAME);
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelBindingUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelBindingUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelBindingUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("name: " + this.testModel.name());
-	}
-
-
-	// ********** model class **********
-
-	class TestModel extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		public TestModel(String name) {
-			this.name = name;
-		}
-		public String name() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.name + ")";
-		}
-	}
-
-}
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project
deleted file mode 100644
index 7064cbb..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.dbws.eclipselink.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties
deleted file mode 100644
index a2127dc..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties
deleted file mode 100644
index 927ea28..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - DBWS EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml
deleted file mode 100644
index c20226e..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.dbws.eclipselink.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.dbws.eclipselink.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.jpt.common.eclipselink.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.dbws.eclipselink.core.gen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.persistence.asm"
-         version="2.3.0.qualifier"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.persistence.core"
-         version="2.3.0.qualifier"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.persistence.dbws"
-         version="2.3.0.qualifier"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.persistence.dbws.builder"
-         version="2.3.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.dbws.eclipselink.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index 80f93d0..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - DBWS EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2010, 2011.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 1c3e2eb..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index 1429a53..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - DBWS EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index 53abe66..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 84faaa9..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - DBWS EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2011 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index a8c9da3..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - DBWS EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2010, 2011.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 1429a53..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - DBWS EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore
deleted file mode 100644
index 9d0e114..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-feature.temp.folder
-build.xml
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project
deleted file mode 100644
index b4ba972..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.dbws.eclipselink_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties
deleted file mode 100644
index 826a9dc..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.dbws.eclipselink.feature.source=org.eclipse.jpt.dbws.eclipselink.feature
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties
deleted file mode 100644
index c55c106..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - DBWS EclipseLink Support SDK (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml
deleted file mode 100644
index dadd980..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.dbws.eclipselink_sdk.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.dbws.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.dbws.eclipselink.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project
deleted file mode 100644
index b3f1d9b..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.eclipselink.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties
deleted file mode 100644
index 4f634f8..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties
deleted file mode 100644
index 734fd8d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml
deleted file mode 100644
index 703a122..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jaxb.eclipselink.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.jaxb.eclipselink.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.jpt.jaxb.feature" version="1.0.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.common.eclipselink.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.eclipselink.core.schemagen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.eclipselink.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index e21f194..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - JAXB EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index 57daebf..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index 53abe66..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index a71e7c4..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index e21f194..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - JAXB EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 57daebf..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore
deleted file mode 100644
index 9d0e114..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-feature.temp.folder
-build.xml
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project
deleted file mode 100644
index a51d418..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.eclipselink_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties
deleted file mode 100644
index 751eede..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.jaxb.eclipselink.feature.source=org.eclipse.jpt.jaxb.eclipselink.feature
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties
deleted file mode 100644
index 768463f..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB EclipseLink Support SDK (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml
deleted file mode 100644
index 52de3f6..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jaxb.eclipselink_sdk.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.eclipselink.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.feature/.project
deleted file mode 100644
index 6b7e145..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties
deleted file mode 100644
index 9e28d24..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties
deleted file mode 100644
index dbcf452..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml
deleted file mode 100644
index 54c315d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jaxb.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.jaxb.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.jpt.common.utility"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.core.schemagen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index 5bc4b67..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source - JAXB Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index 86c4916..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index f60dad3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 1dcd805..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index 6f32073..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source - JAXB Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008, 2010.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 86c4916..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project
deleted file mode 100644
index d48dee7..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.tests.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties
deleted file mode 100644
index 8bcc8cd..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-src.includes = license.html,\
-               feature.xml,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               build.properties
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties
deleted file mode 100644
index fa0a821..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - JAXB Core JUnit Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-# TOREVIEW - updateSiteName
-updateSiteName=Web Tools Platform (WTP) Updates
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools JAXB JUnit Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml
deleted file mode 100644
index 01e9ec5..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jaxb.tests.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.jpt.jaxb.core.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/license.html b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore
deleted file mode 100644
index 9d0e114..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-feature.temp.folder
-build.xml
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project
deleted file mode 100644
index dbf60be..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties
deleted file mode 100644
index bb2ce03..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.jaxb.feature.source=org.eclipse.jpt.jaxb.feature
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties
deleted file mode 100644
index 8034f12..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools SDK - JAXB Support SDK (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml
deleted file mode 100644
index 57615ef..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jaxb_sdk.feature"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jaxb.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/license.html b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project
deleted file mode 100644
index de731ab..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.dbws.eclipselink.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index c6c16f3..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.dbws.eclipselink.branding;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini
deleted file mode 100644
index 6c107d4..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties
deleted file mode 100644
index 54b1e26..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools - DBWS EclipseLink Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2011.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties
deleted file mode 100644
index 6c20e3b..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties
deleted file mode 100644
index 1429a53..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - DBWS EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath
deleted file mode 100644
index ad32c83..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project
deleted file mode 100644
index 4c657b1..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.dbws.eclipselink.core.gen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.settings/org.eclipse.jdt.core.prefs b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f4cc6fa..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Jan 31 14:51:15 EST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF
deleted file mode 100644
index 8e395f6..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.dbws.eclipselink.core.gen;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.persistence.dbws.builder;bundle-version="[2.3.0,3.0.0)",
- javax.wsdl;bundle-version="[1.6.2,2.0.0)"
-Export-Package: org.eclipse.jpt.dbws.eclipselink.core.gen
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html
deleted file mode 100644
index 071f586..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H2>About This Content</H2>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-<h3>Third Party Content</h3>
-<p>The Content includes items that have been sourced from third parties as set 
-  out below. If you did not receive this Content directly from the Eclipse Foundation, 
-  the following is provided for informational purposes only, and you should look 
-  to the Redistributor&#8217;s license for terms and conditions of use.</p>
-
-<h4><a name="JPA" id="JPA"></a>Java Persistence API (JPA) v1.0</h4>
-
-<blockquote>
-  <p>The Java Persistence API (JPA) which is distributed under <a href="https://glassfish.dev.java.net/public/CDDLv1.0.html">CDDL 
-    v1.0</a> is required by the Dali Java Persistence Tools Project in order 
-    to support this standard.</p>
-</blockquote>
-</BODY>
-</HTML>
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties
deleted file mode 100644
index a00641b..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2011 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-javacSource=1.6
-javacTarget=1.6
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties
deleted file mode 100644
index 5d537fc..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - DBWS Support - Web Services Generation
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java
deleted file mode 100644
index 4f6f445..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.dbws.eclipselink.core.gen;
-
-import static java.util.logging.Level.INFO;
-import static java.util.logging.Level.SEVERE;
-import static org.eclipse.persistence.tools.dbws.DBWSPackager.ArchiveUse.ignore;
-
-import java.io.File;
-import java.util.logging.Level;
-
-import javax.wsdl.WSDLException;
-
-import org.eclipse.jpt.dbws.eclipselink.core.gen.internal.JptDbwsCoreMessages;
-import org.eclipse.jpt.dbws.eclipselink.core.gen.internal.Tools;
-import org.eclipse.persistence.oxm.XMLContext;
-import org.eclipse.persistence.oxm.XMLUnmarshaller;
-import org.eclipse.persistence.tools.dbws.DBWSBuilder;
-import org.eclipse.persistence.tools.dbws.DBWSBuilderModel;
-import org.eclipse.persistence.tools.dbws.DBWSBuilderModelProject;
-import org.eclipse.persistence.tools.dbws.DBWSPackager;
-import org.eclipse.persistence.tools.dbws.EclipsePackager;
-
-/**
- *  Generate DBWS content
- *  
- * Current command-line arguments:
- *     [-builderFile dbws-builder.xml] - specifies source builder file
- *     [-stageDir .\Output_Dir] - specifies destination directory
- *     [-packageAs eclipse] - specifies the source package
- */
-public class Main
-{
-	private String builderFile;
-	private String stageDir;
-	private String packageAs;
-	@SuppressWarnings("unused")
-	private boolean isDebugMode;
-
-	// ********** static methods **********
-	
-	public static void main(String[] args) {
-		new Main().execute(args);
-	}
-	
-	// ********** constructors **********
-
-	private Main() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	protected void execute(String[] args) {
-		
-		this.initializeWith(args);
-		
-		this.generate();
-	}
-
-	private void generate() {
-
-		DBWSBuilder builder = new DBWSBuilder();
-
-    	DBWSBuilderModel model = this.buildBuilderModel(this.builderFile);
-		if(model == null) {
-			this.logMessage(INFO, JptDbwsCoreMessages.NO_GENERATION_PERFORMED);
-	        return;
-		}
-
-        builder.setProperties(model.properties);
-        builder.setOperations(model.operations);
-
-        if( ! this.jdbcDriverIsOnClasspath(builder.getDriver())) {
-        	return;
-        }
-		
-        DBWSPackager packager = this.buildEclipsePackager();
-        
-    	this.initializePackager(packager, builder, this.buildStageDir(this.stageDir));
-    	builder.setPackager(packager);
-    	
-        try {
-			builder.start();
-		}
-		catch(WSDLException e) {
-			this.logMessage(SEVERE, JptDbwsCoreMessages.WSDL_EXCEPTION, e.getMessage());
-            return;
-		}
-		catch(Exception e) {
-			//TODO Clean-up Stage dir. ?
-			this.logMessage(SEVERE, JptDbwsCoreMessages.GENERATION_FAILED, e.getMessage());
-			e.printStackTrace();
-            return;
-		}
-		this.logMessage(INFO, JptDbwsCoreMessages.GENERATION_COMPLETED);
-        return;
-
-	}
-
-	// ********** internal methods **********
-    
-	private void initializeWith(String[] args) {
-		
-    	this.builderFile = this.getArgumentBuilderFile(args);
-    	this.stageDir = this.getArgumentStageDir(args);
-    	this.packageAs = this.getArgumentPackageAs(args);
-
-		this.isDebugMode = this.getArgumentDebugMode(args);
-	}
-	    
-	private void initializePackager(DBWSPackager packager, DBWSBuilder builder, File stageDir) {
-
-        packager.setDBWSBuilder(builder);
-        packager.setArchiveUse(ignore);
-        packager.setAdditionalArgs(null);
-        packager.setStageDir(stageDir);
-        packager.setSessionsFileName(builder.getSessionsFileName());
-	}
-    
-	private DBWSBuilderModel buildBuilderModel(String builderFileName) {
-		
-    	File builderFile = this.getBuilderFile(builderFileName);
-		return this.unmarshal(builderFile);
-	}
-
-	private DBWSBuilderModel unmarshal(File builderFile) {
-        if((builderFile == null) || ( ! builderFile.exists())) {
-        	return null;
-        }
-		XMLContext context = new XMLContext(new DBWSBuilderModelProject());
-        XMLUnmarshaller unmarshaller = context.createUnmarshaller();
-        
-        DBWSBuilderModel model = (DBWSBuilderModel)unmarshaller.unmarshal(builderFile);
-        if(model.properties.size() == 0) {
-        	this.logMessage(SEVERE, JptDbwsCoreMessages.NO_OPERATIONS_SPECIFIED);
-            return null;
-        }
-        return model;
-	}
-
-	private File getBuilderFile(String builderFileName) {
-
-        File builderFile = new File(builderFileName);
-        if( ! (builderFile.exists() && builderFile.isFile())) {
-        	this.logMessage(SEVERE, 
-        		JptDbwsCoreMessages.UNABLE_TO_LOCATE_BUILDER_XML, builderFileName); //$NON-NLS-1$
-        	return null;
-        }
-        return builderFile;
-	}
-	
-	private File buildStageDir(String stageDirName) {
-    	File dir = new File(stageDirName);
-        if(( ! dir.exists()) || ( ! dir.isDirectory())) {
-        	dir = Tools.buildDirectory(stageDirName);
-        }
-		return dir;
-	}
-	
-	private EclipsePackager buildEclipsePackager() {
-		return new EclipsePackager() {
-			@Override
-			public void start() {
-				  // no need to check for the existence of stageDir, everything is in-memory
-			}
-		};
-	}
-
-	private boolean jdbcDriverIsOnClasspath(String jdbcDriverName) {
-	    try {
-			Class.forName(jdbcDriverName);
-		}
-		catch (ClassNotFoundException cnfe) {
-			this.logMessage(SEVERE, JptDbwsCoreMessages.DRIVER_NOT_ON_CLASSPATH, jdbcDriverName);
-			return false;
-		}
-		return true;
-	}
-	
-	private void logMessage(Level level, String key, Object argument) {
-		Tools.logMessage(level, Tools.bind(key, argument));
-	}
-	
-	private void logMessage(Level level, String key) {
-		Tools.logMessage(level, Tools.getString(key));
-	}
-
-	// ********** argument queries **********
-	
-	private String getArgumentBuilderFile(String[] args) {
-
-		return this.getArgumentValue("-builderFile", args);   //$NON-NLS-1$
-	}
-	
-	private String getArgumentStageDir(String[] args) {
-
-		return this.getArgumentValue("-stageDir", args);   //$NON-NLS-1$
-	}
-	
-	private String getArgumentPackageAs(String[] args) {
-
-		return this.getArgumentValue("-packageAs", args);   //$NON-NLS-1$
-	}
-	
-	private boolean getArgumentDebugMode(String[] args) {
-
-		return this.argumentExists("-debug", args);   //$NON-NLS-1$
-	}
-	
-	private String getArgumentValue(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.equals(argName)) {
-				int j = i + 1;
-				if (j < args.length) {
-					return args[j];
-				}
-			}
-		}
-		return null;
-	}
-	
-	private boolean argumentExists(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java
deleted file mode 100644
index ff3fa9b..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.dbws.eclipselink.core.gen.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Localized messages used by Dali DBWS generation core.
- */
-public class JptDbwsCoreMessages
-{
-	
-	public static final String GENERATION_COMPLETED = "GENERATION_COMPLETED";
-	public static final String GENERATION_FAILED = "GENERATION_FAILED";
-	public static final String NO_GENERATION_PERFORMED = "NO_GENERATION_PERFORMED";
-	public static final String WSDL_EXCEPTION = "WSDL_EXCEPTION";
-	public static final String NO_OPERATIONS_SPECIFIED = "NO_OPERATIONS_SPECIFIED";
-	public static final String UNABLE_TO_LOCATE_BUILDER_XML = "UNABLE_TO_LOCATE_BUILDER_XML";
-	public static final String DRIVER_NOT_ON_CLASSPATH = "DRIVER_NOT_ON_CLASSPATH";
-
-
-	private static final String BUNDLE_NAME = "org.eclipse.jpt.dbws.eclipselink.core.gen.internal.jpt_dbws_core"; //$NON-NLS-1$
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private JptDbwsCoreMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		}
-		catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java
deleted file mode 100644
index 7a49d7a..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.dbws.eclipselink.core.gen.internal;
-
-import static java.util.logging.Level.SEVERE;
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.logging.Level;
-
-/**
- *  Tools
- */
-public final class Tools
-{
-	/** empty string */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	private static final String USER_DIRECTORY = System.getProperty("user.dir");	//$NON-NLS-1$
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(String string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length();
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string.toCharArray(), len);
-	}	
-
-	private static boolean stringIsEmpty_(char[] s, int len) {
-		for (int i = len; i-- > 0; ) {
-			if ( ! Character.isWhitespace(s[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	// ********** short name manipulation **********
-
-	
-	public static File buildDirectory(String dirName) {
-    	File currentDir = currentWorkingDirectory();
-    	File dir = new File(currentDir, dirName);
-    	dir.mkdir();
-		return dir;
-	}
-	
-	/**
-	 * Return a file representing the current working directory.
-	 */
-	public static File currentWorkingDirectory() {
-		return new File(USER_DIRECTORY); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Strip the extension from the specified file name
-	 * and return the result. If the file name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return fileName;
-		}
-		return fileName.substring(0, index);
-	}
-
-	public static String extractDirectory(String path) {
-		if( ! path.contains(File.separator)) {
-			return EMPTY_STRING;	
-		}
-		return path.substring(0, path.lastIndexOf(File.separator));
-	}
-	
-	public static void logMessage(Level level, String message) {
-		if(level == SEVERE) {
-			System.err.println('\n' + message);
-		}
-		else {
-			System.out.println('\n' + message);
-		}
-	}
-	
-	// ********** NLS utilities **********
-
-	public static String getString(String key) {
-		return JptDbwsCoreMessages.getString(key);
-	}
-	
-	public static String bind(String key, Object argument) {
-		return MessageFormat.format(getString(key), argument);
-	}
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties
deleted file mode 100644
index c49d70f..0000000
--- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-################################################################################
-# Copyright (c) 2010, 2011 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-GENERATION_COMPLETED =  DBWSBuilder generation completed
-GENERATION_FAILED =  DBWSBuilder generation failed: {0}
-NO_GENERATION_PERFORMED =  DBWSBuilder no generation performed
-WSDL_EXCEPTION =  WSDLException: {0}
-NO_OPERATIONS_SPECIFIED =  No operations specified
-UNABLE_TO_LOCATE_BUILDER_XML =  DBWSBuilder unable to locate builder XML file:  {0}
-DRIVER_NOT_ON_CLASSPATH =  JDBC driver not on classpath: {0}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project
deleted file mode 100644
index 9856092..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 1eae124..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.jaxb.branding;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties
deleted file mode 100644
index a549df7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools - JAXB Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2010.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties
deleted file mode 100644
index 11a4e44..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties,\
-               component.xml
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml
deleted file mode 100644
index bc275a7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jaxb.branding">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt.jaxb.branding" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.utility" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.jaxb.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.jaxb.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties
deleted file mode 100644
index fbe477f..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project
deleted file mode 100644
index 025cb3b..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.core.schemagen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.settings/org.eclipse.jdt.core.prefs b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5b24c9f..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Mar 22 12:16:03 EDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF
deleted file mode 100644
index 7405624..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jaxb.core.schemagen;singleton:=true
-Bundle-Version: 1.0.100.qualifier
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: javax.xml.bind
-Export-Package: org.eclipse.jpt.jaxb.core.schemagen,
- org.eclipse.jpt.jaxb.core.schemagen.internal;x-internal:=true
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html
deleted file mode 100644
index 071f586..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H2>About This Content</H2>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-<h3>Third Party Content</h3>
-<p>The Content includes items that have been sourced from third parties as set 
-  out below. If you did not receive this Content directly from the Eclipse Foundation, 
-  the following is provided for informational purposes only, and you should look 
-  to the Redistributor&#8217;s license for terms and conditions of use.</p>
-
-<h4><a name="JPA" id="JPA"></a>Java Persistence API (JPA) v1.0</h4>
-
-<blockquote>
-  <p>The Java Persistence API (JPA) which is distributed under <a href="https://glassfish.dev.java.net/public/CDDLv1.0.html">CDDL 
-    v1.0</a> is required by the Dali Java Persistence Tools Project in order 
-    to support this standard.</p>
-</blockquote>
-</BODY>
-</HTML>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties
deleted file mode 100644
index 8ac4a49..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties
deleted file mode 100644
index 2e7dfca..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - JAXB Support - Schema Generation
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java
deleted file mode 100644
index 9f6a922..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.core.schemagen;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.SchemaOutputResolver;
-import javax.xml.transform.Result;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.jpt.jaxb.core.schemagen.internal.JptJaxbCoreMessages;
-import org.eclipse.jpt.jaxb.core.schemagen.internal.Tools;
-
-/**
- *  Generate a JAXB Schema
- *  
- * Current command-line arguments:
- *     [-s schema.xsd] - specifies the target schema
- *     [-c className] - specifies the fully qualified class name
- *     
- *     [-p packageName] - specifies the source package // @deprecated
- */
-public class Main
-{
-	private String[] sourceClassNames;
-	private String targetSchemaName;
-	@SuppressWarnings("unused")
-	private boolean isDebugMode;
-
-	static public String NO_FACTORY_CLASS = "doesnt contain ObjectFactory.class";   //$NON-NLS-1$
-
-	// ********** static methods **********
-	
-	public static void main(String[] args) {
-		new Main().execute(args);
-	}
-	
-	// ********** constructors **********
-
-	private Main() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	protected void execute(String[] args) {
-		
-		this.initializeWith(args);
-		
-		this.generate();
-	}
-
-	// ********** internal methods **********
-    
-	private void initializeWith(String[] args) {
-    	this.sourceClassNames = this.getSourceClassNames(args);
-    	this.targetSchemaName = this.getTargetSchemaName(args);
-
-		this.isDebugMode = this.getDebugMode(args);
-	}
-
-	private void generate() {
-        // Create the JAXBContext
-		JAXBContext jaxbContext = this.buildJaxbContext();
-		
-        // Generate an XML Schema
-		if(jaxbContext != null) {
-			this.generateSchema(jaxbContext);
-		}
-		else {
-			System.out.println(Tools.bind(JptJaxbCoreMessages.SCHEMA_NOT_CREATED, this.targetSchemaName));
-		}
-    }
-	
-	private JAXBContext buildJaxbContext() {
-		System.out.println(Tools.getString(JptJaxbCoreMessages.LOADING_CLASSES));
-		JAXBContext jaxbContext = null;
-			try {
-				ClassLoader loader = Thread.currentThread().getContextClassLoader();
-				
-				Class[] sourceClasses = this.buildSourceClasses(this.sourceClassNames, loader);
-				
-				jaxbContext = JAXBContext.newInstance(sourceClasses);
-			}
-			catch(JAXBException ex) {
-				this.handleException(ex);
-			}
-			return jaxbContext;
-	 }
-	
-	private void generateSchema(JAXBContext jaxbContext) {
-		System.out.println(Tools.getString(JptJaxbCoreMessages.GENERATING_SCHEMA));
-		System.out.flush();
-		
-		SchemaOutputResolver schemaOutputResolver = 
-			new JptSchemaOutputResolver(this.targetSchemaName);
-
-		try {
-			jaxbContext.generateSchema(schemaOutputResolver);
-		}
-		catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-    
-    private Class[] buildSourceClasses(String[] classNames, ClassLoader loader) {
-
-		ArrayList<Class> sourceClasses = new ArrayList<Class>(classNames.length);
-		for(String className: classNames) {
-			try {
-				sourceClasses.add(loader.loadClass(className));
-					System.out.println(className);
-			}
-			catch (ClassNotFoundException e) {
-				System.err.println(Tools.bind(JptJaxbCoreMessages.NOT_FOUND, className));
-			}
-		}
-		System.out.flush();
-		return sourceClasses.toArray(new Class[0]);
-    }
-	
-	private void handleException(JAXBException ex) {
-		String message = ex.getMessage();
-		Throwable linkedEx = ex.getLinkedException();
-		if(message != null && message.indexOf(NO_FACTORY_CLASS) > -1) {
-			System.err.println(message);
-		}
-		else if(linkedEx != null && linkedEx instanceof ClassNotFoundException) {
-			String errorMessage = Tools.bind(JptJaxbCoreMessages.CONTEXT_FACTORY_NOT_FOUND, linkedEx.getMessage());
-			System.err.println(errorMessage);
-		}
-		else {
-			ex.printStackTrace();
-		}
-	}
-
-	// ********** argument queries **********
-    
-	private String[] getSourceClassNames(String[] args) {
-
-		return this.getAllArgumentValue("-c", args);   //$NON-NLS-1$
-	}
-	
-	private String getTargetSchemaName(String[] args) {
-
-		return this.getArgumentValue("-s", args);   //$NON-NLS-1$
-	}
-
-	private boolean getDebugMode(String[] args) {
-
-		return this.argumentExists("-debug", args);   //$NON-NLS-1$
-	}
-
-	// ********** private methods **********
-
-	private String getArgumentValue(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				int j = i + 1;
-				if (j < args.length) {
-					return args[j];
-				}
-			}
-		}
-		return null;
-	}
-	
-	private String[] getAllArgumentValue(String argName, String[] args) {
-		List<String> argValues = new ArrayList<String>();
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				int j = i + 1;
-				if (j < args.length) {
-					argValues.add(args[j]);
-					i++;
-				}
-			}
-		}
-		return argValues.toArray(new String[0]);
-	}
-	
-	private boolean argumentExists(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-}
-
-// ********** inner class **********
-
-class JptSchemaOutputResolver extends SchemaOutputResolver {
-	
-	private final String defaultSchemaName;
-
-	// ********** constructor **********
-	
-	protected JptSchemaOutputResolver(String defaultSchemaName) {
-		this.defaultSchemaName = defaultSchemaName;
-	}
-
-	// ********** overrides **********
-	
-	 @Override
-    public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
-
-        String filePath = (Tools.stringIsEmpty(namespaceURI)) ? 
-        		this.buildFileNameFrom(this.defaultSchemaName, suggestedFileName) : 
-        		this.modifyFileName(namespaceURI);
-	        	
-        filePath = this.canonicalFileName(filePath);
-		File file = new File(filePath);
-		StreamResult result = new StreamResult(file);
-		result.setSystemId(file.toURL().toExternalForm());
-
-		System.out.print(Tools.bind(JptJaxbCoreMessages.SCHEMA_GENERATED, file));
-        return result;
-    }
-
-	// ********** private methods **********
-
-	 private String buildFileNameFrom(String fileName, String suggestedFileName) {
-
-		 fileName = Tools.stripExtension(fileName);
-
-		 if(Tools.stringIsEmpty(fileName)) {
-			 return suggestedFileName;
-		 }
-		 String number = Tools.extractFileNumber(suggestedFileName);
-
-		 fileName = this.buildFileName(fileName, number);
-		 return Tools.appendXsdExtension(fileName);
-	 }
-
-	 private String buildFileName(String fileName, String number) {
-
-		 if(Tools.stringIsEmpty(number)) {
-			 return fileName;
-		 }
-		 return (number.equals("0")) ? fileName : fileName + number;   //$NON-NLS-1$
-	 }
-	 
-	 private String modifyFileName(String namespaceURI) throws IOException {
-
-		 String dir = Tools.extractDirectory(this.defaultSchemaName);
-
-		 String fileName = Tools.stripProtocol(namespaceURI);
-		 fileName = fileName.replaceAll("/", "_");		//$NON-NLS-1$
-		 fileName = Tools.appendXsdExtension(fileName);
-
-		String result = (Tools.stringIsEmpty(dir)) ? fileName : dir + File.separator + fileName;
-		
-		return result;
-	 }
-
-	 private String canonicalFileName(String fileName) {
-		return this.canonicalFile(new File(fileName)).getAbsolutePath();
-	}
-	
-	 private File canonicalFile(File file) {
-		try {
-			return file.getCanonicalFile();
-		} 
-		catch (IOException ioexception) {
-			return file.getAbsoluteFile();
-		}
-	}
-
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java
deleted file mode 100644
index 4917053..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.core.schemagen.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Localized messages used by Dali JAXB core.
- */
-public class JptJaxbCoreMessages
-{
-
-	public static final String LOADING_CLASSES = "LOADING_CLASSES";
-	public static final String GENERATING_SCHEMA = "GENERATING_SCHEMA";
-	public static final String SCHEMA_GENERATED = "SCHEMA_GENERATED";
-	public static final String SCHEMA_NOT_CREATED = "SCHEMA_NOT_CREATED";
-	public static final String NOT_FOUND = "NOT_FOUND";
-	public static final String CONTEXT_FACTORY_NOT_FOUND = "CONTEXT_FACTORY_NOT_FOUND";
-	
-
-	private static final String BUNDLE_NAME = "org.eclipse.jpt.jaxb.core.schemagen.internal.jpt_jaxb_core"; //$NON-NLS-1$
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private JptJaxbCoreMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		}
-		catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java
deleted file mode 100644
index 6427661..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.core.schemagen.internal;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-/**
- *  Tools
- */
-public final class Tools
-{
-	/** default file name used by the schemagen */
-	static public String GEN_DEFAULT_NAME = "schema";   //$NON-NLS-1$
-	
-	/** empty string */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(String string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length();
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string.toCharArray(), len);
-	}	
-
-	private static boolean stringIsEmpty_(char[] s, int len) {
-		for (int i = len; i-- > 0; ) {
-			if ( ! Character.isWhitespace(s[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	// ********** short name manipulation **********
-
-	/**
-	 * Strip the extension from the specified file name
-	 * and return the result. If the file name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return fileName;
-		}
-		return fileName.substring(0, index);
-	}
-
-	public static String stripProtocol(String uri) {
-
-		 return uri.replaceFirst("http://", EMPTY_STRING);
-	}
-
-
-	public static String appendXsdExtension(String name) {
-
-		 return name + ".xsd";		//$NON-NLS-1$
-	}
-
-	public static String extractFileNumber(String fileName) {
-
-		 String result = stripExtension(fileName);
-		 if(Tools.stringIsEmpty(result)) {
-			 return EMPTY_STRING;
-		 }
-		 return result.replaceFirst(GEN_DEFAULT_NAME, EMPTY_STRING);
-	}
-
-	public static String extractDirectory(String path) {
-		if( ! path.contains(File.separator)) {
-			return EMPTY_STRING;	
-		}
-		return path.substring(0, path.lastIndexOf(File.separator));
-	}
-	
-	// ********** NLS utilities **********
-
-	public static String getString(String key) {
-		return JptJaxbCoreMessages.getString(key);
-	}
-	
-	public static String bind(String key, Object argument) {
-		return MessageFormat.format(getString(key), argument);
-	}
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties
deleted file mode 100644
index b9112cd..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-# Copyright (c) 2010 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-LOADING_CLASSES = loading...
-GENERATING_SCHEMA = \ngenerating schema...
-SCHEMA_GENERATED =  \nSchema {0} generated
-SCHEMA_NOT_CREATED =  \nSchema {0} not created
-NOT_FOUND =  \n\tNot found: {0}
-CONTEXT_FACTORY_NOT_FOUND =  \nThe JAXBContextFactory {0} \n\
-specified in the jaxb.properties file could not be located on the project classpath. \n\
-The JAXB provider that defines this factory should be added to the project classpath, \n\
-or the jaxb.properties file should be removed to use the default provider.
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.project
deleted file mode 100644
index d123fb8..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.eclipselink.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 0eb6ebd..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.jaxb.eclipselink.branding;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.ini b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.mappings b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.properties
deleted file mode 100644
index 99e307d..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools - JAXB EclipseLink Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2010.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/build.properties
deleted file mode 100644
index d6bd03a..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/icons/WTP_icon_x32_v2.png b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/plugin.properties
deleted file mode 100644
index 6b68e90..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - JAXB EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.classpath b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.classpath
deleted file mode 100644
index bbf9ced..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry exported="true" kind="lib" path="lib/eclipselink.jar" sourcepath="lib/eclipselink-src.zip"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.project
deleted file mode 100644
index a482c34..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.eclipselink.core.schemagen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.settings/org.eclipse.jdt.core.prefs b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8fb4ff7..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Tue Apr 13 12:12:27 EDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/META-INF/MANIFEST.MF
deleted file mode 100644
index eea3432..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jaxb.eclipselink.core.schemagen;singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-ClassPath: lib/eclipselink.jar
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: javax.xml.bind
-Export-Package: org.eclipse.jpt.jaxb.eclipselink.core.schemagen,
- org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal;x-internal:=true
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/about.html
deleted file mode 100644
index 071f586..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/about.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H2>About This Content</H2>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-<h3>Third Party Content</h3>
-<p>The Content includes items that have been sourced from third parties as set 
-  out below. If you did not receive this Content directly from the Eclipse Foundation, 
-  the following is provided for informational purposes only, and you should look 
-  to the Redistributor&#8217;s license for terms and conditions of use.</p>
-
-<h4><a name="JPA" id="JPA"></a>Java Persistence API (JPA) v1.0</h4>
-
-<blockquote>
-  <p>The Java Persistence API (JPA) which is distributed under <a href="https://glassfish.dev.java.net/public/CDDLv1.0.html">CDDL 
-    v1.0</a> is required by the Dali Java Persistence Tools Project in order 
-    to support this standard.</p>
-</blockquote>
-</BODY>
-</HTML>
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/build.properties
deleted file mode 100644
index a3ffe71..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               lib/eclipselink.jar,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink-src.zip b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink-src.zip
deleted file mode 100644
index 68a5393..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink-src.zip
+++ /dev/null
Binary files differ
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink.jar b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink.jar
deleted file mode 100644
index 855e644..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink.jar
+++ /dev/null
Binary files differ
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/plugin.properties
deleted file mode 100644
index c057411..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - EclipseLink JAXB Support - Schema Generation
-providerName = Eclipse Web Tools Platform
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/Main.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/Main.java
deleted file mode 100644
index 0ae05f1..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/Main.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.eclipselink.core.schemagen;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.SchemaOutputResolver;
-import javax.xml.transform.Result;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal.JptEclipseLinkJaxbCoreMessages;
-import org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal.Tools;
-import org.eclipse.persistence.jaxb.JAXBContext;
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
-
-/**
- *  Generate a EclipseLink JAXB Schema
- *  
- * Current command-line arguments:
- *     [-s schema.xsd] - specifies the target schema
- *     [-c className] - specifies the fully qualified class name
- */
-public class Main
-{
-	private String[] sourceClassNames;
-	private String targetSchemaName;
-	@SuppressWarnings("unused")
-	private boolean isDebugMode;
-
-	static public String NO_FACTORY_CLASS = "doesnt contain ObjectFactory.class";   //$NON-NLS-1$
-	static public String CANNOT_BE_CAST_TO_JAXBCONTEXT = "cannot be cast to org.eclipse.persistence.jaxb.JAXBContext";   //$NON-NLS-1$
-
-	// ********** static methods **********
-	
-	public static void main(String[] args) {
-		new Main().execute(args);
-	}
-	
-	// ********** constructors **********
-
-	private Main() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	protected void execute(String[] args) {
-		
-		this.initializeWith(args);
-		
-		this.generate();
-	}
-
-	// ********** internal methods **********
-    
-	private void initializeWith(String[] args) {
-    	this.sourceClassNames = this.getSourceClassNames(args);
-    	this.targetSchemaName = this.getTargetSchemaName(args);
-
-		this.isDebugMode = this.getDebugMode(args);
-	}
-
-	private void generate() {
-        // Create the JAXBContext
-        JAXBContext jaxbContext = this.buildJaxbContext();
-
-        // Generate an XML Schema
-        if(jaxbContext != null) {
-			this.generateSchema(jaxbContext);
-		}
-        else {
-        	Tools.bind(JptEclipseLinkJaxbCoreMessages.SCHEMA_NOT_CREATED, this.targetSchemaName);
-        }
-	}
-	
-	private JAXBContext buildJaxbContext() {
-		System.out.println(Tools.getString(JptEclipseLinkJaxbCoreMessages.LOADING_CLASSES));
-        JAXBContext jaxbContext = null;
-		try {
-			ClassLoader loader = Thread.currentThread().getContextClassLoader();
-			
-			Class[] sourceClasses = this.buildSourceClasses(this.sourceClassNames, loader);
-			
-			//call MOXy JAXBContextFactory directly.  This eliminates the need to have the JAXB properties file in place
-			//in time for the generation.
-			jaxbContext = (JAXBContext)JAXBContextFactory.createContext(sourceClasses, Collections.<String,Object>emptyMap());
-		}
-		catch (JAXBException ex) {
-			this.handleJaxbException(ex);
-		}
-		catch (ClassCastException ex) {
-			this.handleClassCastException(ex);
-		}
-		return jaxbContext;
-	}
-	
-	private void generateSchema(JAXBContext jaxbContext) {
-		System.out.println(Tools.getString(JptEclipseLinkJaxbCoreMessages.GENERATING_SCHEMA));
-		System.out.flush();
-
-    	SchemaOutputResolver schemaOutputResolver = 
-    		new JptSchemaOutputResolver(this.targetSchemaName);
-
-		try {
-			jaxbContext.generateSchema(schemaOutputResolver);
-		}
-		catch(Exception e) {
-			e.printStackTrace();
-		}
-	}
-    
-    private Class[] buildSourceClasses(String[] classNames, ClassLoader loader) {
-
-		ArrayList<Class> sourceClasses = new ArrayList<Class>(classNames.length);
-		for(String className: classNames) {
-			try {
-				sourceClasses.add(loader.loadClass(className));
-					System.out.println(className);
-			}
-			catch (ClassNotFoundException e) {
-				System.err.println(Tools.bind(JptEclipseLinkJaxbCoreMessages.NOT_FOUND, className));
-			}
-		}
-		System.out.flush();
-		return sourceClasses.toArray(new Class[0]);
-    }
-	
-	private void handleJaxbException(JAXBException ex) {
-		String message = ex.getMessage();
-		Throwable linkedEx = ex.getLinkedException();
-		if(message != null && message.indexOf(NO_FACTORY_CLASS) > -1) {
-			System.err.println(message);
-		}
-		else if(linkedEx != null && linkedEx instanceof ClassNotFoundException) {
-			String errorMessage = Tools.bind(
-				JptEclipseLinkJaxbCoreMessages.CONTEXT_FACTORY_NOT_FOUND, linkedEx.getMessage());
-			System.err.println(errorMessage);
-		}
-		else {
-			ex.printStackTrace();
-		}
-	}
-	
-	private void handleClassCastException(ClassCastException ex) {
-		String message = ex.getMessage();
-		if(message != null && message.indexOf(CANNOT_BE_CAST_TO_JAXBCONTEXT) > -1) {
-			System.err.println(Tools.getString(JptEclipseLinkJaxbCoreMessages.PROPERTIES_FILE_NOT_FOUND));
-		}
-		else {
-			ex.printStackTrace();
-		}
-	}
-
-	// ********** argument queries **********
-    
-	private String[] getSourceClassNames(String[] args) {
-
-		return this.getAllArgumentValues("-c", args);   //$NON-NLS-1$
-	}
-	
-	private String getTargetSchemaName(String[] args) {
-
-		return this.getArgumentValue("-s", args);   //$NON-NLS-1$
-	}
-
-	private boolean getDebugMode(String[] args) {
-
-		return this.argumentExists("-debug", args);   //$NON-NLS-1$
-	}
-
-	// ********** private methods **********
-
-	private String getArgumentValue(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				int j = i + 1;
-				if (j < args.length) {
-					return args[j];
-				}
-			}
-		}
-		return null;
-	}
-	
-	private String[] getAllArgumentValues(String argName, String[] args) {
-		List<String> argValues = new ArrayList<String>();
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				int j = i + 1;
-				if (j < args.length) {
-					argValues.add(args[j]);
-					i++;
-				}
-			}
-		}
-		return argValues.toArray(new String[0]);
-	}
-	
-	private boolean argumentExists(String argName, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-}
-
-// ********** inner class **********
-
-class JptSchemaOutputResolver extends SchemaOutputResolver {
-	
-	private String defaultSchemaName;
-
-	// ********** constructor **********
-	
-	protected JptSchemaOutputResolver(String defaultSchemaName) {
-		this.defaultSchemaName = defaultSchemaName;
-	}
-
-	// ********** overrides **********
-
-	 @Override
-    public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
-
-        String filePath = (Tools.stringIsEmpty(namespaceURI)) ? 
-        		this.buildFileNameFrom(this.defaultSchemaName, suggestedFileName) : 
-        		this.modifyFileName(namespaceURI);
-
-		File file = new File(filePath);
-        StreamResult result = new StreamResult(file);
-        result.setSystemId(file.toURI().toURL().toString());
-
-        System.out.print(Tools.bind(JptEclipseLinkJaxbCoreMessages.SCHEMA_GENERATED, file));
-        return result;
-    }
-
-		// ********** private methods **********
-
-	 private String buildFileNameFrom(String fileName, String suggestedFileName) {
-
-		 fileName = Tools.stripExtension(fileName);
-
-		 if(Tools.stringIsEmpty(fileName)) {
-			 return suggestedFileName;
-		 }
-		 String number = Tools.extractFileNumber(suggestedFileName);
-
-		 fileName = this.buildFileName(fileName, number);
-		 return Tools.appendXsdExtension(fileName);
-	 }
-
-	 private String buildFileName(String fileName, String number) {
-
-		 if(Tools.stringIsEmpty(number)) {
-			 return fileName;
-		 }
-		 return (number.equals("0")) ? fileName : fileName + number;   //$NON-NLS-1$
-	 }
-
-	 private String modifyFileName(String namespaceURI) throws IOException {
-
-		 String dir = Tools.extractDirectory(this.defaultSchemaName);
-
-		 String fileName = Tools.stripProtocol(namespaceURI);
-		 fileName = fileName.replaceAll("/", "_");		//$NON-NLS-1$
-		 fileName = Tools.appendXsdExtension(fileName);
-
-		String result = (Tools.stringIsEmpty(dir)) ? fileName : dir + File.separator + fileName;
-		
-		return result;
-	 }
-
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/JptEclipseLinkJaxbCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/JptEclipseLinkJaxbCoreMessages.java
deleted file mode 100644
index 65a9e2e..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/JptEclipseLinkJaxbCoreMessages.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Localized messages used by Dali EclipseLink JAXB core.
- */
-public class JptEclipseLinkJaxbCoreMessages
-{
-	public static final String LOADING_CLASSES = "LOADING_CLASSES";
-	public static final String GENERATING_SCHEMA = "GENERATING_SCHEMA";
-	public static final String SCHEMA_GENERATED = "SCHEMA_GENERATED";
-	public static final String SCHEMA_NOT_CREATED = "SCHEMA_NOT_CREATED";
-	public static final String NOT_FOUND = "NOT_FOUND";
-	public static final String CONTEXT_FACTORY_NOT_FOUND = "CONTEXT_FACTORY_NOT_FOUND";
-	public static final String PROPERTIES_FILE_NOT_FOUND = "PROPERTIES_FILE_NOT_FOUND";
-	
-
-	private static final String BUNDLE_NAME = "org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal.jpt_eclipselink_jaxb_core"; //$NON-NLS-1$
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private JptEclipseLinkJaxbCoreMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		}
-		catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
\ No newline at end of file
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/Tools.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/Tools.java
deleted file mode 100644
index 5a32e4c..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/Tools.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2010 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jaxb.eclipselink.core.schemagen.internal;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-/**
- *  Tools
- */
-public final class Tools
-{
-	/** default file name used by the schemagen */
-	static public String GEN_DEFAULT_NAME = "schema";   //$NON-NLS-1$
-	
-	/** empty string */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(String string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length();
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string.toCharArray(), len);
-	}	
-
-	private static boolean stringIsEmpty_(char[] s, int len) {
-		for (int i = len; i-- > 0; ) {
-			if ( ! Character.isWhitespace(s[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	// ********** short name manipulation **********
-
-	/**
-	 * Strip the extension from the specified file name
-	 * and return the result. If the file name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return fileName;
-		}
-		return fileName.substring(0, index);
-	}
-
-	public static String stripProtocol(String uri) {
-
-		 return uri.replaceFirst("http://", EMPTY_STRING);
-	}
-
-
-	public static String appendXsdExtension(String name) {
-
-		 return name + ".xsd";		//$NON-NLS-1$
-	}
-
-	public static String extractFileNumber(String fileName) {
-
-		 String result = stripExtension(fileName);
-		 if(Tools.stringIsEmpty(result)) {
-			 return EMPTY_STRING;
-		 }
-		 return result.replaceFirst(GEN_DEFAULT_NAME, EMPTY_STRING);
-	}
-
-	public static String extractDirectory(String path) {
-		if( ! path.contains(File.separator)) {
-			return EMPTY_STRING;	
-		}
-		return path.substring(0, path.lastIndexOf(File.separator));
-	}
-	
-	// ********** NLS utilities **********
-
-	public static String getString(String key) {
-		return JptEclipseLinkJaxbCoreMessages.getString(key);
-	}
-	
-	public static String bind(String key, Object argument) {
-		return MessageFormat.format(getString(key), argument);
-	}
-}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/jpt_eclipselink_jaxb_core.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/jpt_eclipselink_jaxb_core.properties
deleted file mode 100644
index a9f7661..0000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/jpt_eclipselink_jaxb_core.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-################################################################################
-# Copyright (c) 2010 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-LOADING_CLASSES = loading...
-GENERATING_SCHEMA = \nMOXy generating schema...
-SCHEMA_GENERATED =  \nSchema {0} generated
-SCHEMA_NOT_CREATED =  \nSchema {0} not created
-NOT_FOUND =  \n\tNot found: {0}
-PROPERTIES_FILE_NOT_FOUND =  \nEclipseLink JAXBContextFactory must be specified in the jaxb.properties file to use EclipseLink MOXy for schema generation.\n\
-javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
-CONTEXT_FACTORY_NOT_FOUND =  \nThe JAXBContextFactory {0} \n\
-specified in the jaxb.properties file could not be located on the project classpath. \n\
-The JAXB provider that defines this factory should be added to the project classpath, \n\
-or the jaxb.properties file should be removed to use the default provider.
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/.cvsignore b/jpa/features/org.eclipse.jpt.eclipselink.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/.project b/jpa/features/org.eclipse.jpt.eclipselink.feature/.project
deleted file mode 100644
index 93f19b1..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.eclipselink.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index dab5837..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:47 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/build.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.eclipselink.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.properties
deleted file mode 100644
index 024fdc1..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.xml b/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.xml
deleted file mode 100644
index b87ac6c..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/feature.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.eclipselink.feature"
-      label="%featureName"
-      version="2.4.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.eclipselink.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.jpt.feature" version="2.3.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.core.ddlgen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.eclipselink.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/license.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.ini b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.mappings b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index cb59e5f..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/build.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/license.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index 262082f..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/build.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index 53abe66..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/epl-v10.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/feature.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index ae6b7ad..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/license.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.ini b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index cb59e5f..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/build.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/license.html b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 262082f..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.cvsignore b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.cvsignore
deleted file mode 100644
index 6365d3d..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-feature.temp.folder
-build.xml
-org.eclipse.jpt_sdk.feature_1.0.1.*
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project
deleted file mode 100644
index 15f9157..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 6cc7d4b..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:09:59 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/build.properties b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/build.properties
deleted file mode 100644
index b479ccb..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.eclipselink.feature.source=org.eclipse.jpt.eclipselink.feature
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.properties b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.properties
deleted file mode 100644
index be83617..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support SDK (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.xml b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.xml
deleted file mode 100644
index f08cee5..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.eclipselink_sdk.feature"
-      label="%featureName"
-      version="2.4.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/license.html b/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/.cvsignore b/jpa/features/org.eclipse.jpt.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/features/org.eclipse.jpt.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/features/org.eclipse.jpt.feature/.project b/jpa/features/org.eclipse.jpt.feature/.project
deleted file mode 100644
index c8eb2f0..0000000
--- a/jpa/features/org.eclipse.jpt.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index dab5837..0000000
--- a/jpa/features/org.eclipse.jpt.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:47 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.feature/build.properties b/jpa/features/org.eclipse.jpt.feature/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/jpa/features/org.eclipse.jpt.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/jpa/features/org.eclipse.jpt.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.feature/feature.properties b/jpa/features/org.eclipse.jpt.feature/feature.properties
deleted file mode 100644
index 43967bb..0000000
--- a/jpa/features/org.eclipse.jpt.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.feature/feature.xml b/jpa/features/org.eclipse.jpt.feature/feature.xml
deleted file mode 100644
index 6a316ed..0000000
--- a/jpa/features/org.eclipse.jpt.feature/feature.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.feature"
-      label="%featureName"
-      version="2.4.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.datatools.enablement.feature" version="1.8.0"/>
-      <import feature="org.eclipse.datatools.sqldevtools.feature" version="1.8.0"/>
-      <import feature="org.eclipse.datatools.connectivity.feature" version="1.8.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.common.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.utility"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.db"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.db.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.gen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.doc.user"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.collections"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.lang"
-         download-size="0"
-         install-size="0"
-         version="2.1.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.oro"
-         download-size="0"
-         install-size="0"
-         version="2.0.8.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.jdom"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.velocity"
-         download-size="0"
-         install-size="0"
-         version="1.5.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.feature/license.html b/jpa/features/org.eclipse.jpt.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.ini b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.mappings b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index 20288ae..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/build.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.gif b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.png b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/epl-v10.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/license.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/plugin.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index c07594d..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/build.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index f60dad3..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/epl-v10.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/feature.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 8cccce1..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/license.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.ini b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.mappings b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index 021634d..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008, 2010.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/build.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.gif b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.png b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/epl-v10.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/license.html b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/plugin.properties b/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index c07594d..0000000
--- a/jpa/features/org.eclipse.jpt.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.cvsignore b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.project b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.project
deleted file mode 100644
index 82b5c31..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.eclipselink.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index dab5837..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:47 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/build.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.properties
deleted file mode 100644
index 024fdc1..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.xml b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.xml
deleted file mode 100644
index 3b67aff..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jpa.eclipselink.feature"
-      label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.jpa.eclipselink.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.jpt.jpa.feature" version="3.0.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.common.eclipselink.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.core.ddlgen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/license.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.ini b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.mappings b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index cb59e5f..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/build.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/license.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index 262082f..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/build.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index 53abe66..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/feature.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index ae6b7ad..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/license.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.ini b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index cb59e5f..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools - EclipseLink Support Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/build.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 6dcfcd6..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               plugin.properties,\
-               plugin.xml,\
-               src/**,\
-               META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/license.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index 262082f..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.cvsignore b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.cvsignore
deleted file mode 100644
index 6365d3d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-feature.temp.folder
-build.xml
-org.eclipse.jpt_sdk.feature_1.0.1.*
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.project b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.project
deleted file mode 100644
index f5f4862..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.eclipselink_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 6cc7d4b..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:09:59 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/build.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/build.properties
deleted file mode 100644
index 6053609..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.jpa.eclipselink.feature.source=org.eclipse.jpt.jpa.eclipselink.feature
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.properties b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.properties
deleted file mode 100644
index be83617..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools - EclipseLink Support SDK (Optional)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence - EclipseLink Support
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.xml b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.xml
deleted file mode 100644
index 200ee16..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jpa.eclipselink_sdk.feature"
-      label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.jpa.eclipselink.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jpa.eclipselink.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/license.html b/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/.cvsignore b/jpa/features/org.eclipse.jpt.jpa.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/.project b/jpa/features/org.eclipse.jpt.jpa.feature/.project
deleted file mode 100644
index e1d95d7..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.jpa.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index dab5837..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:47 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/build.properties b/jpa/features/org.eclipse.jpt.jpa.feature/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/feature.properties b/jpa/features/org.eclipse.jpt.jpa.feature/feature.properties
deleted file mode 100644
index 43967bb..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/feature.xml b/jpa/features/org.eclipse.jpt.jpa.feature/feature.xml
deleted file mode 100644
index 8b5f907..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/feature.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jpa.feature"
-      label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt.jpa.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.datatools.enablement.feature" version="1.8.0"/>
-      <import feature="org.eclipse.datatools.sqldevtools.feature" version="1.8.0"/>
-      <import feature="org.eclipse.datatools.connectivity.feature" version="1.8.0"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.common.utility"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.db"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.db.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.gen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.doc.user"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.collections"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.lang"
-         download-size="0"
-         install-size="0"
-         version="2.1.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.velocity"
-         download-size="0"
-         install-size="0"
-         version="1.5.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.oro"
-         download-size="0"
-         install-size="0"
-         version="2.0.8.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.jdom"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/license.html b/jpa/features/org.eclipse.jpt.jpa.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.ini b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.mappings b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.properties
deleted file mode 100644
index 20288ae..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/build.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.gif b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.png b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/license.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/plugin.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/plugin.properties
deleted file mode 100644
index c07594d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/build.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/build.properties
deleted file mode 100644
index f60dad3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = \
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               feature.xml,\
-               feature.properties,\
-               license.html
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/feature.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 8cccce1..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code zips for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/license.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index d4916df..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 06, 2007</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.ini b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 2dee36a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.mappings b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index a28390a..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.properties
deleted file mode 100644
index 021634d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Dali Java Persistence Tools Source\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2008, 2010.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
-
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/build.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index ce9529b..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.gif b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.png b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 50ae49d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/license.html b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/license.html
deleted file mode 100644
index 5ad00ba..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/license.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/plugin.properties b/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index c07594d..0000000
--- a/jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.cvsignore b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.cvsignore
deleted file mode 100644
index 087aebe..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-feature.temp.folder
-build.xml
-org.eclipse.jpt.jpa_sdk.feature_1.0.1.*
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.project b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.project
deleted file mode 100644
index f933b5e..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 6cc7d4b..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:09:59 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/build.properties b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/build.properties
deleted file mode 100644
index 923e8a3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.jpa.feature.source=org.eclipse.jpt.jpa.feature
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.properties b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.properties
deleted file mode 100644
index a2fe8ca..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.xml b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.xml
deleted file mode 100644
index be03d1e..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.jpa_sdk.feature"
-      label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.jpa.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.jpa.feature.source"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.doc.isv"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/license.html b/jpa/features/org.eclipse.jpt.jpa_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.jpa_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore b/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/.project b/jpa/features/org.eclipse.jpt.tests.feature/.project
deleted file mode 100644
index 91760f2..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt.tests.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 235b84a..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:17 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/build.properties b/jpa/features/org.eclipse.jpt.tests.feature/build.properties
deleted file mode 100644
index d6a4dce..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-src.includes = license.html,\
-               feature.xml,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               build.properties
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt.tests.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/epl-v10.html b/jpa/features/org.eclipse.jpt.tests.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/feature.properties b/jpa/features/org.eclipse.jpt.tests.feature/feature.properties
deleted file mode 100644
index bb09352..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/feature.properties
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools JUnit Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-# TOREVIEW - updateSiteName
-updateSiteName=Web Tools Platform (WTP) Updates
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/feature.xml b/jpa/features/org.eclipse.jpt.tests.feature/feature.xml
deleted file mode 100644
index 7a51642..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/feature.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests.feature"
-      label="%featureName"
-      version="2.4.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.jpt.common.core.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.common.utility.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.core.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.core.tests.extension.resource"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.jpa.eclipselink.core.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/license.html b/jpa/features/org.eclipse.jpt.tests.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore b/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore
deleted file mode 100644
index 6365d3d..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-feature.temp.folder
-build.xml
-org.eclipse.jpt_sdk.feature_1.0.1.*
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/.project b/jpa/features/org.eclipse.jpt_sdk.feature/.project
deleted file mode 100644
index 33da750..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/.settings/org.eclipse.core.resources.prefs b/jpa/features/org.eclipse.jpt_sdk.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 6cc7d4b..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:09:59 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/build.properties b/jpa/features/org.eclipse.jpt_sdk.feature/build.properties
deleted file mode 100644
index 2d7ab8d..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-
-generate.feature@org.eclipse.jpt.feature.source=org.eclipse.jpt.feature
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/eclipse_update_120.jpg b/jpa/features/org.eclipse.jpt_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/epl-v10.html b/jpa/features/org.eclipse.jpt_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/feature.properties b/jpa/features/org.eclipse.jpt_sdk.feature/feature.properties
deleted file mode 100644
index a2fe8ca..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/feature.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-
-# "description" property - description of the feature
-description=Source code archives for Dali Java Persistence Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006, 2010 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-April 14, 2010\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml b/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml
deleted file mode 100644
index 16e6aa9..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt_sdk.feature"
-      label="%featureName"
-      version="2.4.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.jpt.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.feature.source"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt.doc.isv"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/license.html b/jpa/features/org.eclipse.jpt_sdk.feature/license.html
deleted file mode 100644
index c184ca3..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/license.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 14, 2010</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.branding/.cvsignore b/jpa/plugins/org.eclipse.jpt.branding/.cvsignore
deleted file mode 100644
index c9401a2..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.branding/.project b/jpa/plugins/org.eclipse.jpt.branding/.project
deleted file mode 100644
index e1a9bed..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.branding/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.branding/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.branding/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 5507a8f..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.branding;singleton:=true
-Bundle-Version: 2.4.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jpa/plugins/org.eclipse.jpt.branding/about.html b/jpa/plugins/org.eclipse.jpt.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.branding/about.ini b/jpa/plugins/org.eclipse.jpt.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.branding/about.mappings b/jpa/plugins/org.eclipse.jpt.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.branding/about.properties b/jpa/plugins/org.eclipse.jpt.branding/about.properties
deleted file mode 100644
index 4b821e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2006, 2009.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jpa/plugins/org.eclipse.jpt.branding/build.properties b/jpa/plugins/org.eclipse.jpt.branding/build.properties
deleted file mode 100644
index 4e089bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties,\
-               component.xml
diff --git a/jpa/plugins/org.eclipse.jpt.branding/component.xml b/jpa/plugins/org.eclipse.jpt.branding/component.xml
deleted file mode 100644
index 622c26c..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/component.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.branding">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt.branding" fragment="false"/>
-<plugin id="org.eclipse.jpt.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.db" fragment="false"/>
-<plugin id="org.eclipse.jpt.db.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.gen" fragment="false"/>
-<plugin id="org.eclipse.jpt.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.jaxb.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.utility" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.branding/icons/WTP_icon_x32_v2.png b/jpa/plugins/org.eclipse.jpt.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.branding/plugin.properties b/jpa/plugins/org.eclipse.jpt.branding/plugin.properties
deleted file mode 100644
index 0cadd22..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.core/.project b/jpa/plugins/org.eclipse.jpt.core/.project
deleted file mode 100644
index fff5658..0000000
--- a/jpa/plugins/org.eclipse.jpt.core/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.core</name>
-	<comment>renamed to org.eclipse.jpt.jpa.core</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.project b/jpa/plugins/org.eclipse.jpt.db.ui/.project
deleted file mode 100644
index 64a5574..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.db.ui</name>
-	<comment>renamed to org.eclipse.jpt.jpa.db.ui</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db/.project b/jpa/plugins/org.eclipse.jpt.db/.project
deleted file mode 100644
index 604cfcb..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.db</name>
-	<comment>renamed to org.eclipse.jpt.jpa.db</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/.project b/jpa/plugins/org.eclipse.jpt.doc.user/.project
deleted file mode 100644
index 61670ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.doc.user</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.doc.user/META-INF/MANIFEST.MF
deleted file mode 100644
index b1923a2..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.doc.user;singleton:=true
-Bundle-Version: 1.4.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.help;bundle-version="[3.3.100,4.0.0)",
- org.eclipse.ui.cheatsheets;bundle-version="[3.3.100,4.0.0)"
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/about.htm b/jpa/plugins/org.eclipse.jpt.doc.user/about.htm
deleted file mode 100644
index 29a9135..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/about.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>About this content</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="About this content" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect1"><!-- infolevel="all" infotype="General" --><a id="sthref295" name="sthref295"></a>
-<h1>About this content</h1>
-<p>November, 2009</p>
-<a id="sthref296" name="sthref296"></a>
-<p class="subhead2">License</p>
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at <code><a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></code>. For purposes of the EPL, "Program" will mean the Content.</p>
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at <code><a href="http://www.eclipse.org">http://www.eclipse.org</a></code>.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/about.html b/jpa/plugins/org.eclipse.jpt.doc.user/about.html
deleted file mode 100644
index 54a84ef..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/about.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>About this content</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1 Build 004" />
-<meta name="date" content="2009-11-16T9:56:23Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="About this content" />
-<meta name="relnum" content="Release 3.0" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect1"><!-- infolevel="all" infotype="General" --><a id="sthref290" name="sthref290"></a>
-<h1>About this content</h1>
-<p>November, 2009</p>
-<a id="sthref291" name="sthref291"></a>
-<p class="subhead2">License</p>
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at <code><a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></code>. For purposes of the EPL, "Program" will mean the Content.</p>
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at <code><a href="http://www.eclipse.org">http://www.eclipse.org</a></code>.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2009,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/build.properties b/jpa/plugins/org.eclipse.jpt.doc.user/build.properties
deleted file mode 100644
index 2b42108..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/build.properties
+++ /dev/null
@@ -1,136 +0,0 @@
-bin.includes = cheatsheets/,\
-               dcommon/,\
-               img/,\
-               META-INF/,\
-               about.html,\
-               build.properties,\
-               concept_mapping.htm,\
-               concept_persistence.htm,\
-               concepts.htm,\
-               concepts001.htm,\
-               concepts002.htm,\
-               concepts003.htm,\
-               contexts.xml,\
-               getting_started.htm,\
-               getting_started001.htm,\
-               getting_started002.htm,\
-               getting_started003.htm,\
-               getting_started004.htm,\
-               index.xml,\
-               legal.htm,\
-               plugin.properties,\
-               plugin.xml,\
-               ref_details_orm.htm,\
-               ref_jpa_facet.htm,\
-               ref_mapping_general.htm,\
-               ref_new_jpa_project.htm,\
-               ref_new_jpa_project_wizard.htm,\
-               ref_persistence_map_view.htm,\
-               ref_persistence_outline.htm,\
-               ref_persistence_perspective.htm,\
-               ref_persistence_prop_view.htm,\
-               ref_primary_key.htm,\
-               ref_project_properties.htm,\
-               reference.htm,\
-               reference001.htm,\
-               reference002.htm,\
-               reference003.htm,\
-               reference004.htm,\
-               reference005.htm,\
-               reference006.htm,\
-               reference007.htm,\
-               reference008.htm,\
-               reference009.htm,\
-               reference010.htm,\
-               reference011.htm,\
-               reference012.htm,\
-               reference013.htm,\
-               reference014.htm,\
-               reference015.htm,\
-               reference016.htm,\
-               reference017.htm,\
-               reference018.htm,\
-               task_add_persistence.htm,\
-               task_additonal_tables.htm,\
-               task_create_new_project.htm,\
-               task_inheritance.htm,\
-               task_manage_orm.htm,\
-               task_manage_persistence.htm,\
-               task_mapping.htm,\
-               tasks.htm,\
-               tasks001.htm,\
-               tasks002.htm,\
-               tasks003.htm,\
-               tasks004.htm,\
-               tasks005.htm,\
-               tasks006.htm,\
-               tasks007.htm,\
-               tasks008.htm,\
-               tasks009.htm,\
-               tasks010.htm,\
-               tasks011.htm,\
-               tasks012.htm,\
-               tasks013.htm,\
-               tasks014.htm,\
-               tasks015.htm,\
-               tasks016.htm,\
-               tasks017.htm,\
-               tasks018.htm,\
-               tasks019.htm,\
-               tasks020.htm,\
-               tasks021.htm,\
-               tasks022.htm,\
-               tips_and_tricks.htm,\
-               toc.xml,\
-               whats_new.htm,\
-               whats_new001.htm,\
-               whats_new002.htm,\
-               whats_new003.htm,\
-               about.htm,\
-               reference019.htm,\
-               reference020.htm,\
-               reference021.htm,\
-               reference022.htm,\
-               reference023.htm,\
-               reference024.htm,\
-               reference025.htm,\
-               reference026.htm,\
-               reference027.htm,\
-               reference028.htm,\
-               reference030.htm,\
-               reference029.htm,\
-               reference031.htm,\
-               reference032.htm,\
-               tasks023.htm,\
-               tasks024.htm,\
-               whats_new004.htm,\
-               whats_new005.htm,\
-               ref_persistence_xmll_editor.htm,\
-               ref_EntityClassPage.htm,\
-               ref_EntityPropertiesPage.htm,\
-               ref_add_converter.htm,\
-               ref_association_cardinality.htm,\
-               ref_association_table.htm,\
-               ref_create_custom_entities_wizard.htm,\
-               ref_create_jpa_entity_wizard.htm,\
-               ref_create_new_association_wizard.htm,\
-               ref_customizIndividualEntities.htm,\
-               ref_customizeDefaultEntityGeneration.htm,\
-               ref_eclipselink_mapping_file.htm,\
-               ref_java_page.htm,\
-               ref_join_columns.htm,\
-               ref_persistence_general.htm,\
-               ref_selectTables.htm,\
-               ref_select_cascade_dialog.htm,\
-               ref_tableAssociations.htm,\
-               task_create_jpa_entity.htm,\
-               ref_configure_jaxb_class_generation_dialog.htm,\
-               ref_jaxb_schema_wizard.htm,\
-               ref_schema_from_classes_page.htm,\
-               reference033.htm,\
-               task_generate_classes_from_schema.htm,\
-               task_generating_schema_from_classes.htm,\
-               tasks025.htm,\
-               tasks026.htm,\
-               whats_new006.htm
-generateSourceBundle=false
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/add_persistence.xml b/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/add_persistence.xml
deleted file mode 100644
index 6dbeedb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/add_persistence.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="Create a JPA Project">
-   <intro href="/org.eclipse.platform.doc.user/reference/ref-cheatsheets.htm">
-      <description>
-         This cheat sheet will automatically launch wizards, perform actions, and guide you through the steps to create a JPA project. 
-
-To learn more about using cheat sheets, or to see a list of available cheat sheets, click Help (?). 
-To start work working on this cheat sheet click the &quot;Click to Begin&quot; button below. 
-
-Let&apos;s get started!
-      </description>
-   </intro>
-   <item title="Setup the Environment" dialog="false" skip="true" href="/org.eclipse.datatools.doc.user/c_database_development_setup.html">
-      <description>
-         Your environment must be set up before you can perform the steps in this cheat sheet. 
-
-Create a database profile and connect to the database.
-
-The Database Connection dialog automatically appears when you click the &quot;Click to Perform&quot; button.
-      </description>
-      <command serialization="org.eclipse.datatools.sqltools.sqleditor.attachProfileAction" confirm="false">
-      </command>
-   </item>
-   <item title="Create a JPA Project" dialog="false" skip="false" href="/org.eclipse.jpt.doc.user/task_create_new_project.htm">
-      <description>
-         Use the New Project Wizard to create a JPA project. 
-Select <b>File-&gt;New-&gt;Project...</b> and choose <b>JPA-&gt;JPA Project</b> in the list. 
-
-On the first page of the wizard, enter a project name and location, select your target runtime, and select a predefined project configuration.
-
-Click <b>Next</b> to display the next page of the wizard.
-
-The &quot;New JPA Project&quot; wizard is automatically displayed when you click the &quot;Click to Perform&quot; button.
-      </description>
-      <action class="org.eclipse.jdt.internal.ui.wizards.OpenProjectWizardAction" pluginId="org.eclipse.jdt.ui" confirm="false">
-      </action>
-   </item>
-   <item title="Select Project Facet" dialog="false" skip="false" href="/org.eclipse.jst.j2ee.doc.user/topics/ph-projects.html">
-      <description>
-         Use the Project Facet page to select a predefined project configuration or specific specific facets to include in the project. 
-
-Click &quot;Next&quot; to display the next page of the wizard.
-      </description>
-   </item>
-   <item title="Specify the JPA Facet" dialog="false" skip="false" href="/org.eclipse.jdt.doc.user/ref_jpa_facet.htm">
-      <description>
-         Use the JPA Facet page to specify the the vendor-specific JPA platform, the database connection to use, and the specific JPA implementation library. 
-
-You can also specify if Dali should create an orm.xml file.
-
-If you do not have an active database connection, click <b>Add Connections</b> to create one. 
-
-If you do not have a defined JPA implementation library, click <b>Configure default JPA implementation library</b> or <b>Configure user libraries</b> to define one. 
-
-Click <b>Finish</b> to complete the wizard and open the open the project.
-      </description>
-   </item>
-   <item title="Finish" dialog="false" skip="false">
-      <description>
-         Congratulations! You have successfully created a JPA project. Complete the additional cheat sheets to add Java persistent entities and map those entities to database tables.
-      </description>
-   </item>
-</cheatsheet>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/create_entity.xml b/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/create_entity.xml
deleted file mode 100644
index b64e8af..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/create_entity.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="Create a Persistent Entity">
-	<intro href="/org.eclipse.platform.doc.user/reference/ref-cheatsheets.htm">
-		<description>
-This cheat sheet will automatically launch wizards, perform actions, and guide you through the steps to add a Java persistent entity to your Java project. 
-To learn more about using cheat sheets or to see a list of available cheat sheets, click Help (?). 
-To start work working on this cheat sheet, click the <b>Click to Begin</b> button below. 
-Let's get started!
-  </description>
-	</intro>
-	<item title="Create a JPA Project" skip="true">
-		<description>
-To create a Persistent entity, you must create a JPA project. If you already have a JPA project, you may skip this step by clicking the "Click to Skip" button.
-If not, select <b>File->New->Project...</b> and choose <b>JPA->JPA Project</b> in the list. Complete each page of the Create JPA Project wizard to create a new JPA project.
-      </description>
-	</item>
-	<item title="Open the JPA Development Perspective" skip="true" href="/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm">
-		<action pluginId="org.eclipse.ui.cheatsheets" class="org.eclipse.ui.internal.cheatsheets.actions.OpenPerspective" param1="org.eclipse.jpt.ui.PersistencePerspective"/>
-		<description>
-When working with JPA  persistence, you should use the Persistence perspective. If you already have the Persistence perspective active, you may skip this step by clicking the "Click to Skip" button. 
-If not, select <b>Window->Open Perspective->Other</b> in the menubar at the top of the workbench. In the Select Perspectives dialog, select <b>JPA Development</b> and click OK. This step changes the perspective to set up the Eclipse workbench for JPA development.
-You can click the "Click to Perform" button to have the "Persistence" perspective opened automatically.
-   </description>
-	</item>
-	<item title="Create a Java Class">
-		<description>
-The next step is to create a new Java class. In the main toolbar again, click on <b>New Java Class</b> button (or the link below).
-The Java editor will automatically open showing your new class.      
-     </description>
-	</item>
-	<item title="Create a Persistent Entity">
-		<description>
-Finally we will make the Java class a persistent entity.
-In the JPA Structure view select the Java class. 
-In the JPA Details view, use the "Map As" field to select <b>Entity</b>. Dali automatically adds the @Entity annotation to the class in the Java editor. 
-Use the Table, Catalog, and Schema fields to associate the entity with a specific table in the database.
-     </description>
-	</item>
-	<item title="Finish">
-		<description>
-Congratulations! You have successfully added a JPA entity to your JPA project. Complete the additional cheat sheets to map the entity's fields to database tables.
-  </description>
-	</item>
-</cheatsheet>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/map_entity.xml b/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/map_entity.xml
deleted file mode 100644
index 63307f2..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/map_entity.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="Map a Java Persistent Entity">
-   <intro href="/org.eclipse.platform.doc.user/reference/ref-cheatsheets.htm">
-      <description>
-         This cheat sheet will automatically launch wizards, perform actions, and guide you through the steps to map the fields of a JPA entity entity to your database.
-
-To learn more about using cheat sheets or to see a list of available cheat sheets, click Help (?). 
-To start work working on this cheat sheet, click the &quot;Click to Begin&quot; button below. 
-
-Let&apos;s get started!
-      </description>
-   </intro>
-   <item title="Setup the Environment" dialog="false" skip="true" href="/org.eclipse.datatools.doc.user/c_database_development_setup.html">
-      <description>
-         Your environment must be set up before you can perform the steps in this cheat sheet. 
-
-Create a database profile and connect to the database.
-
-If you already have (and are connected to) a database connection, you  may skip this step by clicking the &quot;Click to Skip&quot; button.
-
-The Database Connection dialog automatically appears when you click the &quot;Click to Perform&quot; button.
-      </description>
-      <command serialization="org.eclipse.datatools.sqltools.sqleditor.attachProfileAction" confirm="false">
-      </command>
-   </item>
-   <item title="Create a JPA Project" dialog="false" skip="true" href="/org.eclipse.jpt.doc.user/task_create_new_project.htm">
-      <description>
-         Use the New Project Wizard to create a JPA project. 
-Select <b>File-&gt;New-&gt;Project...</b> and choose <b>JPA-&gt;JPA Project</b> in the list. 
-
-Complete each page of the wizard to create a new JPA project.
-
-The &quot;New JPA Project&quot; wizard is automatically displayed when you click the &quot;Click to Perform&quot; button.
-
-If you already have a JPA project, you  may skip this step by clicking the &quot;Click to Skip&quot; button.
-      </description>
-      <action class="org.eclipse.jdt.internal.ui.wizards.OpenProjectWizardAction" pluginId="org.eclipse.jdt.ui" confirm="false">
-      </action>
-   </item>
-   <item title="Open the JPA Development Perspective" dialog="false" skip="true" href="/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm">
-      <description>
-         When working with JPA  persistence, you should use the Persistence perspective. If you already have the Persistence perspective active, you may skip this step by clicking the &quot;Click to Skip&quot; button. 
-If not, select <b>Window-&gt;Open Perspective-&gt;Other</b> in the menubar at the top of the workbench. In the Select Perspectives dialog, select <b>JPA Development</b> and click OK. This step changes the perspective to set up the Eclipse workbench for JPA development.
-You can click the &quot;Click to Perform&quot; button to have the &quot;Persistence&quot; perspective opened automatically.
-      </description>
-      <action class="org.eclipse.ui.internal.cheatsheets.actions.OpenPerspective" pluginId="org.eclipse.ui.cheatsheets" confirm="false" param1="org.eclipse.jpt.ui.PersistencePerspective">
-      </action>
-   </item>
-   <item title="Create a Java Class" dialog="false" skip="false">
-      <description>
-         The next step is to create a new Java class. In the main toolbar again, click on <b>New Java Class</b> button (or the link below).
-The Java editor will automatically open showing your new class.
-      </description>
-   </item>
-   <item title="Create a Persistent Entity" dialog="false" skip="false">
-      <description>
-         Finally we will make the Java class a persistent entity.
-In the JPA Structure view select the Java class. 
-In the JPA Details view, use the &quot;Map As&quot; field to select <b>Entity</b>. Dali automatically adds the @Entity annotation to the class in the Java editor. 
-Use the Table, Catalog, and Schema fields to associate the entity with a specific table in the database.
-      </description>
-   </item>
-   <item title="Add Fields to the Class" dialog="false" skip="true">
-      <description>
-         Now you will add some fields to the entity to map to rows in the database table.   
-
-If your persistent entity already has fields to map, you may skip this step by clicking the &quot;Click to Skip&quot; button. If not, use the Java editor to add fields to the entity.
-      </description>
-      <action class="org.eclipse.ui.internal.cheatsheets.actions.OpenPerspective" pluginId="org.eclipse.ui.cheatsheets" confirm="false" param1="org.eclipse.dali.ui.PersistencePerspective">
-      </action>
-   </item>
-   <item title="Create the Mapping" dialog="false" skip="false" href="/org.eclipse.dali.doc.user/ref_entity_page.htm">
-      <description>
-         Now you are ready to map the entity fields to columns in the database table. In the Package Explorer, select the Java class. 
-
-In the JPA Structure view, expand the persistent entity to display the fields. Select a field. 
-
-The JPA Details view displays the information for the field. Use the Map As field to select the Basic mapping. Use the Column field to select a column from the database table.
-      </description>
-      <action class="org.eclipse.ui.internal.cheatsheets.actions.OpenPerspective" pluginId="org.eclipse.ui.cheatsheets" confirm="false" param1="org.eclipse.dali.ui.PersistencePerspective">
-      </action>
-   </item>
-   <item title="Finish" dialog="false" skip="false">
-      <description>
-         Congratulations! You have successfully mapped the fields from a Java persistent entity to a column in a database table.
-      </description>
-   </item>
-</cheatsheet>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concept_mapping.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concept_mapping.htm
deleted file mode 100644
index 59f7d97..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concept_mapping.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Understanding OR mappings</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Understanding OR mappings" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABBDJFI" name="BABBDJFI"></a></p>
-<div class="sect1">
-<h1>Understanding OR mappings</h1>
-<p><a id="sthref21" name="sthref21"></a><a id="sthref22" name="sthref22"></a>The Dali OR (object-relational) Mapping Tool allows you to describe how your entity objects <span class="italic">map</span> to the data source (or other objects). This approach isolates persistence information from the object model&ndash;developers are free to design their ideal object model, and DBAs are free to design their ideal schema.</p>
-<p>These mappings transform an object data member type to a corresponding relational database data source representation. These OR mappings can also transform object data members that reference other domain objects stored in other tables in the database and are related through foreign keys.</p>
-<p>You can use these mappings to map simple data types including primitives (such as <code>int</code>), JDK classes (such as <code>String</code>), and large object (LOB) values. You can also use them to transform object data members that reference other domain objects by way of association where data source representations require object identity maintenance (such as sequencing and back references) and possess various types of multiplicity and navigability. The appropriate mapping class is chosen primarily by the cardinality of the relationship.</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concept_persistence.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concept_persistence.htm
deleted file mode 100644
index 3c7f80b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concept_persistence.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Understanding Java persistence</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Understanding Java persistence" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABCAHIC" name="BABCAHIC"></a></p>
-<div class="sect1">
-<h1>Understanding Java persistence</h1>
-<p><a id="sthref19" name="sthref19"></a><span class="italic">Persistence</span> refers to the ability to store objects in a database and use those objects with transactional integrity. In a J2EE application, data is typically stored and persisted in the data tier, in a relational database.</p>
-<p><a id="sthref20" name="sthref20"></a><span class="italic">Entity beans</span> are enterprise beans that contain persistent data and that can be saved in various persistent data stores. The entity beans represent data from a database; each entity bean carries its own identity. Entity beans can be deployed using <span class="italic">application-managed persistence</span> or <span class="italic">container-managed persistence</span>.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concepts.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concepts.htm
deleted file mode 100644
index 7a140b7..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concepts.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Concepts</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Concepts" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref18" name="sthref18"></a></p>
-<h1>Concepts</h1>
-<p>This section contains an overview of concepts you should be familiar with when using Dali to create mappings for Java persistent entities.</p>
-<ul>
-<li>
-<p><a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a></p>
-</li>
-<li>
-<p><a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a></p>
-</li>
-<li>
-<p><a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></p>
-</li>
-</ul>
-<p>In addition to these sections, you should review the following resources for additional information:</p>
-<ul>
-<li>
-<p>Eclipse Dali project: <code><a href="http://www.eclipse.org/webtools/dali">http://www.eclipse.org/webtools/dali</a></code></p>
-</li>
-<li>
-<p>Eclipse Web Tools Platform project: <code><a href="http://www.eclipse.org/webtools">http://www.eclipse.org/webtools</a></code></p>
-</li>
-<li>
-<p>JSR 220 EJB 3.0 specification: <code><a href="http://www.jcp.org/en/jsr/detail?id=220">http://www.jcp.org/en/jsr/detail?id=220</a></code></p>
-</li>
-<li>
-<p>EclipseLink project: <code><a href="http://www.eclipse.org/eclipselink">http://www.eclipse.org/eclipselink</a></code></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concepts001.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concepts001.htm
deleted file mode 100644
index 5104da1..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concepts001.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Understanding EJB 3.0 Java Persistence API</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Understanding EJB 3.0 Java Persistence API" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABBGFJG" name="BABBGFJG"></a></p>
-<div class="sect1">
-<h1>Understanding EJB 3.0 Java Persistence API</h1>
-<p>The Java 2 Enterprise Edition(J2EE) Enterprise JavaBeans (EJB) are a component architecture that you use to develop and deploy object-oriented, distributed, enterprise-scale applications. An application written according to the Enterprise JavaBeans architecture is scalable, transactional, and secure.</p>
-<p>The EJB 3.0 Java Persistence API (JPA) improves the EJB architecture by reducing its complexity through the use of metadata (annotations) and specifying programmatic defaults of that metadata.</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concepts002.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concepts002.htm
deleted file mode 100644
index 99f1e43..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concepts002.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>The persistence.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="The persistence.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CHDHAGIH" name="CHDHAGIH"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref23" name="sthref23"></a>The persistence.xml file</h1>
-<p>The JPA specification requires the use of a <code>persistence.xml</code> file for deployment. This file defines the database and entity manager options, and may contain more than one persistence unit. To enable you to easily edit this information, Dali provides the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>. Alternatively, you can use the Eclipse XML Editor to create and maintain this information. See <a href="task_manage_persistence.htm#CIHDAJID">"Managing the persistence.xml file"</a> for more information.</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-To work with multiple persistence units, comment out all but one persistence unit in <code>persistence.xml</code>.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a><br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/concepts003.htm b/jpa/plugins/org.eclipse.jpt.doc.user/concepts003.htm
deleted file mode 100644
index 9c887a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/concepts003.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>The orm.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="The orm.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CHDBIJAC" name="CHDBIJAC"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref24" name="sthref24"></a>The orm.xml file</h1>
-<p>Although the JPA specification emphasizes the use of annotations to specify persistence, you can also use the <code>orm.xml</code> file to store this metadata. Dali enables you to create a stub <code>orm.xml</code> file for a JPA project using the <a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>. See <a href="task_manage_orm.htm#CIHDGDCD">"Managing the orm.xml file"</a> for more information.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-The metadata must match the XSD specification of your selected JPA implementation.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<p>Dali provides comprehensive support for configuring XML mapping files through the <a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a> that is nearly identical to the annotation-based configuration in the Java source. Alternatively, you can also use the Eclipse XML Editor to create and maintain the metadata information in <code>orm.xml</code>.</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_manage_orm.htm#CIHDGDCD">Managing the orm.xml file</a><br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a><br />
-<p>&nbsp;</p>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/contexts.xml b/jpa/plugins/org.eclipse.jpt.doc.user/contexts.xml
deleted file mode 100644
index a7a661a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/contexts.xml
+++ /dev/null
@@ -1,646 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-	<context id="entity_accessType">
-		<description>Specify how the variable is accessed: Property (default) or Field.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_name">
-		<description>The name of this entity. By default, the class name is used as the entity name.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_table">
-		<description>The database table assigned to this entity. By default, the class name is used as the database table name.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_attributeOverrides">
-		<description>Specify a property or field to be overridden (from the default mappings).</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_attributeOverridesName">
-		<description>Name of the database column.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_attributeOverridesColumn">
-		<description>The database column that overrides a property or field.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_attributeOverridesInsertable">
-		<description>Specifies if the column is always included in SQL INSERT statements.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_attributeOverridesUpdatable">
-		<description>Specifies if the column is always included in SQL UPDATE statements.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="mapping_mapAs">
-		<description>Specify how this attribute maps to the database.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_column">
-		<description>The database column that contains the value for the attribute.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_columnTable">
-		<description>Name of the database table that contains the selected column.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_columnInsertable">
-		<description>Specifies if the column is always included in SQL INSERT statements.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_columnUpdatable">
-		<description>Specifies if the column is always included in SQL UPDATE statements.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_fetchType">
-		<description>Defines how data is loaded from the database: Eager (default) or Lazy</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_optional">
-		<description>Specifies if this field is can be null.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_generatedValueStrategy">
-		<description>Determines how the primary key is generated: Auto (default), Sequence, Identity, or Table.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_generatedValueGeneratorName">
-		<description>Unique name of the generator.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_targetEntity">
-		<description>The entity to which this attribute is mapped. </description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_cascadeType">
-		<description>Specify which operations are propagated throughout the entity: All, Persist, Merge, or Move.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_mappedBy">
-		<description>The field in the database table that owns the relationship.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_joinColumnName">
-		<description>The name of the database column that contains the foreign key reference for the entity association.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_joinReferencedColumn">
-		<description>Name of the join table that contains the foreign key column.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_embeddedAttributeOverrides">
-		<description>Specify to override the default  mapping of an entity’s attribute.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="mapping_embeddedAttributeOverridesColumn">
-		<description>The database column that is being mapped to the entity’s attribute.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="entity_mapAs">
-		<description>Specify the type of persistent domain object for the Java class: Persistent, Embedded, or Mapped Superclass.</description>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_inheritanceStrategy">
-		<description>Specify how an entity may inherit properties from other entities: Single table, One table per class, or Joined tables.</description>
-		<topic label="Specifying inheritance" href="task_inheritance.htm"/>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-	</context>
-	<context id="entity_inheritanceDiscriminatorColumn">
-		<description>Use to specify the name of the discriminator column when using a Single or Joined inheritance strategy.</description>
-		<topic label="Specifying inheritance" href="task_inheritance.htm"/>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-	</context>
-	<context id="entity_inheritanceDiscriminatorType">
-		<description>Use this field to set the discriminator type to CHAR or INTEGER (instead of its default: String). The discriminator value must conform to this type.</description>
-		<topic label="Specifying inheritance" href="task_inheritance.htm"/>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-	</context>
-	<context id="entity_inheritanceDiscriminatorValue">
-		<description>Specify the discriminator value used to differentiate an entity in this inheritance hierarchy. The value must conform to the specified discriminator type.</description>
-		<topic label="Specifying inheritance" href="task_inheritance.htm"/>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-	</context>
-	<context id="mapping_orderBy">
-		<description>Specify the default order for objects returned from a query.  	
-orderby_list::= orderby_item [,orderby_item]     
-orderby_item::= [property_or_field_name] [ASC | DESC]     
-For example: "lastName ASC ,salary DESC"	</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Mapping an Entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_joinTableName">
-		<description>Specify the  name of the database table that defines the foreign key for a many-to-many or a unidirectional one-to-many association. You can configure the join table with a specific catalog or schema, configure one or more join table columns with a unique constraint, and use multiple join columns per entity.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_joinTableJoinColumns">
-		<description>Specify  two or more join columns (that is, a composite primary key).</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_joinTableInverseJoinColumns">
-		<description>Specify the join column on the owned (or inverse side) of the association: the owned entity's primary key column. </description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="properties_javaPersistence">
-		<description>Use the Java Persistence options on the Properties page to select the database connection to use with the project.</description>
-		<topic label="Project properties" href="ref_project_properties"/>
-		<topic label="Adding persistence" href="ref_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="properties_javaPersistenceConnection">
-		<description>The database connection used to map the persistent entities.</description>
-		<topic label="Project properties" href="ref_project_properties"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="properties_javaPersistenceSchema">
-		<description>The database schema used to map the persistent entities.</description>
-		<topic label="Project properties" href="ref_project_properties"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="dialog_addPersistence">
-		<description>Use the Add Persistence dialog to define the database connection use to store the persistence entities.</description>
-		<topic label="Adding persistence" href="ref_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="persistenceOutline">
-		<description>The JPA Structure view displays an outline of the structure (its attributes and mappings) of the entity that is currently selected or opened in the editor.</description>
-		<topic label="JPA Structure view" href="ref_persistence_outline.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="dialog_generateEntities">
-		<description>Use the Generate Entities dialog to create Java persistent entities based on your database tables.</description>
-		<topic label="Generating entities from tables" href="task_generate_entities.htm.htm" />
-		<topic label="Project properties" href="ref_project_properties"/>
-	</context>
-	<context id="dialog_generateEntities_source">
-		<description>The project folder name in which to generate the Java persistent entities. Click Browse to select an existing folder.</description>
-		<topic label="Generating entities from tables" href="task_generate_entities.htm"/>
-	</context>
-	<context id="dialog_generateEntities_package">
-		<description>The package in which to generate the Java persistent entities, or click Browse to select an existing package.</description>
-		<topic label="Generating entities from tables" href="task_generate_entities.htm"/>
-	</context>
-	<context id="dialog_generateEntities_tables">
-		<description>Select the tables from which to create Java persistent entities.</description>
-		<topic label="Generating entities from tables" href="task_generate_entities.htm"/>
-		<topic label="Project properties" href="ref_project_properties"/>
-	</context>
-	<context id="dialog_addJavaPersistence">
-		<description>Use this dialog to define the database connection used to store the persistence entities and to create the persistence.xml file.</description>
-		<topic label="Add Persistence dialog" href="ref_add_persistence.htm" />
-		<topic label="Adding persistence to a project" href="task_add_persistence" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence.htm" />
-	</context>
-	<context id="dialog_newJPAProject">
-		<description>Use this dialog to define the new JPA project name, its location, target runtime, and other configuration settings.</description>
-		<topic label="New JPA Project page" href="ref_new_jpa_project.htm" />
-		<topic label="New JPA Project wizard" href="ref_new_jpa_project_wizard" />
-		<topic label="Adding persistence to a project" href="task_add_persistence" />
-		<topic label="Creating a new JPA project" href="task_create_new_project.htm" />
-	</context>
-	<context id="dialog_addJavaPersistence_database">
-		<description>Use these fields to define the database connection used to store the persistent entities.</description>
-		<topic label="Add Persistence dialog" href="ref_add_persistence.htm" />
-		<topic label="Adding persistence to a project" href="task_add_persistence" />
-	</context>
-	<context id="dialog_addJavaPersistence_classpath">
-		<description>Use this option to add libraries or JARs that contain the Java Persistence API (JPA) and entities to the project’s Java Build Path.</description>
-		<topic label="Add Persistence dialog" href="ref_add_persistence.htm" />
-		<topic label="Adding persistence to a project" href="task_add_persistence" />
-	</context>
-	<context id="dialog_addJavaPersistence_packaging">
-		<description>Use these fields to create the persistence.xml file. Select the persistence version, the name of the JPA provider, and a unique name to identify the persistence unit.</description>
-		<topic label="Add Persistence dialog" href="ref_add_persistence.htm" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence.htm" />
-	</context>
-	<context id="wizard_generateDDL_options ">
-		<description>Use this page to select which script options will be included in the generated script.</description>
-		<topic label="Generating tables (DDL) from entities " href="task_generate_ddl.htm" />
-		<topic label="Options page " href="ref_options.htm" />
-	</context>
-	<context id="wizard_generateDDL_objects ">
-		<description>Use this page to select which elements will be included in the generated script.</description>
-		<topic label="Generating tables (DDL) from entities " href="task_generate_ddl.htm" />
-		<topic label="Objects page " href="ref_objects.htm" />
-	</context>
-	<context id="wizard_generateDDL_save ">
-		<description>Use this page to select the filename and location of the generated script. You can also preview the script and specify to run or continue editing the script after generation.</description>
-		<topic label="Generating tables (DDL) from entities " href="task_generate_ddl.htm" />
-		<topic label="Save and Run DDL page " href="ref_save_and_run.htm" />
-	</context>
-	<context id="wizard_generateDDL_summary ">
-		<description>This page shows the settings that you selected for the generated DDL. To change any option click "Back" or click "Finish" to continue.</description>
-		<topic label="Generating tables (DDL) from entities " href="task_generate_ddl.htm" />
-	</context>
-	<context id="mapping_tableGeneratorName">
-		<description>The name of the table sequence generator. This name is global to to the persistence unit (across all generator types).</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_tableGeneratorTable">
-		<description>The database table that stores the generated ID values. </description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_tableGeneratorPrimaryKeyColumn">
-		<description>The database column of the generator table that stores the generated ID values.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_tableGeneratorValueColumn">
-		<description>The name for the column that stores the generated ID values.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_tableGeneratorPrimaryKeyColumnValue">
-		<description>The database column of the generator table that defines the primary key value.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="dialog_databaseAuthorization">
-		<description>Use to connect (log in) to a database connection to use with your Java persistent entities. 
-		You must have a defined database connection (and be connected) to add persistence. </description>
-		<topic label="Add persistence to a Java project" href="task_add_persistence_project.htm"/>
-	</context>
-	<context id="mapping_temporal">
-		<description>Specify if the mapped field contains a Date (java.sql.Date), Time (java.sql.Time), or Timestamp (java.sql.Timestamp) value.</description>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_primaryKeyGeneration">
-		<description>Define how the primary key is generated</description>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_tableGenerator">
-		<description>Specify to use a specific database table for generating the primary key.</description>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_sequenceGenerator">
-		<description>Specify to use a specific sequence for generating the primary key.</description>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_sequenceGeneratorName">
-		<description>Name of the sequence.</description>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_sequenceGeneratorSequence">
-		<description> </description>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_lob">
-		<description>Specify if the field is mapped to java.sql.Clob or java.sql.Blob.</description>
-		<topic label="General information" href="ref_mapping_general.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="mapping_enumerated">
-		<description>Specify how to persist enumerated constraints if the String value suits your application requirements or to match an existing database schema.</description>
-		<topic label="General information" href="ref_mapping_general.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="dialog_editInverseJoinColumn">
-		<description>.</description>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-	</context>
-	<context id="entity_catalog">
-		<description>The database catalog that contains the Table. This field overrides the defaults in the orm.xml file.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_schema">
-		<description>The database schema that contains the Table. This field overrides the defaults in the orm.xml file.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Adding persistence to a class" href="task_add_persistence.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="orm_package">
-		<description>The Java package that contains the persistent entities to which the orm.xml file applies.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="orm_schema">
-		<description>The database schema to use as the default for all entities managed by this persistence unit.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="orm_catalog">
-		<description>The database catalog to use as the default for all entities managed by this persistence unit.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="orm_access">
-		<description>The default access method for variables in this project: Property or Field.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="orm_cascade">
-		<description>Adds cascade-persist to the set of cascade options in entity relationships of the persistence unit.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="orm_xml">
-		<description>Specifies that the Java classes in this persistence unit are fully specified by their metadata. Any annotations will be ignored.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Details" href="ref_details_orm.htm"/>
-	</context>
-	<context id="dialog_JPAPlatform">
-		<description>Specify the vendor-specific JPA implementation.Default is Generic..</description>
-		<topic label="JPA Facet page" href="ref_jpa_facet.htm"/>
-	</context>
-	<context id="dialog_createORM">
-		<description>Create an initial orm.xml file. Use this file to specify project and persistence unit defaults.</description>
-		<topic label="Managing the orm.xml file" href="task_manage_orm.htm"/>
-		<topic label="JPA Facet page" href="ref_jpa_facet.htm"/>
-	</context>
-
-	<context id="caching_defaultType">
-		<description>Select the default caching strategy for the project. The default is Weak with Soft Subcache.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="caching_defaultSize">
-		<description>Select the default size of the cache. The default is 100 items.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="caching_defaultShared">
-		<description>Specify if cached instances should be in the shared cache or in a client isolated cache.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="logging_level">
-		<description>Specifies the amount and detail of log output by selecting the log level. Default is Info level.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="logging_timeStamp">
-		<description>Control whether the timestamp is logged in each log entry. Default is True.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="logging_thread">
-		<description>Control whether a thread identifier is logged in each log entry. Default is True.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="logging_session">
-		<description>Control whether an EclipseLink session identifier is logged in each log entry. Default is True.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="logging_exceptions">
-		<description>Control whether the exceptions thrown from within the code are logged prior to returning the exception to the calling application. Ensures that all exceptions are logged and not masked by the application code.. Default is False.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="options_sessionName">
-		<description>Specify the name by which the EclipseLink session is stored in the static session manager.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="options_sessionsXml">
-		<description>Specify persistence information loaded from the EclipseLink session configuration file. You can use this option as an alternative to annotations and deployment XML.</description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="options_targetDatabase">
-		<description></description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="options_targetServer">
-		<description> </description>
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="dialog_newJPAProjectJava">
-		<description>Use this dialog to include existing Java source files in this project.</description>
-		<topic label="Java page" href="ref_java_page.htm" />
-		<topic label="New JPA Project wizard" href="ref_new_jpa_project_wizard" />
-		<topic label="Creating a new JPA project" href="task_create_new_project.htm" />
-	</context>
-	<context id="dialog_newJPAProjectFacet">
-		<description>Use this dialog to specify your vender-specific platform, JPA implementation library, and database connection.</description>
-		<topic label="JPA Facet page" href="ref_jpa_facet.htm" />
-		<topic label="New JPA Project wizard" href="ref_new_jpa_project_wizard" />
-		<topic label="Creating a new JPA project" href="task_create_new_project.htm" />
-	</context>
-	<context id="dialog_entityClassPage">
-		<description>Use this dialog to specify package, class name, and inheritance properties of the entity to create.</description>
-		<topic label="Entity Class page" href="ref_EntityClassPage.htm" />
-		<topic label="New JPA Entity wizard" href="ref_create_jpa_entity_wizard.htm" />
-		<topic label="Creating a new JPA entity" href="task_create_jpa_entity.htm" />
-	</context>
-	<context id="dialog_entityPropertiesPage">
-		<description>Use this dialog to specify the entity name, associated table, and mapped fields.</description>
-		<topic label="Entity Properties page" href="ref_EntityPropertiesPage.htm" />
-		<topic label="New JPA Entity wizard" href="ref_create_jpa_entity_wizard.htm" />
-		<topic label="Creating a new JPA entity" href="task_create_jpa_entity.htm" />
-	</context>
-	<context id="dialog_selectTablesPage">
-		<description>Use this dialog to specify the database tables from which to generate entities.</description>
-		<topic label="Select Tables page" href="ref_selectTables.htm" />
-		<topic label="Generate Custom Entities wizard" href="ref_create_custom_entities_wizard.htm" />
-	</context>	
-	<context id="dialog_tableAssociationsPage">
-		<description>Use this dialog to create or edit the association between the database table and entity.</description>
-		<topic label="Table Associations page" href="ref_tableAssociations.htm" />
-		<topic label="Generate Custom Entities wizard" href="ref_create_custom_entities_wizard.htm" />
-	</context>	
-	<context id="dialog_customizeDefaultEntityGeneration">
-		<description>Use this dialog to specify the table mapping and domain class information for the generated entity.</description>
-		<topic label="Customize Default Entity Generation page" href="ref_customizeDefaultEntityGeneration.htm" />
-		<topic label="Generate Custom Entities wizard" href="ref_create_custom_entities_wizard.htm" />
-	</context>	
-	<context id="dialog_customizeIndividualEntities">
-		<description>Use this dialog to specify the table mapping and domain class information for the generated entity.</description>
-		<topic label="Customize Individual Entities page" href="ref_customizIndividualEntities.htm" />
-		<topic label="Generate Custom Entities wizard" href="ref_create_custom_entities_wizard.htm" />
-	</context>	
-
-	<context id="dialog_associationTablesPage">
-		<description>Use this dialog to specify the association tables for an entity.</description>
-		<topic label="Association Tables page" href="ref_association_tables.htm" />
-		<topic label="Create New Association wizard" href="ref_create_new_association_wizard.htm" />
-	</context>	
-	<context id="dialog_joinColumnsPage">
-		<description>Use this dialog to specify the join columns of an association table.</description>
-		<topic label="Join Columns page" href="ref_join_columns.htm" />
-		<topic label="Create New Association wizard" href="ref_create_new_association_wizard.htm" />
-	</context>	
-	<context id="dialog_associationCardinalityPage">
-		<description>Use this dialog to specify cardinality of an association table.</description>
-		<topic label="Association Cardinality page" href="ref_association_cardinality.htm" />
-		<topic label="Create New Association wizard" href="ref_create_new_association_wizard.htm" />
-	</context>	
-	<context id="dialog_selectCascade">
-		<description>Specify which operations are propagated throughout the association: All, Persist, Merge, Remove, or Refresh.</description>
-		<topic label="Select Cascade page" href="ref_select_cascade_dialog.htm"/>
-		<topic label="JPA Details" href="ref_persistence_map_view.htm"/>
-		<topic label="Mapping an entity" href="task_mapping.htm"/>
-		<topic label="Understanding OR mappings" href="concept_mapping.htm"/>
-	</context>
-	<context id="persistence_general">
-		<description>Specify the general persistence options.</description>
-		<topic label="General page" href="ref_persistence_general" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_connection">
-		<description>Specify the data source or JDBC connection properties.</description>
-		<topic label="Connection page" href="ref_persistence_connection" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_customization">
-		<description>Specify the default or entity specific EclipseLink customization and validation properties.</description>
-		<topic label="Customization page" href="ref_persistence_connection" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_caching">
-		<description>Configure the session or entity specific EclipseLink caching properties.</description>
-		<topic label="Caching page" href="ref_persistence_caching" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_logging">
-		<description>Configure the EclipseLink logging properties.</description>
-		<topic label="Logging page" href="ref_persistence_logging" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_options">
-		<description>Configure the EclipseLink session and miscellanous options.</description>
-		<topic label="Options page" href="ref_persistence_options" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_schemaGeneration">
-		<description>Configure the schema generation properties.</description>
-		<topic label="Schema Generation page" href="ref_persistence_schemaGeneration" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-	<context id="persistence_properties">
-		<description>Configure the properties defined for the persistence unit.</description>
-		<topic label="Properties page" href="ref_persistence_properties" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>
-		<context id="persistence_source">
-		<description>Configure the properties defined for the persistence unit.</description>
-		<topic label="Properties page" href="ref_persistence_properties" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the persistence.xml file" href="task_manage_persistence" />
-	</context>	
-	<context id="dialog_eclipselink_mapping_file">
-		<description>Configure the properties defined for the persistence unit.</description>
-		<topic label="New EclipseLink Mapping File page" href="ref_eclipselink_mapping_file" />
-		<topic label="persistence.xml editor" href="ref_persistence_xml_editor" />
-		<topic label="Managing the orm.xml file" href="task_manage_orm" />
-	</context>
-	<context id="dialog_create_new_converters">
-		<description>Use this dialog to create a new EclipseLink conveter.</description>
-		<topic label="Add Converter dialog" href="ref_add_converter" />
-		<topic label="Managing the orm.xml file" href="task_manage_orm" />
-	</context>
-
-<!-- Added for 2.3 -->
-	<context id="properties_canonicalMetamodel">
-		<description>Specifies if the project model uses the Canonical Metamodel. </description>
-		<topic label="Project properties" href="ref_project_properties"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_cacheable">
-		<description>Specify if the entity uses the @Cachable annotation. Default is @Cachable(false).</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Understanding persistence" href="concept_persistence.htm"/>
-	</context>
-	<context id="entity_primaryKeyClass">
-		<description>Click Browse and select the primary key for the entity. Clicking the field name, which is represented as a hyperlink, allows you to create a new class.</description>
-		<topic label="JPA Details" href="ref_persistence_prop_view.htm"/>
-		<topic label="Primary Key Generation information" href="ref_primary_key.htm"/>
-	</context>
-	<context id="wizard_jaxbschema_classes">
-		<description>Select the project, package, or classes from which to generate the XML schema. Click Finish to generate the schema</description>
-		<topic label="Generate Schema from JAXB Classes wizard" href="ref_jaxb_schema_wizard.htm"/>
-		<topic label="Generating schema from classes" href="task_generating_schema_from_classes.htm"/>
-	</context>
-	<context id="configure_jaxb_class_generation_dialog">
-		<description>Enter the JAXB class generation settings and click Finish to generate classes.  All fields are optional except for the source folder.</description>
-		<topic label="Configure JAXB Class Generation dialog" href="ref_configure_jaxb_class_generation_dialog.htm"/>
-		<topic label="Generating JAXB Classes from a Schema" href="task_generate_classes_from_schema.htm"/>
-	</context>
-	
-	
-	
-	
-	
-</contexts>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/css/blafdoc.css b/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/css/blafdoc.css
deleted file mode 100644
index baf6127..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/css/blafdoc.css
+++ /dev/null
@@ -1,21 +0,0 @@
-@import "../../../PRODUCT_PLUGIN/book.css";
-
-span.control, span.gui-object-action, p.subhead2, span.bold, p.notep1 {
-  font-weight: bold;
-}
-
-span.name, p.titleinfigure, span.italic {
-  font-style: italic;
-}
-
-p.titleinfigure, p.subhead2 {
-  padding-top: 10px;
-}
-
-span.code {
-  font-family: monospace;
-}
-
-span.copyrightlogo {font-size: 0.8em}
-
-.footer {margin-top: 2em;border-top:1px solid #cccccc;padding-top:1em;}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/html/cpyr.htm b/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/html/cpyr.htm
deleted file mode 100644
index 382ec67..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/dcommon/html/cpyr.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-<!--  <meta http-equiv="refresh" content="0;url=../../legal.htm"> -->
-</head>
-<body>
-<p><a href="../../legal.htm">License Information</a></p>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started.htm b/jpa/plugins/org.eclipse.jpt.doc.user/getting_started.htm
deleted file mode 100644
index c993ad7..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Getting started</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Getting started" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref2" name="sthref2"></a></p>
-<h1>Getting started</h1>
-<p>This section provides information on getting started with the Java Persistence Tools.</p>
-<ul>
-<li>
-<p><a href="getting_started001.htm#BABEFHCD">Requirements and installation</a></p>
-</li>
-<li>
-<p><a href="getting_started002.htm#BABIGCJA">Dali quick start</a></p>
-</li>
-</ul>
-<p>For additional information, please visit the Dali home page at:</p>
-<p><code><a href="http://www.eclipse.org/webtools/dali">http://www.eclipse.org/webtools/dali</a></code>.</p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started001.htm b/jpa/plugins/org.eclipse.jpt.doc.user/getting_started001.htm
deleted file mode 100644
index 21cf961..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started001.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Requirements and installation</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Requirements and installation" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABEFHCD" name="BABEFHCD"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Requirements and installation<a id="sthref3" name="sthref3"></a><a id="sthref4" name="sthref4"></a></h1>
-<p>Before installing Dali, ensure that your environment meets the following <span class="italic">minimum</span> requirements:</p>
-<ul>
-<li>
-<p>Eclipse 3.6 (<code><a href="http://www.eclipse.org/downloads">http://www.eclipse.org/downloads</a></code>)</p>
-</li>
-<li>
-<p>Java Runtime Environment (JRE) 1.5 (<code><a href="http://java.com">http://java.com</a></code>)</p>
-</li>
-<li>
-<p>Eclipse Web Tools Platform (WTP) 3.2 (<code><a href="http://www.eclipse.org/webtools">http://www.eclipse.org/webtools</a></code>)</p>
-</li>
-<li>
-<p>Java Persistence API (JPA) for Java EE 5. For example, the EclipseLink implementation for JPA can be obtained from: <code><a href="http://www.eclipse.org/eclipselink/">http://www.eclipse.org/eclipselink/</a></code></p>
-</li>
-</ul>
-<p>Refer to <code><a href="http://www.eclipse.org/webtools/dali/gettingstarted_main.html">http://www.eclipse.org/webtools/dali/gettingstarted_main.html</a></code> for additional installation information.</p>
-<p><a id="sthref5" name="sthref5"></a>Dali is included as part of WTP 3.2. No additional installation or configuration is required.</p>
-<a id="sthref6" name="sthref6"></a>
-<p class="subhead2">Accessibility Features</p>
-<p>Dali supports the standard accessibility features in Eclipse, including the following:</p>
-<ul>
-<li>
-<p>Navigating the user interface using the keyboard.</p>
-</li>
-<li>
-<p>Specifying general accessibility preferences for the editor.</p>
-</li>
-</ul>
-<p>See <a href="../org.eclipse.platform.doc.user/concepts/accessibility/accessmain.htm">Accessibility Features in Eclipse</a> in the <span class="italic">Workbench User Guide</span> for details.</p>
-<a id="sthref7" name="sthref7"></a>
-<p class="subhead2">Help Accessibility</p>
-<p>The documentation and help contains markup to facilitate access by the disabled community. See <a href="../org.eclipse.platform.doc.user/tasks/help_accessibility.htm">Help Accessibility</a> in the <span class="italic">Workbench User Guide</span> for details.</p>
-<p>When using the help, be aware of the following:</p>
-<ul>
-<li>
-<p>Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.</p>
-</li>
-<li>
-<p>This documentation may contain links to Web sites of other companies or organizations that we do not control. We neither evaluate nor make any representations regarding the accessibility of these Web sites.</p>
-</li>
-</ul>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started002.htm b/jpa/plugins/org.eclipse.jpt.doc.user/getting_started002.htm
deleted file mode 100644
index 3285315..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started002.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Dali quick start</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Dali quick start" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABIGCJA" name="BABIGCJA"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Dali quick start</h1>
-<p><a id="sthref8" name="sthref8"></a>This section includes information to help you quickly start using Dali to create relational mappings between Java persistent entities and database tables.</p>
-<ul>
-<li>
-<p><a href="getting_started003.htm#BABDFHDA">Creating a new JPA project</a></p>
-</li>
-<li>
-<p><a href="getting_started004.htm#BABFGDDG">Creating a Java persistent entity with persistent fields</a></p>
-</li>
-</ul>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="tips_and_tricks.htm#CHDHGHBF">Tips and tricks</a><br />
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started003.htm b/jpa/plugins/org.eclipse.jpt.doc.user/getting_started003.htm
deleted file mode 100644
index 2cbac78..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started003.htm
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating a new JPA project</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating a new JPA project" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABDFHDA" name="BABDFHDA"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Creating a new JPA project</h1>
-<p><a id="sthref9" name="sthref9"></a>This quick start shows how to create a new JPA project.</p>
-<ol>
-<li>
-<p><span class="bold">Select File &gt; New &gt; Project</span>. The Select a Wizard dialog appears.</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-You can also select the JPA perspective and then select <span class="bold">File &gt; New &gt; JPA Project</span>.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-</li>
-<li>
-<p>Select <span class="bold">JPA Project</span> and then click <span class="bold">Next</span>. The <a href="ref_new_jpa_project.htm#CACBJAGC">New JPA Project page</a> appears.</p>
-</li>
-<li>
-<p>Enter a <span class="gui-object-action">Project name</span> (such as <code>QuickStart</code>).</p>
-</li>
-<li>
-<p>If needed, select the <span class="bold">Target Runtime</span> (such as <code>Apache Tomcat</code>) and configuration, such as <span class="bold">Utility JPA Project with Java 5.0</span> and then click <span class="bold">Next</span>. The Java source page appears.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-The Target Runtime is not required for Java SE development.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-<li>
-<p>If you have existing Java source files, add them to your classpath and then click <span class="bold">Next</span>. The <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a> appears.</p>
-</li>
-<li>
-<p>On the JPA Facet dialog, select your vendor-specific JPA platform (or select <span class="bold">Generic</span>), database connection (or create a new connection), JPA implementation library (such as EclipseLink), define how Dali should manage persistent classes, and then click <span class="bold">Finish</span>.</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-Select <span class="bold">Override the Default Schema for Connection</span> if you require a schema other than the one that Dali derives from the connection information, which may be incorrect in some cases. Using this option, you can select a development time schema for defaults and validation.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-</li>
-</ol>
-<p>Eclipse adds the project to the workbench and opens the JPA perspective.</p>
-<div class="figure"><a id="sthref10" name="sthref10"></a>
-<p class="titleinfigure">JPA Project in Project Explorer</p>
-<img src="img/quickstart_project.png" alt="Package Explorer showing the JPA project." title="Package Explorer showing the JPA project." /><br /></div>
-<!-- class="figure" -->
-<p>Now that you have created a project with persistence, you can continue with <a href="getting_started004.htm#BABFGDDG">Creating a Java persistent entity with persistent fields</a>.</p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started004.htm b/jpa/plugins/org.eclipse.jpt.doc.user/getting_started004.htm
deleted file mode 100644
index 249ea76..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/getting_started004.htm
+++ /dev/null
@@ -1,204 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating a Java persistent entity with persistent fields</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating a Java persistent entity with persistent fields" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFGDDG" name="BABFGDDG"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Creating a Java persistent entity with persistent fields</h1>
-<p><a id="sthref11" name="sthref11"></a>This quick start shows how to create a new persistent Java entity. We will create an entity to associate with a database table. You will also need to add the ADDRESS table to your database.</p>
-<ol>
-<li>
-<p>Select the JPA project in the Navigator or Project Explorer and then click <span class="bold">New &gt; Other</span>. The Select a Wizard dialog appears.</p>
-</li>
-<li>
-<p>Select <span class="bold">JPA &gt; Entity</span> and then click <span class="bold">Next</span>. The <a href="ref_EntityClassPage.htm#CIAFEIGF">Entity Class page</a> appears.</p>
-</li>
-<li>
-<p>Enter the package name (such as <code>quickstart.demo.model</code>), the class name (such as <code>Address</code>) and then click <span class="bold">Next</span>. The <a href="ref_EntityPropertiesPage.htm#CIADECIA">Entity Properties page</a> appears, which enables you to define the persistence fields, which you will map to the columns of a database table.</p>
-</li>
-<li>
-<p><a id="sthref12" name="sthref12"></a><a id="sthref13" name="sthref13"></a>Use the Entity Fields dialog (invoked by clicking <span class="bold">Add</span>) to add persistence fields to the Address class:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-private Long id;
-private String city;
-private String country;
-private String stateOrProvince;
-private String postalCode;
-private String street;
-</pre>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-You will also need to add the following columns to the ADDRESS database table:
-<pre xml:space="preserve" class="oac_no_warn">
-NUMBER(10,0) ADDRESS_ID (primary key)
-VARCHAR2(80) PROVINCE
-VARCHAR2(80) COUNTRY
-VARCHAR2(20) P_CODE
-VARCHAR2(80) STREET
-VARCHAR2(80) CITY
-</pre>
-<pre xml:space="preserve" class="oac_no_warn">
-</pre></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-<li>
-<p>Click <span class="bold">Finish</span>. With the Create JPA Entity completed, Eclipse displays the <span class="bold">Address</span> entity in the JPA Structure view.</p>
-<p>Address.java includes the <code>@Entity</code> annotation, the persistence fields, as well as <code>getter</code> and <code>setter</code> methods for each of the fields.</p>
-</li>
-</ol>
-<div class="figure"><a id="sthref14" name="sthref14"></a>
-<p class="titleinfigure">Address Entity in Address.java</p>
-<img src="img/java_editor_address.png" alt="Java editor with the Address entity." title="Java editor with the Address entity." /><br /></div>
-<!-- class="figure" -->
-<p>Eclipse also displays the <span class="bold">Address</span> entity in the JPA Structure view:</p>
-<div class="figure"><a id="sthref15" name="sthref15"></a>
-<p class="titleinfigure">Address Entity in the JPA Structure View</p>
-<img src="img/address_java_JPA_structure_quickstart.png" alt="Address.java in the JPA Structure View." title="Address.java in the JPA Structure View." /><br /></div>
-<!-- class="figure" -->
-<ol>
-<li>
-<p>Select the <span class="gui-object-action">Address</span> class in the Project Explorer view.</p>
-</li>
-<li>
-<p>In the <span class="gui-object-title">JPA Details</span> view, notice that Dali has automatically associated the ADDRESS database table with the entity because they are named identically.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-Depending on your database connection type, you may need to specify the <span class="bold">Schema</span>.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<div class="figure"><a id="sthref16" name="sthref16"></a>
-<p class="titleinfigure">JPA Details View for Address Entity</p>
-<img src="img/address.java_jpa_details.png" alt="Address.java in the JPA Details view." title="Address.java in the JPA Details view." /><br /></div>
-<!-- class="figure" --></li>
-</ol>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-After associating the entity with the database table, you should update the <code>persistence.xml</code> file to include this JPA entity.
-<p>Right-click the <code>persistence.xml</code> file in the Project Explorer and select <span class="bold">JPA Tools &gt; Synchronize Class List</span>. Dali adds the following to the <code>persistence.xml</code> file:</p>
-<p><code>&lt;class&gt;quickstart.demo.model.Address&lt;/class&gt;</code></p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-<p>Now we are ready to map each fields in the Address class to a column in the database table.</p>
-<ol>
-<li>
-<p>Select the <span class="gui-object-action">id</span> field in the JPA Details view.</p>
-</li>
-<li>
-<p>Right click id and then select <span class="bold">Map As &gt; id</span>.</p>
-</li>
-<li>
-<p>In the JPA Details view, select <span class="bold">ADDRESS_ID</span> in the Name field:</p>
-<div class="figure"><a id="sthref17" name="sthref17"></a>
-<p class="titleinfigure">JPA Details View for the addressId Field</p>
-<img src="img/address_id_details_quickstart.png" alt="The JPA Details view for the Address entity&rsquo;s id attribute." title="The JPA Details view for the Address entity&rsquo;s id attribute." /><br /></div>
-<!-- class="figure" -->
-<p>Eclipse adds the following annotations to the Address entity:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Id
-@Column(name="ADDRESS_ID")
-</pre></li>
-<li>
-<p>Map each of the following fields (as <span class="bold">Basic</span> mappings) to the appropriate database column:</p>
-<div class="inftblhruleinformal">
-<table class="HRuleInformal" title="This table describes the mappings for each of the fields in the Address entity." summary="This table describes the mappings for each of the fields in the Address entity." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="*" />
-<col width="33%" />
-<col width="33%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t8">Field</th>
-<th align="left" valign="bottom" id="r1c2-t8">Map As</th>
-<th align="left" valign="bottom" id="r1c3-t8">Database Column</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t8" headers="r1c1-t8">city</td>
-<td align="left" headers="r2c1-t8 r1c2-t8">Basic</td>
-<td align="left" headers="r2c1-t8 r1c3-t8">CITY</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t8" headers="r1c1-t8">country</td>
-<td align="left" headers="r3c1-t8 r1c2-t8">Basic</td>
-<td align="left" headers="r3c1-t8 r1c3-t8">COUNTRY</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t8" headers="r1c1-t8">postalCode</td>
-<td align="left" headers="r4c1-t8 r1c2-t8">Basic</td>
-<td align="left" headers="r4c1-t8 r1c3-t8">P_CODE</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t8" headers="r1c1-t8">provinceOrState</td>
-<td align="left" headers="r5c1-t8 r1c2-t8">Basic</td>
-<td align="left" headers="r5c1-t8 r1c3-t8">PROVINCE</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t8" headers="r1c1-t8">street</td>
-<td align="left" headers="r6c1-t8 r1c2-t8">Basic</td>
-<td align="left" headers="r6c1-t8 r1c3-t8">STREET</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblhruleinformal" --></li>
-</ol>
-<p>Dali automatically maps some fields to the correct database column (such as the city field to the City column) if the names are identical.</p>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/address.java_jpa_details.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/address.java_jpa_details.png
deleted file mode 100644
index bdcf008..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/address.java_jpa_details.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/address_id_details_quickstart.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/address_id_details_quickstart.png
deleted file mode 100644
index 7ef40cf..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/address_id_details_quickstart.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/address_java_JPA_structure_quickstart.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/address_java_JPA_structure_quickstart.png
deleted file mode 100644
index 1af51a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/address_java_JPA_structure_quickstart.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_entity_wizard.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_entity_wizard.png
deleted file mode 100644
index 0360e0a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_entity_wizard.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_fields.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_fields.png
deleted file mode 100644
index 69797a8..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_fields.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_default_entity_generation.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_default_entity_generation.png
deleted file mode 100644
index 9567616..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_default_entity_generation.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_individual_entities.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_individual_entities.png
deleted file mode 100644
index 237bdee..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/customize_individual_entities.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/details_entitymappings.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/details_entitymappings.png
deleted file mode 100644
index d66300e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/details_entitymappings.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/error_sample.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/error_sample.png
deleted file mode 100644
index 3a49646..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/error_sample.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_classes_from_schema.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_classes_from_schema.png
deleted file mode 100644
index b911d02..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_classes_from_schema.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_entities.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_entities.png
deleted file mode 100644
index 4daa25c..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/generate_entities.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapmappings.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapmappings.png
deleted file mode 100644
index 86eef3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapmappings.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapping.png
deleted file mode 100644
index b193753..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_join.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_join.png
deleted file mode 100644
index 22b6875..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_join.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_single.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_single.png
deleted file mode 100644
index 3146482..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_single.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_tab.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_tab.png
deleted file mode 100644
index b76dd9f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_tab.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/java_editor_address.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/java_editor_address.png
deleted file mode 100644
index 4742890..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/java_editor_address.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/jaxb_schmea_generation_dialog.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/jaxb_schmea_generation_dialog.png
deleted file mode 100644
index c9b222e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/jaxb_schmea_generation_dialog.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/jpa_wizard_create_fields.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/jpa_wizard_create_fields.png
deleted file mode 100644
index 30550ea..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/jpa_wizard_create_fields.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapped_entity_type_link.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/mapped_entity_type_link.png
deleted file mode 100644
index 2b61603..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapped_entity_type_link.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_file_new.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_file_new.png
deleted file mode 100644
index 3355741..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_file_new.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_embed.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_embed.png
deleted file mode 100644
index 086ea6e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_embed.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_entity.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_entity.png
deleted file mode 100644
index 2604fd9..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_entity.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_superclass.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_superclass.png
deleted file mode 100644
index e28e8fa..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_superclass.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/modify_faceted_project.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/modify_faceted_project.png
deleted file mode 100644
index f4c7968..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/modify_faceted_project.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_basicmappings.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_basicmappings.png
deleted file mode 100644
index 1b0b7ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_basicmappings.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddableentitymapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddableentitymapping.png
deleted file mode 100644
index 48294ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddableentitymapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedidmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedidmapping.png
deleted file mode 100644
index abe9dc8..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedidmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedmapping.png
deleted file mode 100644
index 44d52b8..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_idmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_idmapping.png
deleted file mode 100644
index fdefb5d..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_idmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytomanymapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytomanymapping.png
deleted file mode 100644
index eb8022e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytomanymapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytoonemapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytoonemapping.png
deleted file mode 100644
index ccacc19..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytoonemapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedentity.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedentity.png
deleted file mode 100644
index 398ea2c..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedentity.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedsuperclass.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedsuperclass.png
deleted file mode 100644
index fc97ceb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedsuperclass.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetomanymapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetomanymapping.png
deleted file mode 100644
index 5ddc989..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetomanymapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetoonemapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetoonemapping.png
deleted file mode 100644
index 74d9bbd..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetoonemapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_transientmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_transientmapping.png
deleted file mode 100644
index 750488f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_transientmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_versionmapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_versionmapping.png
deleted file mode 100644
index a873712..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_versionmapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_facet_task.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_facet_task.png
deleted file mode 100644
index 7607808..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_facet_task.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_perspective_button.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_perspective_button.png
deleted file mode 100644
index 07425ad..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_perspective_button.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_project_task.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_project_task.png
deleted file mode 100644
index ab079c2..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_project_task.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelc.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelc.png
deleted file mode 100644
index 88381a5..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelc.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelr.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelr.png
deleted file mode 100644
index 4bbc744..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelr.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelt.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelt.png
deleted file mode 100644
index 60af21f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelt.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/persistence_outline_view.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/persistence_outline_view.png
deleted file mode 100644
index 769aa82..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/persistence_outline_view.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/project_properties_tasks.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/project_properties_tasks.png
deleted file mode 100644
index 97557ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/project_properties_tasks.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/quickstart_project.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/quickstart_project.png
deleted file mode 100644
index 48ca050..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/quickstart_project.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/secondary_tables.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/secondary_tables.png
deleted file mode 100644
index a41f9f5..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/secondary_tables.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_entity.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_entity.png
deleted file mode 100644
index 2cebe90..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_entity.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_jpa_project.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_jpa_project.png
deleted file mode 100644
index 1823502..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_jpa_project.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_mapping.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_mapping.png
deleted file mode 100644
index 049c9d1..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_mapping.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_jaxb_schema_wizard.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/select_jaxb_schema_wizard.png
deleted file mode 100644
index 587e61c..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_jaxb_schema_wizard.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_tables.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/select_tables.png
deleted file mode 100644
index a57c931..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/select_tables.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/synchornize_classes.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/synchornize_classes.png
deleted file mode 100644
index a359f64..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/synchornize_classes.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/table_associations.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/table_associations.png
deleted file mode 100644
index b5b40be..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/table_associations.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/table_entity.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/table_entity.png
deleted file mode 100644
index 1aa1dbe..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/table_entity.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/task_entering_query.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/task_entering_query.png
deleted file mode 100644
index e8beaceb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/task_entering_query.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/img/upgrade_persistence_jpa_version.png b/jpa/plugins/org.eclipse.jpt.doc.user/img/upgrade_persistence_jpa_version.png
deleted file mode 100644
index 96fa4d2..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/img/upgrade_persistence_jpa_version.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/index.xml b/jpa/plugins/org.eclipse.jpt.doc.user/index.xml
deleted file mode 100644
index acf9beb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/index.xml
+++ /dev/null
@@ -1,668 +0,0 @@
-<?xml version='1.0' encoding='iso-8859-1'?>
-<index version="1.0">
-  <entry keyword="@Basic">
-    <entry keyword="Basic mapping"><topic href="tasks010.htm#sthref116" /></entry>
-  </entry>
-  <entry keyword="@Column">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref245" /></entry>
-  </entry>
-  <entry keyword="@DiscriminatorColumn">
-    <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref96" /></entry>
-    <entry keyword="Inheritance information"><topic href="reference009.htm#sthref239" /></entry>
-  </entry>
-  <entry keyword="@DiscriminatorValue">
-    <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref98" /></entry>
-    <entry keyword="Inheritance information"><topic href="reference009.htm#sthref237" /></entry>
-  </entry>
-  <entry keyword="@Embeddable">
-    <entry keyword="Embeddable"><topic href="tasks007.htm#sthref81" /></entry>
-  </entry>
-  <entry keyword="@Embedded">
-    <entry keyword="Embedded mapping"><topic href="tasks011.htm#sthref120" /></entry>
-  </entry>
-  <entry keyword="@EmbeddedId">
-    <entry keyword="Embedded ID mapping"><topic href="tasks012.htm#sthref124" /></entry>
-  </entry>
-  <entry keyword="@Entity">
-    <entry keyword="Entity"><topic href="tasks006.htm#sthref74" /></entry>
-  </entry>
-  <entry keyword="@Enumerated">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref255" /></entry>
-  </entry>
-  <entry keyword="@GeneratedValue">
-    <entry keyword="Primary Key Generation information"><topic href="ref_primary_key.htm#sthref265" /></entry>
-  </entry>
-  <entry keyword="@Id">
-    <entry keyword="ID mapping"><topic href="tasks013.htm#sthref128" /></entry>
-  </entry>
-  <entry keyword="@Inheritance">
-    <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref94" /></entry>
-  </entry>
-  <entry keyword="@JoinColumn">
-    <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref139" /></entry>
-    <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref149" /></entry>
-    <entry keyword="Join Table Information"><topic href="reference011.htm#sthref261" /></entry>
-    <entry keyword="Join Columns Information"><topic href="reference012.htm#sthref264" /></entry>
-  </entry>
-  <entry keyword="@Lob">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref250" /></entry>
-  </entry>
-  <entry keyword="@ManyToMany">
-    <entry keyword="Many-to-many mapping"><topic href="tasks014.htm#sthref132" /></entry>
-  </entry>
-  <entry keyword="@ManyToOne">
-    <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref137" /></entry>
-  </entry>
-  <entry keyword="@MappedSuperclass">
-    <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref88" /></entry>
-  </entry>
-  <entry keyword="@NamedQuery">
-    <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref108" /></entry>
-  </entry>
-  <entry keyword="@OneToMany">
-    <entry keyword="One-to-many mapping"><topic href="tasks016.htm#sthref142" /></entry>
-  </entry>
-  <entry keyword="@OneToOne">
-    <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref146" /></entry>
-  </entry>
-  <entry keyword="@OrderBy">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref259" /></entry>
-  </entry>
-  <entry keyword="@SequenceGenerator">
-    <entry keyword="Primary Key Generation information"><topic href="ref_primary_key.htm#sthref267" /></entry>
-  </entry>
-  <entry keyword="@Temporal">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref252" /></entry>
-  </entry>
-  <entry keyword="@Transient">
-    <entry keyword="Transient mapping"><topic href="tasks018.htm#sthref152" /></entry>
-  </entry>
-  <entry keyword="@Version">
-    <entry keyword="Version mapping"><topic href="tasks019.htm#sthref156" /></entry>
-  </entry>
-  <entry keyword="architecture of Dali feature">
-    <entry keyword="Dali Developer Documentation"><topic href="reference033.htm#sthref303" /></entry>
-  </entry>
-  <entry keyword="association tables">
-    <entry keyword="Create New Association"><topic href="ref_create_new_association_wizard.htm#sthref221" /></entry>
-  </entry>
-  <entry keyword="attribute overrides">
-    <entry keyword="Attribute overrides"><topic href="reference007.htm#sthref228" /></entry>
-  </entry>
-  <entry keyword="Attribute Overrides - in Java Details view">
-    <entry keyword="Attribute overrides"><topic href="reference007.htm#sthref230" /></entry>
-  </entry>
-  <entry keyword="attributes">
-    <entry keyword="JPA Details view">
-      <entry keyword="JPA Details view (for attributes)"><topic href="ref_persistence_map_view.htm#sthref244" /></entry>
-    </entry>
-    <entry keyword="mapping">
-      <entry keyword="Understanding OR mappings"><topic href="concept_mapping.htm#sthref21" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="basic mapping">
-    <entry keyword="@Basic">
-      <entry keyword="Basic mapping"><topic href="tasks010.htm#sthref117" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Basic mapping"><topic href="tasks010.htm#sthref115" /></entry>
-    </entry>
-    <entry keyword="(See also mappings)"></entry>
-  </entry>
-  <entry keyword="caching">
-    <entry keyword="Caching"><topic href="reference020.htm#sthref278" /></entry>
-  </entry>
-  <entry keyword="canonical metamodel">
-    <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref298" /></entry>
-  </entry>
-  <entry keyword="cardinality - association tables">
-    <entry keyword="Association Cardinality"><topic href="ref_association_cardinality.htm#sthref224" /></entry>
-  </entry>
-  <entry keyword="classes">
-    <entry keyword="adding persistence to">
-      <entry keyword="Adding persistence to a class"><topic href="task_add_persistence.htm#sthref69" /></entry>
-    </entry>
-    <entry keyword="embeddable">
-      <entry keyword="Embeddable"><topic href="tasks007.htm#sthref80" /></entry>
-    </entry>
-    <entry keyword="entity">
-      <entry keyword="Entity"><topic href="tasks006.htm#sthref72" /></entry>
-    </entry>
-    <entry keyword="generating schema from">
-      <entry keyword="Generating Schema from Classes"><topic href="task_generating_schema_from_classes.htm#sthref190" /></entry>
-      <entry keyword="Generating JAXB Classes from a Schema"><topic href="task_generate_classes_from_schema.htm#sthref198" /></entry>
-    </entry>
-    <entry keyword="managed">
-      <entry keyword="Managing the persistence.xml file"><topic href="task_manage_persistence.htm#sthref50" /></entry>
-    </entry>
-    <entry keyword="managing persistent classes">
-      <entry keyword="JPA Facet page"><topic href="ref_jpa_facet.htm#sthref207" /></entry>
-    </entry>
-    <entry keyword="mapped superclass">
-      <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref86" /></entry>
-    </entry>
-    <entry keyword="synchronizing">
-      <entry keyword="Synchronizing classes"><topic href="tasks002.htm#sthref52" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="columns">
-    <entry keyword="discriminator">
-      <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref97" /></entry>
-      <entry keyword="Inheritance information"><topic href="reference009.htm#sthref240" /></entry>
-    </entry>
-    <entry keyword="join">
-      <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref138" /></entry>
-      <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref148" /></entry>
-      <entry keyword="Join Table Information"><topic href="reference011.htm#sthref260" /></entry>
-      <entry keyword="Join Columns Information"><topic href="reference012.htm#sthref263" /></entry>
-    </entry>
-    <entry keyword="mapping to">
-      <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref246" /></entry>
-    </entry>
-    <entry keyword="value">
-      <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref99" /></entry>
-      <entry keyword="Inheritance information"><topic href="reference009.htm#sthref238" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="connection pool">
-    <entry keyword="Managing the persistence.xml file"><topic href="task_manage_persistence.htm#sthref51" /></entry>
-  </entry>
-  <entry keyword="converting Java project to JPA">
-    <entry keyword="Converting a Java Project to a JPA Project"><topic href="tasks001.htm#sthref37" /></entry>
-  </entry>
-  <entry keyword="Create a JPA Project Wizard">
-    <entry keyword="Creating a new JPA project"><topic href="task_create_new_project.htm#sthref29" /></entry>
-    <entry keyword="Generating Schema from Classes"><topic href="task_generating_schema_from_classes.htm#sthref194" /></entry>
-    <entry keyword="Generating JAXB Classes from a Schema"><topic href="task_generate_classes_from_schema.htm#sthref202" /></entry>
-  </entry>
-  <entry keyword="Create New JPA Project wizard">
-    <entry keyword="Create New JPA Project wizard"><topic href="ref_new_jpa_project_wizard.htm#sthref204" /></entry>
-  </entry>
-  <entry keyword="database tables">
-    <entry keyword="generating entities from">
-      <entry keyword="Generating entities from tables"><topic href="tasks021.htm#sthref161" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="database - persistence">
-    <entry keyword="connection">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref293" /></entry>
-    </entry>
-    <entry keyword="schema">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref295" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="derived ID">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref257" /></entry>
-  </entry>
-  <entry keyword="developer documentation - Dali">
-    <entry keyword="Dali Developer Documentation"><topic href="reference033.htm#sthref302" /></entry>
-  </entry>
-  <entry keyword="eager fetch">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref248" /></entry>
-  </entry>
-  <entry keyword="embeddable class">
-    <entry keyword="@Embeddable">
-      <entry keyword="Embeddable"><topic href="tasks007.htm#sthref82" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Embeddable"><topic href="tasks007.htm#sthref79" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="embedded ID mapping">
-    <entry keyword="@EmbeddedId">
-      <entry keyword="Embedded ID mapping"><topic href="tasks012.htm#sthref125" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Embedded ID mapping"><topic href="tasks012.htm#sthref123" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="embedded mapping">
-    <entry keyword="@Embedded">
-      <entry keyword="Embedded mapping"><topic href="tasks011.htm#sthref121" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Embedded mapping"><topic href="tasks011.htm#sthref119" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="entities">
-    <entry keyword="@Entity annotation">
-      <entry keyword="Entity"><topic href="tasks006.htm#sthref75" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Understanding Java persistence"><topic href="concept_persistence.htm#sthref20" /></entry>
-    </entry>
-    <entry keyword="creating">
-      <entry keyword="Creating a JPA Entity"><topic href="task_create_jpa_entity.htm#sthref40" /></entry>
-    </entry>
-    <entry keyword="customizing">
-      <entry keyword="Customize Individual Entities"><topic href="ref_customizIndividualEntities.htm#sthref220" /></entry>
-    </entry>
-    <entry keyword="embeddable">
-      <entry keyword="Embeddable"><topic href="tasks007.htm#sthref83" /></entry>
-    </entry>
-    <entry keyword="from tables">
-      <entry keyword="Generating entities from tables"><topic href="tasks021.htm#sthref158" /></entry>
-      <entry keyword="Select Tables"><topic href="ref_selectTables.htm#sthref216" /></entry>
-    </entry>
-    <entry keyword="generating">
-      <entry keyword="Customize Default Entity Generation"><topic href="ref_customizeDefaultEntityGeneration.htm#sthref219" /></entry>
-    </entry>
-    <entry keyword="JPA Details view">
-      <entry keyword="JPA Details view (for entities)"><topic href="ref_persistence_prop_view.htm#sthref227" /></entry>
-    </entry>
-    <entry keyword="mapped superclass">
-      <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref89" /></entry>
-    </entry>
-    <entry keyword="mapping">
-      <entry keyword="Creating a Java persistent entity with persistent fields"><topic href="getting_started004.htm#sthref13" /></entry>
-    </entry>
-    <entry keyword="persistence">
-      <entry keyword="Creating a Java persistent entity with persistent fields"><topic href="getting_started004.htm#sthref11" /></entry>
-    </entry>
-    <entry keyword="persistent">
-      <entry keyword="Entity"><topic href="tasks006.htm#sthref70" /></entry>
-      <entry keyword="Entity"><topic href="tasks006.htm#sthref76" /></entry>
-    </entry>
-    <entry keyword="secondary tables">
-      <entry keyword="Secondary table information"><topic href="reference008.htm#sthref233" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="Entity Class page">
-    <entry keyword="Selecting the Create a JPA Entity Wizard"><topic href="task_create_jpa_entity.htm#sthref43" /></entry>
-  </entry>
-  <entry keyword="Entity Properties page">
-    <entry keyword="&lt;a id=&quot;sthref43&quot; name=&quot;sthref43&quot;&gt;&lt;/a&gt;The Entity Class Page"><topic href="task_create_jpa_entity.htm#sthref45" /></entry>
-  </entry>
-  <entry keyword="enumerated">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref254" /></entry>
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref256" /></entry>
-  </entry>
-  <entry keyword="error messages - Dali">
-    <entry keyword="Validating mappings and reporting problems"><topic href="tasks023.htm#sthref167" /></entry>
-    <entry keyword="Error messages"><topic href="tasks024.htm#sthref172" /></entry>
-  </entry>
-  <entry keyword="extension points - Dali feature">
-    <entry keyword="Dali Developer Documentation"><topic href="reference033.htm#sthref304" /></entry>
-  </entry>
-  <entry keyword="fetch type">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref247" /></entry>
-  </entry>
-  <entry keyword="Generate Entities from Tables dialog">
-    <entry keyword="Generating entities from tables"><topic href="tasks021.htm#sthref160" /></entry>
-    <entry keyword="Select Tables"><topic href="ref_selectTables.htm#sthref215" /></entry>
-  </entry>
-  <entry keyword="Generate Schema from Classes wizard">
-    <entry keyword="Generating Schema from Classes"><topic href="task_generating_schema_from_classes.htm#sthref192" /></entry>
-    <entry keyword="Generating JAXB Classes from a Schema"><topic href="task_generate_classes_from_schema.htm#sthref200" /></entry>
-  </entry>
-  <entry keyword="generated values">
-    <entry keyword="ID mappings">
-      <entry keyword="Primary Key Generation information"><topic href="ref_primary_key.htm#sthref266" /></entry>
-    </entry>
-    <entry keyword="sequence">
-      <entry keyword="Primary Key Generation information"><topic href="ref_primary_key.htm#sthref268" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="hints - query">
-    <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref110" /></entry>
-  </entry>
-  <entry keyword="ID mapping">
-    <entry keyword="@Id">
-      <entry keyword="ID mapping"><topic href="tasks013.htm#sthref129" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="ID mapping"><topic href="tasks013.htm#sthref127" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="inheritance">
-    <entry keyword="entity">
-      <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref93" /></entry>
-      <entry keyword="Entity Class page"><topic href="ref_EntityClassPage.htm#sthref209" /></entry>
-      <entry keyword="Inheritance information"><topic href="reference009.htm#sthref236" /></entry>
-    </entry>
-    <entry keyword="joined tables">
-      <entry keyword="Single Table Inheritance"><topic href="task_inheritance.htm#sthref105" /></entry>
-    </entry>
-    <entry keyword="single table">
-      <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref100" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="Inheritance - in Java Details view">
-    <entry keyword="Inheritance information"><topic href="reference009.htm#sthref235" /></entry>
-  </entry>
-  <entry keyword="installation - Dali">
-    <entry keyword="Requirements and installation"><topic href="getting_started001.htm#sthref3" /></entry>
-  </entry>
-  <entry keyword="Java project - converting to JPA">
-    <entry keyword="Converting a Java Project to a JPA Project"><topic href="tasks001.htm#sthref35" /></entry>
-  </entry>
-  <entry keyword="JAXB">
-    <entry keyword="Generating Schema from Classes"><topic href="task_generating_schema_from_classes.htm#sthref191" /></entry>
-    <entry keyword="Generating JAXB Classes from a Schema"><topic href="task_generate_classes_from_schema.htm#sthref199" /></entry>
-  </entry>
-  <entry keyword="join columns">
-    <entry keyword="Join Columns"><topic href="ref_join_columns.htm#sthref223" /></entry>
-    <entry keyword="Join Columns Information"><topic href="reference012.htm#sthref262" /></entry>
-  </entry>
-  <entry keyword="joined tables - inheritance">
-    <entry keyword="Single Table Inheritance"><topic href="task_inheritance.htm#sthref106" /></entry>
-  </entry>
-  <entry keyword="JPA Details view">
-    <entry keyword="attributes">
-      <entry keyword="JPA Details view (for attributes)"><topic href="ref_persistence_map_view.htm#sthref242" /></entry>
-    </entry>
-    <entry keyword="entities">
-      <entry keyword="JPA Details view (for entities)"><topic href="ref_persistence_prop_view.htm#sthref225" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="JPA Development perspective">
-    <entry keyword="JPA Development perspective"><topic href="ref_persistence_perspective.htm#sthref300" /></entry>
-  </entry>
-  <entry keyword="JPA Facet page">
-    <entry keyword="The Java Source Page"><topic href="task_create_new_project.htm#sthref34" /></entry>
-  </entry>
-  <entry keyword="JPA project">
-    <entry keyword="converting from Java">
-      <entry keyword="Converting a Java Project to a JPA Project"><topic href="tasks001.htm#sthref36" /></entry>
-    </entry>
-    <entry keyword="creating new">
-      <entry keyword="Creating a new JPA project"><topic href="task_create_new_project.htm#sthref27" /></entry>
-    </entry>
-    <entry keyword="implementation">
-      <entry keyword="JPA Facet page"><topic href="ref_jpa_facet.htm#sthref205" /></entry>
-    </entry>
-    <entry keyword="page">
-      <entry keyword="&lt;a id=&quot;sthref29&quot; name=&quot;sthref29&quot;&gt;&lt;/a&gt;Selecting the Create a JPA Project wizard"><topic href="task_create_new_project.htm#sthref31" /></entry>
-      <entry keyword="&lt;a id=&quot;sthref194&quot; name=&quot;sthref194&quot;&gt;&lt;/a&gt;Selecting the Schema from JAXB Classes wizard"><topic href="task_generating_schema_from_classes.htm#sthref196" /></entry>
-    </entry>
-    <entry keyword="platform">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref292" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="JPA Structure view">
-    <entry keyword="JPA Structure view"><topic href="ref_persistence_outline.htm#sthref270" /></entry>
-  </entry>
-  <entry keyword="lazy fetch">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref249" /></entry>
-  </entry>
-  <entry keyword="library - JPA">
-    <entry keyword="JPA Facet page"><topic href="ref_jpa_facet.htm#sthref206" /></entry>
-  </entry>
-  <entry keyword="many-to-many mapping">
-    <entry keyword="@ManyToMany">
-      <entry keyword="Many-to-many mapping"><topic href="tasks014.htm#sthref133" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Many-to-many mapping"><topic href="tasks014.htm#sthref131" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="many-to-one mapping">
-    <entry keyword="@ManyToOne">
-      <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref136" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref135" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="mapped superclass">
-    <entry keyword="@MappedSuperclass">
-      <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref87" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref85" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="mapping entities">
-    <entry keyword="Creating a Java persistent entity with persistent fields"><topic href="getting_started004.htm#sthref12" /></entry>
-  </entry>
-  <entry keyword="mapping file">
-    <entry keyword="&lt;a id=&quot;sthref58&quot; name=&quot;sthref58&quot;&gt;&lt;/a&gt;Managing the orm.xml file"><topic href="tasks004.htm#sthref61" /></entry>
-    <entry keyword="Entity Class page"><topic href="ref_EntityClassPage.htm#sthref210" /></entry>
-  </entry>
-  <entry keyword="mappings">
-    <entry keyword="about">
-      <entry keyword="Understanding OR mappings"><topic href="concept_mapping.htm#sthref22" /></entry>
-    </entry>
-    <entry keyword="basic">
-      <entry keyword="Basic mapping"><topic href="tasks010.htm#sthref114" /></entry>
-    </entry>
-    <entry keyword="embedded">
-      <entry keyword="Embedded mapping"><topic href="tasks011.htm#sthref118" /></entry>
-    </entry>
-    <entry keyword="embedded ID">
-      <entry keyword="Embedded ID mapping"><topic href="tasks012.htm#sthref122" /></entry>
-    </entry>
-    <entry keyword="ID">
-      <entry keyword="ID mapping"><topic href="tasks013.htm#sthref126" /></entry>
-    </entry>
-    <entry keyword="many-to-many">
-      <entry keyword="Many-to-many mapping"><topic href="tasks014.htm#sthref130" /></entry>
-    </entry>
-    <entry keyword="many-to-one">
-      <entry keyword="Many-to-one mapping"><topic href="tasks015.htm#sthref134" /></entry>
-    </entry>
-    <entry keyword="one-to-many">
-      <entry keyword="One-to-many mapping"><topic href="tasks016.htm#sthref140" /></entry>
-    </entry>
-    <entry keyword="one-to-one">
-      <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref144" /></entry>
-    </entry>
-    <entry keyword="problems">
-      <entry keyword="Validating mappings and reporting problems"><topic href="tasks023.htm#sthref170" /></entry>
-    </entry>
-    <entry keyword="transient">
-      <entry keyword="Transient mapping"><topic href="tasks018.htm#sthref150" /></entry>
-    </entry>
-    <entry keyword="version">
-      <entry keyword="Version mapping"><topic href="tasks019.htm#sthref154" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="metamodel - canonical">
-    <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref299" /></entry>
-  </entry>
-  <entry keyword="named queries">
-    <entry keyword="entity">
-      <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref107" /></entry>
-    </entry>
-    <entry keyword="hints">
-      <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref111" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="native queries">
-    <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref112" /></entry>
-  </entry>
-  <entry keyword="nonpersistent">
-    <entry keyword="classes">
-      <entry keyword="Adding persistence to a class"><topic href="task_add_persistence.htm#sthref68" /></entry>
-    </entry>
-    <entry keyword="fields. See transient"></entry>
-  </entry>
-  <entry keyword="one-to-many mapping">
-    <entry keyword="@OneToMany">
-      <entry keyword="One-to-many mapping"><topic href="tasks016.htm#sthref143" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="One-to-many mapping"><topic href="tasks016.htm#sthref141" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="one-to-one mapping">
-    <entry keyword="@OneToOne">
-      <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref147" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="One-to-one mapping"><topic href="tasks017.htm#sthref145" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="ordering">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref258" /></entry>
-  </entry>
-  <entry keyword="orm.xml file">
-    <entry keyword="about">
-      <entry keyword="The orm.xml file"><topic href="concepts003.htm#sthref24" /></entry>
-    </entry>
-    <entry keyword="creating">
-      <entry keyword="JPA Facet page"><topic href="ref_jpa_facet.htm#sthref208" /></entry>
-    </entry>
-    <entry keyword="managing">
-      <entry keyword="Managing the orm.xml file"><topic href="task_manage_orm.htm#sthref58" /></entry>
-    </entry>
-    <entry keyword="sample">
-      <entry keyword="Managing the orm.xml file"><topic href="task_manage_orm.htm#sthref59" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="overrides - JPA attributes">
-    <entry keyword="Attribute overrides"><topic href="reference007.htm#sthref229" /></entry>
-  </entry>
-  <entry keyword="persistence">
-    <entry keyword="about">
-      <entry keyword="Understanding Java persistence"><topic href="concept_persistence.htm#sthref19" /></entry>
-    </entry>
-    <entry keyword="database connection">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref294" /></entry>
-    </entry>
-    <entry keyword="database schema">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref297" /></entry>
-    </entry>
-    <entry keyword="entity class">
-      <entry keyword="Adding persistence to a class"><topic href="task_add_persistence.htm#sthref67" /></entry>
-    </entry>
-    <entry keyword="options">
-      <entry keyword="Project Properties page - Java Persistence Options"><topic href="ref_project_properties.htm#sthref287" /></entry>
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref289" /></entry>
-    </entry>
-    <entry keyword="provider">
-      <entry keyword="Managing the persistence.xml file"><topic href="task_manage_persistence.htm#sthref49" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="persistence.xml file">
-    <entry keyword="about">
-      <entry keyword="The persistence.xml file"><topic href="concepts002.htm#sthref23" /></entry>
-    </entry>
-    <entry keyword="managing">
-      <entry keyword="Managing the persistence.xml file"><topic href="task_manage_persistence.htm#sthref47" /></entry>
-      <entry keyword="Working with orm.xml file"><topic href="tasks005.htm#sthref65" /></entry>
-    </entry>
-    <entry keyword="sample">
-      <entry keyword="Managing the persistence.xml file"><topic href="task_manage_persistence.htm#sthref48" /></entry>
-    </entry>
-    <entry keyword="synchronizing with classes">
-      <entry keyword="Synchronizing classes"><topic href="tasks002.htm#sthref53" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="persistent entity">
-    <entry keyword="Entity"><topic href="tasks006.htm#sthref71" /></entry>
-  </entry>
-  <entry keyword="perspective - JPA Development">
-    <entry keyword="JPA Development perspective"><topic href="ref_persistence_perspective.htm#sthref301" /></entry>
-  </entry>
-  <entry keyword="platform - JPA">
-    <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref291" /></entry>
-  </entry>
-  <entry keyword="problems">
-    <entry keyword="Validating mappings and reporting problems"><topic href="tasks023.htm#sthref169" /></entry>
-  </entry>
-  <entry keyword="projects - JPA">
-    <entry keyword="creating new">
-      <entry keyword="Creating a new JPA project"><topic href="getting_started003.htm#sthref9" /></entry>
-      <entry keyword="Creating a new JPA project"><topic href="task_create_new_project.htm#sthref26" /></entry>
-    </entry>
-    <entry keyword="options">
-      <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref290" /></entry>
-    </entry>
-    <entry keyword="validation preferences">
-      <entry keyword="Project Properties page - Java Persistence Options"><topic href="ref_project_properties.htm#sthref288" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="query hints">
-    <entry keyword="Creating Named Queries"><topic href="tasks009.htm#sthref109" /></entry>
-  </entry>
-  <entry keyword="quick start - Dali">
-    <entry keyword="Dali quick start"><topic href="getting_started002.htm#sthref8" /></entry>
-  </entry>
-  <entry keyword="requirements">
-    <entry keyword="Dali Java Persistence Tools">
-      <entry keyword="Requirements and installation"><topic href="getting_started001.htm#sthref4" /></entry>
-    </entry>
-    <entry keyword="persistent entities">
-      <entry keyword="Entity"><topic href="tasks006.htm#sthref73" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="schema">
-    <entry keyword="from classes">
-      <entry keyword="Generating Schema from Classes"><topic href="task_generating_schema_from_classes.htm#sthref189" /></entry>
-      <entry keyword="Generating JAXB Classes from a Schema"><topic href="task_generate_classes_from_schema.htm#sthref197" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="schema - database">
-    <entry keyword="Project Properties page - Validation Preferences"><topic href="reference027.htm#sthref296" /></entry>
-  </entry>
-  <entry keyword="secondary tables">
-    <entry keyword="Secondary table information"><topic href="reference008.htm#sthref231" /></entry>
-  </entry>
-  <entry keyword="Secondary Tables - in Java Details view">
-    <entry keyword="Secondary table information"><topic href="reference008.htm#sthref234" /></entry>
-  </entry>
-  <entry keyword="single table inheritance">
-    <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref101" /></entry>
-  </entry>
-  <entry keyword="superclass">
-    <entry keyword="Mapped superclass"><topic href="tasks008.htm#sthref90" /></entry>
-  </entry>
-  <entry keyword="synchronizing classes with persistence.xml file">
-    <entry keyword="Synchronizing classes"><topic href="tasks002.htm#sthref54" /></entry>
-  </entry>
-  <entry keyword="tables">
-    <entry keyword="associations">
-      <entry keyword="Table Associations"><topic href="ref_tableAssociations.htm#sthref218" /></entry>
-      <entry keyword="Create New Association"><topic href="ref_create_new_association_wizard.htm#sthref222" /></entry>
-    </entry>
-    <entry keyword="creating entities from">
-      <entry keyword="Generating entities from tables"><topic href="tasks021.htm#sthref159" /></entry>
-      <entry keyword="Select Tables"><topic href="ref_selectTables.htm#sthref217" /></entry>
-    </entry>
-    <entry keyword="inheritance">
-      <entry keyword="Specifying entity inheritance"><topic href="task_inheritance.htm#sthref102" /></entry>
-    </entry>
-    <entry keyword="secondary">
-      <entry keyword="Secondary table information"><topic href="reference008.htm#sthref232" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="temporal">
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref251" /></entry>
-    <entry keyword="General information"><topic href="ref_mapping_general.htm#sthref253" /></entry>
-  </entry>
-  <entry keyword="transient mapping">
-    <entry keyword="@Transient">
-      <entry keyword="Transient mapping"><topic href="tasks018.htm#sthref153" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Transient mapping"><topic href="tasks018.htm#sthref151" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="version mapping">
-    <entry keyword="@Version">
-      <entry keyword="Version mapping"><topic href="tasks019.htm#sthref157" /></entry>
-    </entry>
-    <entry keyword="about">
-      <entry keyword="Version mapping"><topic href="tasks019.htm#sthref155" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="views">
-    <entry keyword="JPA Details view">
-      <entry keyword="JPA Details view (for entities)"><topic href="ref_persistence_prop_view.htm#sthref226" /></entry>
-      <entry keyword="JPA Details view (for attributes)"><topic href="ref_persistence_map_view.htm#sthref243" /></entry>
-    </entry>
-    <entry keyword="JPA Structure view">
-      <entry keyword="JPA Structure view"><topic href="ref_persistence_outline.htm#sthref269" /></entry>
-    </entry>
-  </entry>
-  <entry keyword="warning messages - Dali">
-    <entry keyword="Validating mappings and reporting problems"><topic href="tasks023.htm#sthref168" /></entry>
-  </entry>
-  <entry keyword="Web Tools Platform (WTP)">
-    <entry keyword="Requirements and installation"><topic href="getting_started001.htm#sthref5" /></entry>
-  </entry>
-  <entry keyword="XML editor">
-    <entry keyword="Working with orm.xml file"><topic href="tasks005.htm#sthref64" /></entry>
-  </entry>
-</index>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/legal.htm b/jpa/plugins/org.eclipse.jpt.doc.user/legal.htm
deleted file mode 100644
index dfa0007..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/legal.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Legal</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Legal" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref294" name="sthref294"></a></p>
-<h1>Legal</h1>
-<p>Copyright &copy; 2006, 2010, Oracle. All rights reserved.</p>
-<p>This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at:</p>
-<p><code><a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></code></p>
-<p><a href="about.htm">Terms and conditions regarding the use of this guide.</a></p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/plugin.properties b/jpa/plugins/org.eclipse.jpt.doc.user/plugin.properties
deleted file mode 100644
index 0aea0c7..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/plugin.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2010 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Documentation
-providerName = Eclipse Web Tools Platform
-
-jpaDevelopment=JPA Development
-createAJpaProject=Create a JPA project
-createAJpaProjectDescription=This cheat sheet helps you create a JPA project.
-createAPersistentEntity=Create a persistent entity
-createAPersistentEntityDescription=This cheat sheet helps you create a Java persistent entity.
-MapAPersistentEntity=Map a persistent entity
-MapAPersistentEntityDescription=This cheat sheet helps you map the a Java persistent entity to a database table.
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/plugin.xml b/jpa/plugins/org.eclipse.jpt.doc.user/plugin.xml
deleted file mode 100644
index 342c519..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/plugin.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-	<!-- =========== -->
-	<!-- Define TOC  -->
-	<!-- =========== -->
-	<extension point="org.eclipse.help.toc">
-		<toc file="toc.xml" primary="true"/>
-	</extension>
-	<!-- =========== -->
-	<!-- Define F1   -->
-	<!-- =========== -->
-	<extension point="org.eclipse.help.contexts">
-		<contexts file="contexts.xml" plugin="org.eclipse.jpt.ui"/>
-	</extension>
-	<!-- ==================== -->
-	<!-- Define Keyword Index -->
-	<!-- ==================== -->
-	<extension point="org.eclipse.help.index">
-		<index file="index.xml"/>
-	</extension>
-	<!-- =========== -->
-	<!-- Cheatsheets -->
-	<!-- =========== -->
-	<extension point="org.eclipse.ui.cheatsheets.cheatSheetContent">
-		<category name="%jpaDevelopment" id="com.jpa.category"/>
-		<cheatsheet name="%createAJpaProject" category="com.jpa.category" contentFile="$nl$/cheatsheets/add_persistence.xml" id="org.eclipse.jpa.cheatsheet.createproject1">
-			<description>%createAJpaProjectDescription</description>
-		</cheatsheet>
-		<cheatsheet name="%createAPersistentEntity" category="com.jpa.category" contentFile="$nl$/cheatsheets/create_entity.xml" id="org.eclipse.jpa.cheatsheet.addentity">
-			<description>%createAPersistentEntityDescription</description>
-		</cheatsheet>
-		<cheatsheet name="%MapAPersistentEntity" category="com.jpa.category" contentFile="$nl$/cheatsheets/map_entity.xml" id="org.eclipse.jpa.cheatsheet.mapentity">
-			<description>%MapAPersistentEntityDescription</description>
-		</cheatsheet>
-	</extension>
-</plugin>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityClassPage.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityClassPage.htm
deleted file mode 100644
index f4578f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityClassPage.htm
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Entity Class page</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Entity Class page" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFEIGF" name="CIAFEIGF"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Entity Class page</h1>
-<p>This table lists the properties of the Entity Class page of the <a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a>.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" summary="This table lists the properties of the Entity Class page of the Create JPA Entity wizard." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="22%" />
-<col width="*" />
-<col width="17%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t5">Property</th>
-<th align="left" valign="bottom" id="r1c2-t5">Description</th>
-<th align="left" valign="bottom" id="r1c3-t5">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t5" headers="r1c1-t5">Project</td>
-<td align="left" headers="r2c1-t5 r1c2-t5">The name of the JPA project.</td>
-<td align="left" headers="r2c1-t5 r1c3-t5"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t5" headers="r1c1-t5">Source Folder</td>
-<td align="left" headers="r3c1-t5 r1c2-t5">The location of the JPA project's src folder.</td>
-<td align="left" headers="r3c1-t5 r1c3-t5"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t5" headers="r1c1-t5">Java Package</td>
-<td align="left" headers="r4c1-t5 r1c2-t5">The name of the class package.</td>
-<td align="left" headers="r4c1-t5 r1c3-t5"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t5" headers="r1c1-t5">Class name</td>
-<td align="left" headers="r5c1-t5 r1c2-t5">The name of the Java class.</td>
-<td align="left" headers="r5c1-t5 r1c3-t5"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t5" headers="r1c1-t5">Superclass</td>
-<td align="left" headers="r6c1-t5 r1c2-t5">Select the superclass.</td>
-<td align="left" headers="r6c1-t5 r1c3-t5"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t5" headers="r1c1-t5"><a id="sthref195" name="sthref195"></a>Inheritance</td>
-<td align="left" headers="r7c1-t5 r1c2-t5">Because the wizard creates a Java class with an <code>@Entity</code> notation, the <span class="bold">Entity</span> option is selected by default.
-<p>Select <span class="bold">Mapped Superclass</span> if you defined a superclass.</p>
-<p>To add an <code>@Inheritance</code> notation to the entity, select <span class="bold">Inheritance</span> and then select one of the inheritance mapping strategies (described in JSR 220):</p>
-<ul>
-<li>
-<p>SINGLE_TABLE -- All classes in a hierarchy as mapped to a single table. This annotation is without an attribute for the inheritance strategy.</p>
-</li>
-<li>
-<p>TABLE_PER_CLASS -- Each class is mapped to a separate table.</p>
-</li>
-<li>
-<p>JOINED -- The root of the class hierarchy is represented by a single table. Each subclass is represented by a separate table that contains those fields that are specific to the subclass (not inherited from its superclass), as well as the column(s) that represent its primary key. The primary key column(s) of the subclass table serves as a foreign key to the primary key of the superclass table.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r7c1-t5 r1c3-t5">Entity</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t5" headers="r1c1-t5"><a id="sthref196" name="sthref196"></a>XML Entity Mappings</td>
-<td align="left" headers="r8c1-t5 r1c2-t5">Select <span class="bold">Add to entity mappings in XML</span> to create XML mappings in <code>orm.xml</code>, rather than annotations.
-<p>Use the <span class="bold">Mapping file</span> field to specify the file to use. By default, mappings are stored in the <code>META-INF/orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r8c1-t5 r1c3-t5"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityPropertiesPage.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityPropertiesPage.htm
deleted file mode 100644
index 8914f86..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityPropertiesPage.htm
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Entity Properties page</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Entity Properties page" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIADECIA" name="CIADECIA"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Entity Properties page</h1>
-<p>This table lists the properties of the Entity Properties page of the <a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a>.</p>
-<div class="tblformal"><a id="sthref197" name="sthref197"></a><a id="sthref198" name="sthref198"></a>
-<p class="titleintable">&nbsp;</p>
-<table class="Formal" title="" summary="This table to be converted to informal." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t6">Property</th>
-<th align="left" valign="bottom" id="r1c2-t6">Description</th>
-<th align="left" valign="bottom" id="r1c3-t6">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t6" headers="r1c1-t6">
-<p>Entity Name</p>
-</td>
-<td align="left" headers="r2c1-t6 r1c2-t6">
-<p>The name of the entity. By default, this value is the same as the one entered as the class name. If the entity name differs from the class name, then the entity name is added as an attribute. For example: <code>@Entity(name="EntityName")</code>.</p>
-</td>
-<td align="left" headers="r2c1-t6 r1c3-t6">
-<p>Determined by server.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t6" headers="r1c1-t6">
-<p>Table Name</p>
-</td>
-<td align="left" headers="r3c1-t6 r1c2-t6">
-<p>Select <span class="bold">Use default</span> to match the name of the mapped table name to the entity name. Otherwise, clear the <span class="bold">Use default</span> option and enter the name in the <span class="italic">Table Name</span> field. These options result in the addition of the <code>@Table</code> option to the Java class file.</p>
-</td>
-<td align="left" headers="r3c1-t6 r1c3-t6">
-<p>Use default.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t6" headers="r1c1-t6">
-<p>Entity Fields</p>
-</td>
-<td align="left" headers="r4c1-t6 r1c2-t6">
-<p>Click the <span class="bold">Add</span> button to add persistence fields using the Entity Fields dialog. This dialog enable you to build a field by entering a field name and selecting among persistence types. The <span class="bold">Key</span> option enables you to mark a field as a primary key. The dialog's <span class="bold">Browse</span> function enables you to add other persistence types described in the JPA specification. The <span class="bold">Edit</span> button enables you to change the name or type set for a persistent field.</p>
-</td>
-<td align="left" headers="r4c1-t6 r1c3-t6"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t6" headers="r1c1-t6">
-<p>Access Type</p>
-</td>
-<td align="left" headers="r5c1-t6 r1c2-t6">
-<p>Select whether the entity's access to instance variables is field-based or property-based, as defined in the JPA specification.</p>
-<ul>
-<li>
-<p><span class="bold">Field</span> &ndash; Instance variables are accessed directly. All non-transient instance variables are persistent.</p>
-</li>
-<li>
-<p><span class="bold">Property</span> &ndash; Persistent state accessed through the property accessor methods. The property accessor methods must be <span class="bold">public</span> or <span class="bold">private</span>.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t6 r1c3-t6">
-<p>Field</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_add_converter.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_add_converter.htm
deleted file mode 100644
index f992258..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_add_converter.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Add Converter dialog</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Add Converter dialog" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGCGIJ" name="CIAGCGIJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Add Converter dialog</h1>
-<p>Use this dialog to create a new EclipseLink converter.</p>
-<div class="inftblhruleinformalmax">
-<table class="HRuleInformalMax" summary="This table lists the options on the New EclipseLink Mapping File dialog." dir="ltr" border="1" width="100%" frame="hsides" rules="rows" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t40">Property</th>
-<th align="left" valign="bottom" id="r1c2-t40">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t40" headers="r1c1-t40">Name</td>
-<td align="left" headers="r2c1-t40 r1c2-t40">Enter the name for this converter</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t40" headers="r1c1-t40">Type</td>
-<td align="left" headers="r3c1-t40 r1c2-t40">Select the converter type:
-<ul>
-<li>
-<p>Custom</p>
-</li>
-<li>
-<p>Object type</p>
-</li>
-<li>
-<p>Struct</p>
-</li>
-<li>
-<p>Type</p>
-</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblhruleinformalmax" --></div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_cardinality.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_cardinality.htm
deleted file mode 100644
index 17b8e5d..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_cardinality.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Association Cardinality</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Association Cardinality" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFIIFH" name="CIAFIIFH"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Association Cardinality</h1>
-<p><a id="sthref210" name="sthref210"></a>Use this dialog to specify cardinality of an association table. Depending on the <span class="bold">Association Kind</span> and <span class="bold">Join Columns</span> that you selected previously, some associations may not be available.</p>
-<ul>
-<li>
-<p>Many to one</p>
-</li>
-<li>
-<p>One to many</p>
-</li>
-<li>
-<p>One to one</p>
-</li>
-<li>
-<p>Many to many</p>
-</li>
-</ul>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_table.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_table.htm
deleted file mode 100644
index 78197f6..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_association_table.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Association Tables</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Association Tables" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGJHDC" name="CIAGJHDC"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Association Tables</h1>
-<p>Use this page to specify the association tables for an entity.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Association Tables dialog." summary="This table describes the options on the Association Tables dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t12">Property</th>
-<th align="left" valign="bottom" id="r1c2-t12">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t12" headers="r1c1-t12">Association kind</td>
-<td align="left" headers="r2c1-t12 r1c2-t12">Specify if the association is <span class="bold">Simple</span> (1:M) or <span class="bold">Many to Many</span> (M:M).</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t12" headers="r1c1-t12">Association tables</td>
-<td align="left" headers="r3c1-t12 r1c2-t12">Click <span class="bold">Table Selection</span>, then select the two tables to associate.
-<p>When creating a <span class="bold">Many to Many</span> association, you can select a <span class="bold">Join Table</span> for the association.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_configure_jaxb_class_generation_dialog.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_configure_jaxb_class_generation_dialog.htm
deleted file mode 100644
index 7efc7a4..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_configure_jaxb_class_generation_dialog.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Configure JAXB Class Generation dialog</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T19:33:7Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Configure JAXB Class Generation dialog" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACHHHJA" name="CACHHHJA"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Configure JAXB Class Generation dialog</h1>
-<p>Use this dialog to generate JAXB classes from a schema.</p>
-<div class="inftblhruleinformalmax">
-<table class="HRuleInformalMax" summary="This table lists the options on the New EclipseLink Mapping File dialog." dir="ltr" border="1" width="100%" frame="hsides" rules="rows" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t41">Property</th>
-<th align="left" valign="bottom" id="r1c2-t41">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t41" headers="r1c1-t41">Source folder</td>
-<td align="left" headers="r2c1-t41 r1c2-t41">Location in which to generate the classes. Click <span class="bold">Browse</span> to select a location.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t41" headers="r1c1-t41">Package</td>
-<td align="left" headers="r3c1-t41 r1c2-t41">Name of the package. Click <span class="bold">Browse</span> to select an existing package.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t41" headers="r1c1-t41">Catalog</td>
-<td align="left" headers="r4c1-t41 r1c2-t41">Name of the catalog file to use to resolve external entity references.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t41" headers="r1c1-t41">Bindings files</td>
-<td align="left" headers="r5c1-t41 r1c2-t41">Click <span class="bold">Add</span> to select the external bindings files</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblhruleinformalmax" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_generate_classes_from_schema.htm#CIHCBHJD">Generating JAXB Classes from a Schema</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_custom_entities_wizard.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_custom_entities_wizard.htm
deleted file mode 100644
index 6b5694a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_custom_entities_wizard.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generate Entities from Tables Wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generate Entities from Tables Wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGBFJE" name="CIAGBFJE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Generate Entities from Tables Wizard</h1>
-<p>Use the Generate Custom Entities Wizard to create entities from your database tables.</p>
-<p>The wizard consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_selectTables.htm#CIAHCGEE">Select Tables</a></p>
-</li>
-<li>
-<p><a href="ref_tableAssociations.htm#CIACDICB">Table Associations</a></p>
-</li>
-<li>
-<p><a href="ref_customizeDefaultEntityGeneration.htm#CIAEJDBE">Customize Default Entity Generation</a></p>
-</li>
-<li>
-<p><a href="ref_customizIndividualEntities.htm#CIACIGEE">Customize Individual Entities</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_jpa_entity_wizard.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_jpa_entity_wizard.htm
deleted file mode 100644
index 12da747..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_jpa_entity_wizard.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Create JPA Entity wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Create JPA Entity wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGGGDF" name="CIAGGGDF"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Create JPA Entity wizard</h1>
-<p>The Create JPA wizard enables you to quickly add an entity and also add persistence fields to that entity. In addition, this wizard adds the accessor methods (<code>getter</code> and <code>setter</code>) in the class file. The wizard consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_EntityClassPage.htm#CIAFEIGF">Entity Class page</a></p>
-</li>
-<li>
-<p><a href="ref_EntityPropertiesPage.htm#CIADECIA">Entity Properties page</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_new_association_wizard.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_new_association_wizard.htm
deleted file mode 100644
index b74aa5a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_create_new_association_wizard.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Create New Association</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Create New Association" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFGHIF" name="CIAFGHIF"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Create New Association</h1>
-<p><a id="sthref207" name="sthref207"></a><a id="sthref208" name="sthref208"></a>Use the Create New Association wizard to specify association tables when generating an entity.</p>
-<p>The wizard consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_association_table.htm#CIAGJHDC">Association Tables</a></p>
-</li>
-<li>
-<p><a href="ref_join_columns.htm#CIAEGEEG">Join Columns</a></p>
-</li>
-<li>
-<p><a href="ref_association_cardinality.htm#CIAFIIFH">Association Cardinality</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizIndividualEntities.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizIndividualEntities.htm
deleted file mode 100644
index e847da3..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizIndividualEntities.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Customize Individual Entities</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Customize Individual Entities" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIACIGEE" name="CIACIGEE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Customize Individual Entities</h1>
-<p><a id="sthref206" name="sthref206"></a>Use this page to customize each generated entity. Select an item in the Table and columns area, then complete the following fields for each item.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Individual Entities dialog." summary="This table describes the options on the Individual Entities dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t11">Property</th>
-<th align="left" valign="bottom" id="r1c2-t11">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t11" headers="r1c1-t11">Table Mapping</td>
-<td align="left" headers="r2c1-t11 r1c2-t11">Use these options to define the table mapping information for the entity.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t11" headers="r1c1-t11">&nbsp;&nbsp;Key&nbsp;generator</td>
-<td align="left" headers="r3c1-t11 r1c2-t11">Select the generator used for this mapping.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t11" headers="r1c1-t11">&nbsp;&nbsp;Sequence&nbsp;name</td>
-<td align="left" headers="r4c1-t11 r1c2-t11">Enter a name for the sequence.
-<p>You can use <span class="bold">$table</span> and <span class="bold">$pk</span> as variables in the name. These will be replaced by the table name and primary key column name (respectively) when Dali generates a table mapping.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t11" headers="r1c1-t11">&nbsp;&nbsp;Entity&nbsp;access</td>
-<td align="left" headers="r5c1-t11 r1c2-t11">Specify the default entity access method: <span class="bold">Field</span> (default) or <span class="bold">Property</span>.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t11" headers="r1c1-t11">Domain Java Class</td>
-<td align="left" headers="r6c1-t11 r1c2-t11">Use these options to define the class information (<span class="bold">Superclass</span> and <span class="bold">Interfaces</span>) for the entity.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizeDefaultEntityGeneration.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizeDefaultEntityGeneration.htm
deleted file mode 100644
index 578801a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_customizeDefaultEntityGeneration.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Customize Default Entity Generation</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Customize Default Entity Generation" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAEJDBE" name="CIAEJDBE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Customize Default Entity Generation</h1>
-<p><a id="sthref205" name="sthref205"></a>Use this page to specify the default information Dali will use when generating the entities from the database tables. You will be able to override this information for specific entities.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate Entities dialog." summary="This table describes the options on the Custom Default Entity Generation dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t10">Property</th>
-<th align="left" valign="bottom" id="r1c2-t10">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t10" headers="r1c1-t10">Table Mapping</td>
-<td align="left" headers="r2c1-t10 r1c2-t10">Use these options to define the table mapping information for the entity.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t10" headers="r1c1-t10">&nbsp;&nbsp;Key&nbsp;generator</td>
-<td align="left" headers="r3c1-t10 r1c2-t10">Select the generator used for this mapping.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t10" headers="r1c1-t10">&nbsp;&nbsp;Sequence&nbsp;name</td>
-<td align="left" headers="r4c1-t10 r1c2-t10">Enter a name for the sequence.
-<p>You can use <span class="bold">$table</span> and <span class="bold">$pk</span> as variables in the name. These will be replaced by the table name and primary key column name (respectively) when Dali generates a table mapping.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t10" headers="r1c1-t10">&nbsp;&nbsp;Entity&nbsp;access</td>
-<td align="left" headers="r5c1-t10 r1c2-t10">Specify the default entity access method: <span class="bold">Field</span> (default) or <span class="bold">Property</span>.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t10" headers="r1c1-t10">&nbsp;&nbsp;Associations&nbsp;fetch</td>
-<td align="left" headers="r6c1-t10 r1c2-t10">Specify the default fetch mode for associations: <span class="bold">Default</span>, as defined by the application (default), or <span class="bold">Lazy</span>.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t10" headers="r1c1-t10">&nbsp;&nbsp;Collection&nbsp;type</td>
-<td align="left" headers="r7c1-t10 r1c2-t10">Specify if the collection properties are a <span class="bold">Set</span> or <span class="bold">List</span>.
-<p>Enable the <span class="bold">Always generate optional JPA annotations and DDL parameters</span> option to have Dali include this information in the entity.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t10" headers="r1c1-t10">Domain Java Class</td>
-<td align="left" headers="r8c1-t10 r1c2-t10">Use these options to define the class information (<span class="bold">Package</span>, <span class="bold">Superclass</span>, and <span class="bold">Interfaces</span>) for the entity.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_details_orm.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_details_orm.htm
deleted file mode 100644
index 018594b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_details_orm.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Details view (for orm.xml)</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Details view (for orm.xml)" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACGDGHC" name="CACGDGHC"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Details view (for orm.xml)</h1>
-<p>The <span class="gui-object-title">JPA Details</span> view displays the default mapping and persistence information for the project and contains the following areas:</p>
-<ul>
-<li>
-<p><a href="reference013.htm#CACCACGH">General information</a></p>
-</li>
-<li>
-<p><a href="reference014.htm#CACEAGBG">Persistence Unit information</a></p>
-</li>
-<li>
-<p><a href="reference015.htm#CIAFGAIJ">Generators</a></p>
-</li>
-<li>
-<p><a href="reference016.htm#CIAIBAAJ">Queries</a></p>
-</li>
-<li>
-<p><a href="reference017.htm#CIADGCID">Converters</a> (when using EclipseLink)</p>
-</li>
-</ul>
-<p>These defaults can be overridden by the settings on a specific entity or mapping.</p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_eclipselink_mapping_file.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_eclipselink_mapping_file.htm
deleted file mode 100644
index 18a6305..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_eclipselink_mapping_file.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>New EclipseLink Mapping File dialog</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="New EclipseLink Mapping File dialog" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAEDEJF" name="CIAEDEJF"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>New EclipseLink Mapping File dialog</h1>
-<p>Specify the location and properties of the EclipseLink mapping file (<code>eclispelink-orm.xml</code>).</p>
-<div class="inftblhruleinformalmax">
-<table class="HRuleInformalMax" summary="This table lists the options on the New EclipseLink Mapping File dialog." dir="ltr" border="1" width="100%" frame="hsides" rules="rows" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t39">Property</th>
-<th align="left" valign="bottom" id="r1c2-t39">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t39" headers="r1c1-t39">Project</td>
-<td align="left" headers="r2c1-t39 r1c2-t39">Select the project in which to add the mapping file.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t39" headers="r1c1-t39">Source folder</td>
-<td align="left" headers="r3c1-t39 r1c2-t39">Click <span class="bold">Browse</span> and select the source file in which to add the mapping file. The default is <code>../</code><code><span class="codeinlineitalic">&lt;PROJECT&gt;</span></code><code>/src</code>.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t39" headers="r1c1-t39">File path</td>
-<td align="left" headers="r4c1-t39 r1c2-t39">Enter the filename and path of the mapping file. The default is <code>META-INF/eclipselink-orm.xml</code>.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t39" headers="r1c1-t39">Default access</td>
-<td align="left" headers="r5c1-t39 r1c2-t39">Select whether the entity's access to instance variables is <span class="bold">field</span>-based or <span class="bold">property</span>-based, as defined in the JPA specification.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t39" headers="r1c1-t39">Add to persistence unit</td>
-<td align="left" headers="r6c1-t39 r1c2-t39">Specify if this mapping file should be added to the persistence unit (<code>persistence.xml</code>).</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t39" headers="r1c1-t39">&nbsp;&nbsp;Persistence&nbsp;Unit</td>
-<td align="left" headers="r7c1-t39 r1c2-t39">Select the persistence unit in which to add the mapping file.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblhruleinformalmax" -->
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="reference003.htm#CIAJEIDJ">Mapping File</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_java_page.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_java_page.htm
deleted file mode 100644
index ffbf3fd..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_java_page.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Java Page</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Java Page" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGEBAA" name="CIAGEBAA"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Java Page</h1>
-<p>This table lists the properties available on the Java page of the <a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a>.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate DDL - Objects page." summary="This table describes the options on the Generate DDL - Objects page." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="25%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t3">Property</th>
-<th align="left" valign="bottom" id="r1c2-t3">Description</th>
-<th align="left" valign="bottom" id="r1c3-t3">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t3" headers="r1c1-t3">Source folders on build path</td>
-<td align="left" headers="r2c1-t3 r1c2-t3">Click <span class="bold">Add Folder</span> to select an existing Java source folder to add to this project.</td>
-<td align="left" headers="r2c1-t3 r1c3-t3">EclipseLink</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t3" headers="r1c1-t3">Default output folder</td>
-<td align="left" headers="r3c1-t3 r1c2-t3">Specify the location of the&nbsp;<code>.class</code> files.</td>
-<td align="left" headers="r3c1-t3 r1c3-t3">build\classes</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_jaxb_schema_wizard.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_jaxb_schema_wizard.htm
deleted file mode 100644
index e2eb5bf..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_jaxb_schema_wizard.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generate Schema from JAXB Classes Wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T16:18:13Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generate Schema from JAXB Classes Wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACGADFH" name="CACGADFH"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Generate Schema from JAXB Classes Wizard</h1>
-<p>Use the Generate Schema from JAXB Classes wizard create an XML schema (&nbsp;.xsd) for a set of JAXB mapped classes.</p>
-<p>The wizard consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_schema_from_classes_page.htm#CACHBEGJ">Generate Schema from Classes</a></p>
-</li>
-</ul>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_generating_schema_from_classes.htm#CIHHBJCJ">Generating Schema from Classes</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="#CACGADFH">Generate Schema from JAXB Classes Wizard</a> <!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_join_columns.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_join_columns.htm
deleted file mode 100644
index 8632cbf..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_join_columns.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Join Columns</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Join Columns" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAEGEEG" name="CIAEGEEG"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Join Columns</h1>
-<p><a id="sthref209" name="sthref209"></a>Use this dialog to specify the join columns of an association table.</p>
-<p>Click Add to specify the join columns between the two tables.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_jpa_facet.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_jpa_facet.htm
deleted file mode 100644
index 89e4ff8..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_jpa_facet.htm
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Facet page</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Facet page" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACIFDIF" name="CACIFDIF"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Facet page</h1>
-<p>This table lists the properties available on the JPA Facet page of the <a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a>.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate DDL - Objects page." summary="This table describes the options on the Generate DDL - Objects page." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="25%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t4">Property</th>
-<th align="left" valign="bottom" id="r1c2-t4">Description</th>
-<th align="left" valign="bottom" id="r1c3-t4">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t4" headers="r1c1-t4">Platform</td>
-<td align="left" headers="r2c1-t4 r1c2-t4">Vendor-specific JPA implementation.</td>
-<td align="left" headers="r2c1-t4 r1c3-t4">EclipseLink</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t4" headers="r1c1-t4"><a id="sthref191" name="sthref191"></a><a id="sthref192" name="sthref192"></a>JPA Implementation</td>
-<td align="left" headers="r3c1-t4 r1c2-t4">Select a specific JPA library configuration.
-<p>Click <span class="bold">Manage libraries</span> to create or update a user library.</p>
-<p>Click <span class="bold">Download libraries</span> to download a specific library configuration.</p>
-</td>
-<td align="left" headers="r3c1-t4 r1c3-t4"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t4" headers="r1c1-t4">&nbsp;&nbsp;Type</td>
-<td align="left" headers="r4c1-t4 r1c2-t4">Select <span class="bold">User Library</span> to select from the available user-defined or downloaded libraries.
-<p>If you select Disable, you must manually include the JPA implementation library on the project classpath.</p>
-</td>
-<td align="left" headers="r4c1-t4 r1c3-t4">User Library</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t4" headers="r1c1-t4">&nbsp;&nbsp;Include libraries with this application</td>
-<td align="left" headers="r5c1-t4 r1c2-t4">Specify if the selected libraries are included when deploying the application.</td>
-<td align="left" headers="r5c1-t4 r1c3-t4">Selected</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t4" headers="r1c1-t4">Connection</td>
-<td align="left" headers="r6c1-t4 r1c2-t4">Select the database connection to use with the project. Dali requires an active database connection to use and validate the persistent entities and mappings.
-<p>Click <span class="bold">Add connection</span> to create a new database connection.</p>
-</td>
-<td align="left" headers="r6c1-t4 r1c3-t4"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t4" headers="r1c1-t4">&nbsp;&nbsp;Override&nbsp;default schema from connection</td>
-<td align="left" headers="r7c1-t4 r1c2-t4">Select a schema other than the default one that is derived from the connection information. Use this option if the default schema cannot be used. For example, use this option when the deployment login differs from the design-time login.</td>
-<td align="left" headers="r7c1-t4 r1c3-t4">The value calculated by Dali.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t4" headers="r1c1-t4">JPA Implementation</td>
-<td align="left" headers="r8c1-t4 r1c2-t4">Select to use the <span class="bold">JPA implementation provided by the server at runtime</span>, or select a specific <span class="bold">implementation library</span> that contain the Java Persistence API (JPA) and entities to be added to the project's Java Build Path.
-<p>Click <span class="bold">Configure default JPA implementation library</span> to create a default library for the project or click <span class="bold">Configure user libraries</span> to define additional libraries.</p>
-<p>Depending on your JPA implementation (for example, Generic or EclipseLink), different options may be available when working with JPA projects.</p>
-</td>
-<td align="left" headers="r8c1-t4 r1c3-t4">Determined by server.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t4" headers="r1c1-t4"><a id="sthref193" name="sthref193"></a>Persistent class management</td>
-<td align="left" headers="r9c1-t4 r1c2-t4">Specify if Dali will <span class="bold">discover annotated classes automatically</span>, or if the <span class="bold">annotated classes must be listed in the persistence.xml</span> file.
-<p><span class="bold">Note</span>: To insure application portability, you should explicitly list the managed persistence classes that are included in the persistence unit.</p>
-</td>
-<td align="left" headers="r9c1-t4 r1c3-t4">Determined by server.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t4" headers="r1c1-t4"><a id="sthref194" name="sthref194"></a>Create <code>orm.xml</code></td>
-<td align="left" headers="r10c1-t4 r1c2-t4">Specify if Dali should create a default <code>orm.xml</code> file for your entity mappings and persistence unit defaults.</td>
-<td align="left" headers="r10c1-t4 r1c3-t4">Selected</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_mapping_general.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_mapping_general.htm
deleted file mode 100644
index 7b02bb6..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_mapping_general.htm
+++ /dev/null
@@ -1,272 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>General information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="General information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBHFIJ" name="CACBHFIJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>General information</h1>
-<p>This table lists the General properties available in the <span class="gui-object-title">Java Details view</span> for each mapping type.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view." summary="This table describes the options on the Persistence Properties view." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="21%" />
-<col width="*" />
-<col width="27%" />
-<col width="21%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t16">Property</th>
-<th align="left" valign="bottom" id="r1c2-t16">Description</th>
-<th align="left" valign="bottom" id="r1c3-t16">Default</th>
-<th align="left" valign="bottom" id="r1c4-t16">Available for Mapping Type</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t16" headers="r1c1-t16">Mapping Type Hyperlink</td>
-<td align="left" headers="r2c1-t16 r1c2-t16">Clicking the name of the mapping type, which is represented as a hyperlink, invokes the Mapping Type Selection dialog. Use this dialog to specify the type of attribute.</td>
-<td align="left" headers="r2c1-t16 r1c3-t16">Basic</td>
-<td align="left" headers="r2c1-t16 r1c4-t16">All mapping types</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t16" headers="r1c1-t16"><a id="CACGCBHB" name="CACGCBHB"></a>Column</td>
-<td align="left" headers="r3c1-t16 r1c2-t16"><a id="sthref231" name="sthref231"></a><a id="sthref232" name="sthref232"></a>The database column that contains the value for the attribute. This field corresponds to the <code>@Column</code> annotation.</td>
-<td align="left" headers="r3c1-t16 r1c3-t16">By default, the Column is assumed to be named identically to the attribute.</td>
-<td align="left" headers="r3c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a>, <a href="tasks019.htm#BABHIBII">Version mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Name</td>
-<td align="left" headers="r4c1-t16 r1c2-t16">Name of the database column.
-<p>This field corresponds to the <code>@Column</code> annotation.</p>
-</td>
-<td align="left" headers="r4c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r4c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Table</td>
-<td align="left" headers="r5c1-t16 r1c2-t16">Name of the database table that contains the selected column.</td>
-<td align="left" headers="r5c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r5c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Insertable</td>
-<td align="left" headers="r6c1-t16 r1c2-t16">Specifies if the column is always included in <code>SQL INSERT</code> statements.</td>
-<td align="left" headers="r6c1-t16 r1c3-t16">True</td>
-<td align="left" headers="r6c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Updatable</td>
-<td align="left" headers="r7c1-t16 r1c2-t16">Specifies if this column is always included in <code>SQL UPDATE</code> statements.</td>
-<td align="left" headers="r7c1-t16 r1c3-t16">True</td>
-<td align="left" headers="r7c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Unique</td>
-<td align="left" headers="r8c1-t16 r1c2-t16">Sets the <code>UNIQUE</code> constraint for the column.</td>
-<td align="left" headers="r8c1-t16 r1c3-t16">False</td>
-<td align="left" headers="r8c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Nullable</td>
-<td align="left" headers="r9c1-t16 r1c2-t16">Specifies if the column allows null values.</td>
-<td align="left" headers="r9c1-t16 r1c3-t16">True</td>
-<td align="left" headers="r9c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Length</td>
-<td align="left" headers="r10c1-t16 r1c2-t16">Sets the column length.</td>
-<td align="left" headers="r10c1-t16 r1c3-t16">255</td>
-<td align="left" headers="r10c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Precision</td>
-<td align="left" headers="r11c1-t16 r1c2-t16">Sets the precision for the column values.</td>
-<td align="left" headers="r11c1-t16 r1c3-t16">0</td>
-<td align="left" headers="r11c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r12c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Scale</td>
-<td align="left" headers="r12c1-t16 r1c2-t16">Sets the number of digits that appear to the right of the decimal point.</td>
-<td align="left" headers="r12c1-t16 r1c3-t16">0</td>
-<td align="left" headers="r12c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r13c1-t16" headers="r1c1-t16">&nbsp;&nbsp;Column Definition</td>
-<td align="left" headers="r13c1-t16 r1c2-t16">Define the DDL for a column. This is used when a table is being generated.</td>
-<td align="left" headers="r13c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r13c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks011.htm#BABCBHDF">Embedded mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r14c1-t16" headers="r1c1-t16"><a id="CACGGGHB" name="CACGGGHB"></a><a id="sthref233" name="sthref233"></a><a id="sthref234" name="sthref234"></a><a id="sthref235" name="sthref235"></a>Fetch Type</td>
-<td align="left" headers="r14c1-t16 r1c2-t16">Defines how data is loaded from the database:
-<ul>
-<li>
-<p>Eager &ndash; Data is loaded in before it is actually needed.</p>
-</li>
-<li>
-<p>Lazy &ndash; Data is loaded only when required by the transaction.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r14c1-t16 r1c3-t16">Eager</td>
-<td align="left" headers="r14c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a>, <a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a>, <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r15c1-t16" headers="r1c1-t16">Optional</td>
-<td align="left" headers="r15c1-t16 r1c2-t16">Specifies if this field is can be null.</td>
-<td align="left" headers="r15c1-t16 r1c3-t16">Yes</td>
-<td align="left" headers="r15c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a>, <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r16c1-t16" headers="r1c1-t16"><a id="CACBBIBI" name="CACBBIBI"></a><a id="sthref236" name="sthref236"></a>Lob</td>
-<td align="left" headers="r16c1-t16 r1c2-t16">Specify if the field is mapped to <code>java.sql.Clob</code> or <code>java.sql.Blob</code>.
-<p>This field corresponds to the <code>@Lob</code> annotation.</p>
-</td>
-<td align="left" headers="r16c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r16c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r17c1-t16" headers="r1c1-t16"><a id="CACEAJGD" name="CACEAJGD"></a><a id="sthref237" name="sthref237"></a><a id="sthref238" name="sthref238"></a><a id="sthref239" name="sthref239"></a>Temporal</td>
-<td align="left" headers="r17c1-t16 r1c2-t16">Specifies if this field is one of the following:
-<ul>
-<li>
-<p>Date &ndash; <code>java.sql.Date</code></p>
-</li>
-<li>
-<p>Time &ndash; <code>java.sql.Time</code></p>
-</li>
-<li>
-<p>Timestamp &ndash; <code>java.sql.Timestamp</code></p>
-</li>
-</ul>
-<p>This field corresponds to the <code>@Temporal</code> annotation.</p>
-</td>
-<td align="left" headers="r17c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r17c1-t16 r1c4-t16"><a href="tasks010.htm#BABBABCE">Basic mapping</a>, <a href="tasks013.htm#BABGCBHG">ID mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r18c1-t16" headers="r1c1-t16"><a id="sthref240" name="sthref240"></a><a id="sthref241" name="sthref241"></a><a id="sthref242" name="sthref242"></a>Enumerated</td>
-<td align="left" headers="r18c1-t16 r1c2-t16">Specify how to persist enumerated constraints if the <code>String</code> value suits your application requirements or to match an existing database schema.
-<ul>
-<li>
-<p>ordinal</p>
-</li>
-<li>
-<p><code>String</code></p>
-</li>
-</ul>
-<p>This field corresponds to the <code>@Enumerated</code> annotation.</p>
-</td>
-<td align="left" headers="r18c1-t16 r1c3-t16">Ordinal</td>
-<td align="left" headers="r18c1-t16 r1c4-t16"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r19c1-t16" headers="r1c1-t16">Target Entity</td>
-<td align="left" headers="r19c1-t16 r1c2-t16">The persistent entity to which the attribute is mapped.</td>
-<td align="left" headers="r19c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r19c1-t16 r1c4-t16"><a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a>, <a href="tasks016.htm#BABHGEBD">One-to-many mapping</a> <a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a>, <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r20c1-t16" headers="r1c1-t16"><a id="sthref243" name="sthref243"></a>ID</td>
-<td align="left" headers="r20c1-t16 r1c2-t16">Specify if the entity's ID is derived from the identity of another entity.</td>
-<td align="left" headers="r20c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r20c1-t16 r1c4-t16"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r21c1-t16" headers="r1c1-t16"><a id="CACJAIHB" name="CACJAIHB"></a>Cascade Type</td>
-<td align="left" headers="r21c1-t16 r1c2-t16">Specify which operations are propagated throughout the entity.
-<ul>
-<li>
-<p>All &ndash; All operations</p>
-</li>
-<li>
-<p>Persist</p>
-</li>
-<li>
-<p>Merge</p>
-</li>
-<li>
-<p>Move</p>
-</li>
-<li>
-<p>Remove</p>
-</li>
-<li>
-<p>Refresh</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r21c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r21c1-t16 r1c4-t16"><a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a>, <a href="tasks016.htm#BABHGEBD">One-to-many mapping</a>, <a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a>, <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r22c1-t16" headers="r1c1-t16"><a id="CACJDJJA" name="CACJDJJA"></a>Mapped By</td>
-<td align="left" headers="r22c1-t16 r1c2-t16">The field in the database table that "owns" the relationship. This field is required only on the non-owning side of the relationship.</td>
-<td align="left" headers="r22c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r22c1-t16 r1c4-t16"><a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a>, <a href="tasks016.htm#BABHGEBD">One-to-many mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r23c1-t16" headers="r1c1-t16"><a id="CACDADIH" name="CACDADIH"></a><a id="sthref244" name="sthref244"></a><a id="sthref245" name="sthref245"></a>Order By</td>
-<td align="left" headers="r23c1-t16 r1c2-t16">Specify the default order for objects returned from a query:
-<ul>
-<li>
-<p>No ordering</p>
-</li>
-<li>
-<p>Primary key</p>
-</li>
-<li>
-<p>Custom ordering</p>
-</li>
-</ul>
-<p>This field corresponds to the <code>@OrderBy</code> annotation.</p>
-</td>
-<td align="left" headers="r23c1-t16 r1c3-t16">Primary key</td>
-<td align="left" headers="r23c1-t16 r1c4-t16"><a href="tasks016.htm#BABHGEBD">One-to-many mapping</a>. <a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a>, <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r24c1-t16" headers="r1c1-t16">Attribute Overrides</td>
-<td align="left" headers="r24c1-t16 r1c2-t16">Overrides <span class="bold">Basic</span> mappings of a mapped superclass (for example, if the inherited column name is incompatible with a pre-existing data model, or invalid as a column name in your database).</td>
-<td align="left" headers="r24c1-t16 r1c3-t16"><br /></td>
-<td align="left" headers="r24c1-t16 r1c4-t16"><a href="tasks011.htm#BABCBHDF">Embedded mapping</a>
-<p><a href="tasks011.htm#BABCBHDF">Embedded mapping</a></p>
-<br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project.htm
deleted file mode 100644
index 2a576e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>New JPA Project page</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="New JPA Project page" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBJAGC" name="CACBJAGC"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>New JPA Project page</h1>
-<p>This table lists the properties available on the New JPA Project page of the <a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a>.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate DDL - Objects page." summary="This table describes the options on the Generate DDL - Objects page." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="25%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t2">Property</th>
-<th align="left" valign="bottom" id="r1c2-t2">Description</th>
-<th align="left" valign="bottom" id="r1c3-t2">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t2" headers="r1c1-t2">Project name</td>
-<td align="left" headers="r2c1-t2 r1c2-t2">Name of the Eclipse JPA project.</td>
-<td align="left" headers="r2c1-t2 r1c3-t2"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t2" headers="r1c1-t2">Project contents</td>
-<td align="left" headers="r3c1-t2 r1c2-t2">Location of the workspace in which to save the project.
-<p>Unselect The <span class="bold">Use Default</span> option and click <span class="bold">Browse</span> to select a new location.</p>
-</td>
-<td align="left" headers="r3c1-t2 r1c3-t2">Current workspace</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t2" headers="r1c1-t2">Target runtime</td>
-<td align="left" headers="r4c1-t2 r1c2-t2">Select a pre-defined target for the project.
-<p>Click <span class="bold">New</span> to create a new environment with the New Server Runtime wizard.</p>
-</td>
-<td align="left" headers="r4c1-t2 r1c3-t2"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t2" headers="r1c1-t2">Configurations</td>
-<td align="left" headers="r5c1-t2 r1c2-t2">Select a project configuration with pre-defined facets.
-<p>Select <span class="bold">&lt;custom&gt;</span> to manually select the facets for this project.</p>
-</td>
-<td align="left" headers="r5c1-t2 r1c3-t2">Utility JPA project with Java 5.0</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t2" headers="r1c1-t2">EAR membership</td>
-<td align="left" headers="r6c1-t2 r1c2-t2">Specify if this project should be included in an EAR file for deployment.
-<p>Select the <span class="bold">EAR Project Name</span>, or click <span class="bold">New</span> to create a new EAR project.</p>
-</td>
-<td align="left" headers="r6c1-t2 r1c3-t2"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t2" headers="r1c1-t2">Working sets</td>
-<td align="left" headers="r7c1-t2 r1c2-t2">Specify if this project should be included in an existing working set. The drop down field shows a list of previous selected working sets.
-<p>Select <span class="bold">Add project to working sets</span>, then select a working set in which to add this project.</p>
-</td>
-<td align="left" headers="r7c1-t2 r1c3-t2"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project_wizard.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project_wizard.htm
deleted file mode 100644
index b59320b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project_wizard.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Create New JPA Project wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Create New JPA Project wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBJGBG" name="CACBJGBG"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Create New JPA Project wizard</h1>
-<p><a id="sthref190" name="sthref190"></a>The Create New JPA Project wizard allows you to create a new Java project using JPA. The wizard consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_new_jpa_project.htm#CACBJAGC">New JPA Project page</a></p>
-</li>
-<li>
-<p><a href="ref_java_page.htm#CIAGEBAA">Java Page</a></p>
-</li>
-<li>
-<p><a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_general.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_general.htm
deleted file mode 100644
index ea6f099..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_general.htm
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>General</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="General" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIACIFGJ" name="CIACIFGJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>General</h1>
-<p>The following table lists properties available in the General page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div class="tblformal"><a id="sthref258" name="sthref258"></a><a id="sthref259" name="sthref259"></a>
-<p class="titleintable">Properties of the General Page</p>
-<table class="Formal" title="Properties of the General Page" summary="This table describes the properties of the persistence.xml&rsquo;s General page." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t24">Property</th>
-<th align="left" valign="bottom" id="r1c2-t24">Description</th>
-<th align="left" valign="bottom" id="r1c3-t24">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t24" headers="r1c1-t24">
-<p>Name</p>
-</td>
-<td align="left" headers="r2c1-t24 r1c2-t24">
-<p>Enter the name of the persistence unit.</p>
-</td>
-<td align="left" headers="r2c1-t24 r1c3-t24">
-<p>The project name.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t24" headers="r1c1-t24">
-<p>Persistence Provider</p>
-</td>
-<td align="left" headers="r3c1-t24 r1c2-t24">
-<p>Enter the name of the persistence provider.</p>
-</td>
-<td align="left" headers="r3c1-t24 r1c3-t24">
-<p>Determined by the server.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t24" headers="r1c1-t24">
-<p>Description</p>
-</td>
-<td align="left" headers="r4c1-t24 r1c2-t24">
-<p>Enter a description for this persistence unit. This is an optional property.</p>
-</td>
-<td align="left" headers="r4c1-t24 r1c3-t24"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t24" headers="r1c1-t24">
-<p>Managed Classes</p>
-</td>
-<td align="left" headers="r5c1-t24 r1c2-t24">
-<p>Add or remove the classes managed through the persistence unit.</p>
-</td>
-<td align="left" headers="r5c1-t24 r1c3-t24"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t24" headers="r1c1-t24">
-<p>Exclude Unlisted Classes</p>
-</td>
-<td align="left" headers="r6c1-t24 r1c2-t24">
-<p>Select to include all annotated entity classes in the root of the persistence unit.</p>
-</td>
-<td align="left" headers="r6c1-t24 r1c3-t24">
-<p>False</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t24" headers="r1c1-t24">
-<p>XML Mapping Files</p>
-</td>
-<td align="left" headers="r7c1-t24 r1c2-t24">
-<p>Add or remove the object/relational mapping XML files that define the classes to be managed by the persistence unit.</p>
-</td>
-<td align="left" headers="r7c1-t24 r1c3-t24">
-<p>Meta-INF\orm.xml</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t24" headers="r1c1-t24">
-<p>JAR Files</p>
-</td>
-<td align="left" headers="r8c1-t24 r1c2-t24"><br /></td>
-<td align="left" headers="r8c1-t24 r1c3-t24"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" --></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_map_view.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_map_view.htm
deleted file mode 100644
index 40d2673..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_map_view.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Details view (for attributes)</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Details view (for attributes)" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABIFBAF" name="BABIFBAF"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Details view (for attributes)</h1>
-<p><a id="sthref228" name="sthref228"></a><a id="sthref229" name="sthref229"></a><a id="sthref230" name="sthref230"></a>The <span class="gui-object-title">JPA Details</span> view displays the persistence information for the currently selected mapped attribute and contains the following areas:</p>
-<ul>
-<li>
-<p><a href="ref_mapping_general.htm#CACBHFIJ">General information</a></p>
-</li>
-<li>
-<p><a href="reference011.htm#CACBAEBC">Join Table Information</a></p>
-</li>
-<li>
-<p><a href="reference012.htm#CACFCEJC">Join Columns Information</a></p>
-</li>
-<li>
-<p><a href="ref_primary_key.htm#CACFCCAB">Primary Key Generation information</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_outline.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_outline.htm
deleted file mode 100644
index abdafce..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_outline.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Structure view</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Structure view" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABEGGFE" name="BABEGGFE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Structure view</h1>
-<p><a id="sthref255" name="sthref255"></a><a id="sthref256" name="sthref256"></a>The <span class="gui-object-title">JPA Structure</span> view displays an outline of the structure (its attributes and mappings) of the entity that is currently selected or opened in the editor. The structural elements shown in the outline are the entity and its fields.</p>
-<div class="figure"><a id="sthref257" name="sthref257"></a>
-<p class="titleinfigure">Sample JPA Structure View</p>
-<img src="img/persistence_outline_view.png" alt="Sample JPA Structure view for an entity." title="Sample JPA Structure view for an entity." /><br /></div>
-<!-- class="figure" -->
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm
deleted file mode 100644
index 0be8caf..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Development perspective</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Development perspective" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABIFBDB" name="BABIFBDB"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Development perspective</h1>
-<p><a id="sthref286" name="sthref286"></a><a id="sthref287" name="sthref287"></a>The <span class="bold">JPA Development perspective</span> defines the initial set and layout of views in the Workbench window when using Dali. By default, the <span class="gui-object-title">JPA Development perspective</span> includes the following views:</p>
-<ul>
-<li>
-<p><a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a></p>
-</li>
-<li>
-<p><a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></p>
-</li>
-<li>
-<p><a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a></p>
-</li>
-<li>
-<p><a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a></p>
-</li>
-</ul>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="../org.eclipse.platform.doc.user/concepts/concepts-4.htm">Perspectives</a></p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_prop_view.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_prop_view.htm
deleted file mode 100644
index 408e016..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_prop_view.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>JPA Details view (for entities)</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="JPA Details view (for entities)" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFAEBB" name="BABFAEBB"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>JPA Details view (for entities)</h1>
-<p><a id="sthref211" name="sthref211"></a><a id="sthref212" name="sthref212"></a><a id="sthref213" name="sthref213"></a>The <span class="gui-object-title">JPA Details</span> view displays the persistence information for the currently selected entity and contains the following tabs:</p>
-<ul>
-<li>
-<p><a href="reference006.htm#CACCAGGC">General information</a></p>
-</li>
-<li>
-<p><a href="reference007.htm#CACIJBGH">Attribute overrides</a></p>
-</li>
-<li>
-<p><a href="reference008.htm#CACBHIDA">Secondary table information</a></p>
-</li>
-<li>
-<p><a href="reference009.htm#CACFHGHE">Inheritance information</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_xmll_editor.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_xmll_editor.htm
deleted file mode 100644
index 0279000..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_xmll_editor.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>persistence.xml Editor</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="persistence.xml Editor" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIACCHID" name="CIACCHID"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>persistence.xml Editor</h1>
-<p>The persistence.xml Editor provides an interface that enables you to update the persistence.xml file. For projects using the EclipseLink platform, the perisistence.xml Editor consists of the following pages:</p>
-<ul>
-<li>
-<p><a href="ref_persistence_general.htm#CIACIFGJ">General</a></p>
-</li>
-<li>
-<p><a href="reference018.htm#CIAFFJIE">Connection</a></p>
-</li>
-<li>
-<p><a href="reference019.htm#CIAJAFEG">Customization</a></p>
-</li>
-<li>
-<p><a href="reference020.htm#CIABEDCH">Caching</a></p>
-</li>
-<li>
-<p><a href="reference021.htm#CIABGHHI">Logging</a></p>
-</li>
-<li>
-<p><a href="reference022.htm#CIAFJCHE">Options</a></p>
-</li>
-<li>
-<p><a href="reference023.htm#CIACCFCB">Schema Generation</a></p>
-</li>
-<li>
-<p><a href="reference024.htm#CIAHJDFF">Properties</a></p>
-</li>
-<li>
-<p><a href="reference025.htm#CIAHCJAH">Source</a></p>
-</li>
-</ul>
-<p>For projects using the Generic platform, the following subset of these pages is available:</p>
-<ul>
-<li>
-<p><a href="ref_persistence_general.htm#CIACIFGJ">General</a></p>
-</li>
-<li>
-<p><a href="reference018.htm#CIAFFJIE">Connection</a></p>
-</li>
-<li>
-<p><a href="reference024.htm#CIAHJDFF">Properties</a></p>
-</li>
-<li>
-<p><a href="reference025.htm#CIAHCJAH">Source</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_primary_key.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_primary_key.htm
deleted file mode 100644
index 78ae018..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_primary_key.htm
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Primary Key Generation information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Primary Key Generation information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACFCCAB" name="CACFCCAB"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Primary Key Generation information</h1>
-<p>This table lists the fields available in the <span class="gui-object-title">Primary Key Generation</span> area in JPA Details view for <a href="tasks013.htm#BABGCBHG">ID mapping</a> types.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Join Columns tab." summary="This table describes the options on the Join Columns tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="26%" />
-<col width="*" />
-<col width="34%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t19">Property</th>
-<th align="left" valign="bottom" id="r1c2-t19">Description</th>
-<th align="left" valign="bottom" id="r1c3-t19">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t19" headers="r1c1-t19"><a id="CACBAJBC" name="CACBAJBC"></a>Primary Key Generation</td>
-<td align="left" headers="r2c1-t19 r1c2-t19"><a id="sthref251" name="sthref251"></a><a id="sthref252" name="sthref252"></a>These fields define how the primary key is generated. These fields correspond to the <code>@GeneratedValue</code> annotation.</td>
-<td align="left" headers="r2c1-t19 r1c3-t19">Generated Value</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t19" headers="r1c1-t19"><a id="CACJEEEC" name="CACJEEEC"></a>&nbsp;&nbsp;&nbsp;Strategy</td>
-<td align="left" headers="r3c1-t19 r1c2-t19">
-<ul>
-<li>Auto</li>
-<li>
-<p>Identity &ndash; Values are assigned by the database's <span class="bold">Identity</span> column.</p>
-</li>
-<li>
-<p>Sequence &ndash; Values are assigned by a sequence table (see <a href="#CACFFHEH">Sequence&nbsp;Generator</a>).</p>
-</li>
-<li>
-<p>Table &ndash; Values are assigned by a database table (see <a href="#CACGFEAH">Table Generator</a>).</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r3c1-t19 r1c3-t19">Auto</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t19" headers="r1c1-t19"><a id="BABEEAHJ" name="BABEEAHJ"></a>&nbsp;&nbsp;Generator Name</td>
-<td align="left" headers="r4c1-t19 r1c2-t19">Unique name of the generated value.</td>
-<td align="left" headers="r4c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t19" headers="r1c1-t19"><a id="CACGFEAH" name="CACGFEAH"></a>Table Generator</td>
-<td align="left" headers="r5c1-t19 r1c2-t19">These fields define the database table used for generating the primary key and correspond to the <code>@TableGenerator</code> annotation.
-<p>These fields apply only when <span class="bold">Strategy</span>&nbsp;=&nbsp;<span class="bold">Table</span>.</p>
-</td>
-<td align="left" headers="r5c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Name</td>
-<td align="left" headers="r6c1-t19 r1c2-t19">Unique name of the generator.</td>
-<td align="left" headers="r6c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Table</td>
-<td align="left" headers="r7c1-t19 r1c2-t19">Database table that stores the generated ID values.</td>
-<td align="left" headers="r7c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Primary Key Column</td>
-<td align="left" headers="r8c1-t19 r1c2-t19">The column in the table generator's <span class="bold">Table</span> that contains the primary key.</td>
-<td align="left" headers="r8c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Value Column</td>
-<td align="left" headers="r9c1-t19 r1c2-t19">The column that stores the generated ID values.</td>
-<td align="left" headers="r9c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Primary Key Column Value</td>
-<td align="left" headers="r10c1-t19 r1c2-t19">The value for the <span class="bold">Primary Key Column</span> in the generator table.</td>
-<td align="left" headers="r10c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t19" headers="r1c1-t19"><a id="CACFFHEH" name="CACFFHEH"></a>Sequence&nbsp;Generator</td>
-<td align="left" headers="r11c1-t19 r1c2-t19"><a id="sthref253" name="sthref253"></a><a id="sthref254" name="sthref254"></a>These fields define the specific sequence used for generating the primary key and correspond to the <code>@SequenceGenerator</code> annotation.
-<p>These fields apply only when <span class="bold">Strategy</span> = <span class="bold">Sequence</span>.</p>
-</td>
-<td align="left" headers="r11c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r12c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Name</td>
-<td align="left" headers="r12c1-t19 r1c2-t19">Name of the sequence table to use for defining primary key values.</td>
-<td align="left" headers="r12c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r13c1-t19" headers="r1c1-t19">&nbsp;&nbsp;Sequence</td>
-<td align="left" headers="r13c1-t19 r1c2-t19">Unique name of the sequence.</td>
-<td align="left" headers="r13c1-t19 r1c3-t19"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks013.htm#BABGCBHG">ID mapping</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_project_properties.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_project_properties.htm
deleted file mode 100644
index 7a6aa85..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_project_properties.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Project Properties page &ndash; Java Persistence Options</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Project Properties page &ndash; Java Persistence Options" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABJHBCI" name="BABJHBCI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Project Properties page &ndash; Java Persistence Options</h1>
-<p><a id="sthref273" name="sthref273"></a><a id="sthref274" name="sthref274"></a>Use the <span class="gui-object-title">Errors/Warnings</span> options on the <span class="gui-object-title">Properties</span> page to specify the validation options to use with the project.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Persistence Properties page." summary="This table describes the options on the Persistence Properties page." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t36">Property</th>
-<th align="left" valign="bottom" id="r1c2-t36">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t36" headers="r1c1-t36">Enable project specific settings</td>
-<td align="left" headers="r2c1-t36 r1c2-t36">Select the to override the general settings for this project.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Project level</td>
-<td align="left" headers="r3c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Persistent unit level</td>
-<td align="left" headers="r4c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Type level</td>
-<td align="left" headers="r5c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Attribute level</td>
-<td align="left" headers="r6c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Schema mapping</td>
-<td align="left" headers="r7c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Implied&nbsp;attributes</td>
-<td align="left" headers="r8c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Implied&nbsp;associations</td>
-<td align="left" headers="r9c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Inheritance</td>
-<td align="left" headers="r10c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t36" headers="r1c1-t36">&nbsp;&nbsp;Queries&nbsp;and&nbsp;generators</td>
-<td align="left" headers="r11c1-t36 r1c2-t36">Select the warning level to report.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks026.htm#BABDBCBI">Modifying persistent project properties</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_schema_from_classes_page.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_schema_from_classes_page.htm
deleted file mode 100644
index 46ff81e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_schema_from_classes_page.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generate Schema from Classes</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T16:18:13Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generate Schema from Classes" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACHBEGJ" name="CACHBEGJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Generate Schema from Classes</h1>
-<p>Use this dialog to select the classes from which to generate a schema. You can select an entire project, a package, or specific classes.</p>
-</div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_selectTables.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_selectTables.htm
deleted file mode 100644
index ea7d3c1..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_selectTables.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Select Tables</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Select Tables" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAHCGEE" name="CIAHCGEE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Select Tables</h1>
-<p><a id="sthref201" name="sthref201"></a><a id="sthref202" name="sthref202"></a><a id="sthref203" name="sthref203"></a>Use the <span class="gui-object-title">Select Tables</span> dialog to specify the database connection and tables from which to create entities.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate Entities dialog." summary="This table describes the options on the Generate Entities dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t8">Property</th>
-<th align="left" valign="bottom" id="r1c2-t8">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t8" headers="r1c1-t8">Connection</td>
-<td align="left" headers="r2c1-t8 r1c2-t8">Select a database connection or click <span class="bold">Add Connection</span> to create a new connection.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t8" headers="r1c1-t8">Schema</td>
-<td align="left" headers="r3c1-t8 r1c2-t8">Select the database schema from which to select tables.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t8" headers="r1c1-t8">Tables</td>
-<td align="left" headers="r4c1-t8 r1c2-t8">Select the tables from which to create Java persistent entities. The tables shown are determined by the database connection and schema selections.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t8" headers="r1c1-t8">Synchronize Classes listed in persistence.xml</td>
-<td align="left" headers="r5c1-t8 r1c2-t8">Specify if Dali should update the <code>persistence.xml</code> file to include the generated classes.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_select_cascade_dialog.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_select_cascade_dialog.htm
deleted file mode 100644
index 317bf1e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_select_cascade_dialog.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Select Cascade dialog</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Select Cascade dialog" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFDGIJ" name="CIAFDGIJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Select Cascade dialog</h1>
-<p>Specify which operations are propagated throughout the association: All, Persist, Merge, Remove, or Refresh.</p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/ref_tableAssociations.htm b/jpa/plugins/org.eclipse.jpt.doc.user/ref_tableAssociations.htm
deleted file mode 100644
index 507ef3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/ref_tableAssociations.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Table Associations</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Table Associations" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIACDICB" name="CIACDICB"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Table Associations</h1>
-<p><a id="sthref204" name="sthref204"></a>Use this page to create or edit the association between the database table and entity.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Generate Entities dialog." summary="This table describes the options on the Table Associations dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t9">Property</th>
-<th align="left" valign="bottom" id="r1c2-t9">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t9" headers="r1c1-t9">Table associations</td>
-<td align="left" headers="r2c1-t9 r1c2-t9">Select an association to modify or click to create a new table association with the <a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a> wizard.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t9" headers="r1c1-t9">Generate this association</td>
-<td align="left" headers="r3c1-t9 r1c2-t9">Specify if Dali should create the selected association. If enabled, you can specify the Cardinality and Join table for the table association.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t9" headers="r1c1-t9">Generate a reference to <span class="italic">&lt;ROW&gt;</span> in <span class="italic">&lt;TABLE&gt;</span></td>
-<td align="left" headers="r4c1-t9 r1c2-t9">Specify if the entity should contain a reference to the specified table.
-<p>If enabled, you can also enter the <span class="bold">Property</span> name and select the <span class="bold">Cascade</span> method (all, persist, merge, remove, or refresh) for the reference.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference.htm
deleted file mode 100644
index edb027d..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Reference</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Reference" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref189" name="sthref189"></a></p>
-<h1>Reference</h1>
-<p>This section includes detailed help information for each of the following elements in the Dali OR Mapping Tool:</p>
-<ul>
-<li>
-<p><a href="reference001.htm#CACJJJJH">Wizards</a></p>
-</li>
-<li>
-<p><a href="reference005.htm#CACDJIIG">Property pages</a></p>
-</li>
-<li>
-<p><a href="reference026.htm#CACDEIEE">Preferences</a></p>
-</li>
-<li>
-<p><a href="reference028.htm#CACGEJDA">Dialogs</a></p>
-</li>
-<li>
-<p><a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a></p>
-</li>
-<li>
-<p><a href="reference030.htm#CACDHCIA">Icons and buttons</a></p>
-</li>
-<li>
-<p><a href="reference033.htm#CACBBDIB">Dali Developer Documentation</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference001.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference001.htm
deleted file mode 100644
index be40229..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference001.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Wizards</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T19:33:3Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Wizards" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACJJJJH" name="CACJJJJH"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Wizards</h1>
-<p>This section includes information on the following wizards:</p>
-<ul>
-<li>
-<p><a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a></p>
-</li>
-<li>
-<p><a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a></p>
-</li>
-<li>
-<p><a href="reference004.htm#CIAGHCGA">Generate Tables from Entities Wizard</a></p>
-</li>
-<li>
-<p><a href="ref_create_custom_entities_wizard.htm#CIAGBFJE">Generate Entities from Tables Wizard</a></p>
-</li>
-<li>
-<p><a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a></p>
-</li>
-<li>
-<p><a href="ref_jaxb_schema_wizard.htm#CACGADFH">Generate Schema from JAXB Classes Wizard</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference002.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference002.htm
deleted file mode 100644
index a636406..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference002.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Mapping File Wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Mapping File Wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAIJCCE" name="CIAIJCCE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Mapping File Wizard</h1>
-<p>The Mapping File wizard enables you to add an <code>orm.xml</code> file to a JPA project if no object map exists at the location specified. For example, if you cleared the <span class="bold">Create orm.xml</span> option on the <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a>, you can later add the <code>orm.xml</code> file to the src file of the project using this wizard.</p>
-<p>The <a href="#CIAIJCCE">Mapping File Wizard</a> consists of the Mapping File page.</p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference003.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference003.htm
deleted file mode 100644
index 80773ce..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference003.htm
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Mapping File</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Mapping File" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAJEIDJ" name="CIAJEIDJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Mapping File</h1>
-<p>This table lists the properties of the <a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>.</p>
-<div class="tblformal"><a id="sthref199" name="sthref199"></a><a id="sthref200" name="sthref200"></a>
-<p class="titleintable">Mapping File Wizard Properties</p>
-<table class="Formal" title="Mapping File Wizard Properties" summary="This table lists the properties of the Mapping File Wizard." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t7">Property</th>
-<th align="left" valign="bottom" id="r1c2-t7">Description</th>
-<th align="left" valign="bottom" id="r1c3-t7">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t7" headers="r1c1-t7">
-<p>Project</p>
-</td>
-<td align="left" headers="r2c1-t7 r1c2-t7">
-<p>The name of the JPA project.</p>
-</td>
-<td align="left" headers="r2c1-t7 r1c3-t7">
-<p>Selected.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t7" headers="r1c1-t7">
-<p>Source folder</p>
-</td>
-<td align="left" headers="r3c1-t7 r1c2-t7">
-<p>The location of the project's src folder. If needed, click <span class="bold">Browse</span> to point the wizard to the src file's location.</p>
-</td>
-<td align="left" headers="r3c1-t7 r1c3-t7">
-<p>Selected.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t7" headers="r1c1-t7">
-<p>File Path</p>
-</td>
-<td align="left" headers="r4c1-t7 r1c2-t7">
-<p>The location for the new <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r4c1-t7 r1c3-t7">
-<p>Selected.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t7" headers="r1c1-t7">
-<p>Default Access</p>
-</td>
-<td align="left" headers="r5c1-t7 r1c2-t7">
-<p>Select whether the access to the entity is field-based or property-based, as defined in JPA specification.</p>
-<ul>
-<li>
-<p>None &ndash; No access type specified.</p>
-</li>
-<li>
-<p><span class="bold">Property-based</span> &ndash; Persistent state accessed through the property accessor methods. The property accessor methods must be <span class="bold">public</span> or <span class="bold">private</span>.</p>
-</li>
-<li>
-<p><span class="bold">Field-based</span> &ndash; Instance variables are accessed directly. All non-transient instance variables are persistent.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t7 r1c3-t7">
-<p>None</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t7" headers="r1c1-t7">
-<p>Add to persistence unit</p>
-</td>
-<td align="left" headers="r6c1-t7 r1c2-t7">
-<p>Designates the persistence unit for this object map file.</p>
-</td>
-<td align="left" headers="r6c1-t7 r1c3-t7">
-<p>Selected.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a><br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a><br /></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference004.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference004.htm
deleted file mode 100644
index 8a00cd0..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference004.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generate Tables from Entities Wizard</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:46Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generate Tables from Entities Wizard" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAGHCGA" name="CIAGHCGA"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Generate Tables from Entities Wizard</h1>
-<p>Use the Generate DDL from Entities Wizard to quickly create DDL scripts from your persistent entities. Dali automatically creates the necessary primary and foreign keys, based on the entity mappings.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks021.htm#BABBAGFI">Generating entities from tables</a><br />
-<a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a><br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a><br /></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference005.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference005.htm
deleted file mode 100644
index a11400d..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference005.htm
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Property pages</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Property pages" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACDJIIG" name="CACDJIIG"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Property pages</h1>
-<p>This section includes information on the following:</p>
-<ul>
-<li>
-<p><a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></p>
-</li>
-<li>
-<p><a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a></p>
-</li>
-<li>
-<p><a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a></p>
-</li>
-<li>
-<p><a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference006.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference006.htm
deleted file mode 100644
index 31bc24d..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference006.htm
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>General information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="General information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACCAGGC" name="CACCAGGC"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>General information</h1>
-<p>This table lists the General information fields available in the <span class="gui-object-title">JPA Details</span> view for each entity type.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="16%" />
-<col width="*" />
-<col width="17%" />
-<col width="25%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t13">Property</th>
-<th align="left" valign="bottom" id="r1c2-t13">Description</th>
-<th align="left" valign="bottom" id="r1c3-t13">Default</th>
-<th align="left" valign="bottom" id="r1c4-t13">Available for Entity&nbsp;Type</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t13" headers="r1c1-t13">Mapping Type Hyperlink</td>
-<td align="left" headers="r2c1-t13 r1c2-t13">Clicking the name of the mapping type, which is represented as a hyperlink, invokes the Mapping Type Selection dialog. Use this dialog to specify the type of entity: Mapped Superclass, Embeddable or the default mapping type.</td>
-<td align="left" headers="r2c1-t13 r1c3-t13">Entity</td>
-<td align="left" headers="r2c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a>, <a href="tasks007.htm#BABFEICE">Embeddable</a>, and <a href="tasks008.htm#BABDAGCI">Mapped superclass</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t13" headers="r1c1-t13">Table</td>
-<td align="left" headers="r3c1-t13 r1c2-t13">The default database table information for this entity. These fields can be overridden by the information in the <a href="reference007.htm#CACIJBGH">Attribute overrides</a> area.</td>
-<td align="left" headers="r3c1-t13 r1c3-t13"><br /></td>
-<td align="left" headers="r3c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t13" headers="r1c1-t13">&nbsp;&nbsp;Name</td>
-<td align="left" headers="r4c1-t13 r1c2-t13">The name of the primary database table associated with the entity.</td>
-<td align="left" headers="r4c1-t13 r1c3-t13"><br /></td>
-<td align="left" headers="r4c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t13" headers="r1c1-t13">&nbsp;&nbsp;Catalog</td>
-<td align="left" headers="r5c1-t13 r1c2-t13">The database catalog that contains the <span class="bold">Table</span>.</td>
-<td align="left" headers="r5c1-t13 r1c3-t13">As defined in <code>orm.xml</code>.</td>
-<td align="left" headers="r5c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t13" headers="r1c1-t13">&nbsp;&nbsp;Schema</td>
-<td align="left" headers="r6c1-t13 r1c2-t13">The database schema that contains the <span class="bold">Table</span>.</td>
-<td align="left" headers="r6c1-t13 r1c3-t13">As defined in <code>orm.xml</code>.</td>
-<td align="left" headers="r6c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t13" headers="r1c1-t13">Name</td>
-<td align="left" headers="r7c1-t13 r1c2-t13">The name of this entity. By default, the class name is used as the entity name.</td>
-<td align="left" headers="r7c1-t13 r1c3-t13"><br /></td>
-<td align="left" headers="r7c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t13" headers="r1c1-t13">Access</td>
-<td align="left" headers="r8c1-t13 r1c2-t13">The access method for this entity.</td>
-<td align="left" headers="r8c1-t13 r1c3-t13">Field</td>
-<td align="left" headers="r8c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t13" headers="r1c1-t13">Primary&nbsp;key&nbsp;class</td>
-<td align="left" headers="r9c1-t13 r1c2-t13">Click <span class="bold">Browse</span> and select the primary key for the entity. Clicking the field name, which is represented as a hyperlink, allows you to create a new class.</td>
-<td align="left" headers="r9c1-t13 r1c3-t13"><br /></td>
-<td align="left" headers="r9c1-t13 r1c4-t13"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t13" headers="r1c1-t13">Cachable</td>
-<td align="left" headers="r10c1-t13 r1c2-t13">Specifies if the entity is cachable.
-<p>This field corresponds to the <code>@Cachable</code> annotation.</p>
-</td>
-<td align="left" headers="r10c1-t13 r1c3-t13">@Cachable(false)</td>
-<td align="left" headers="r10c1-t13 r1c4-t13"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference007.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference007.htm
deleted file mode 100644
index 3100acd..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference007.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Attribute overrides</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Attribute overrides" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACIJBGH" name="CACIJBGH"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Attribute overrides</h1>
-<p><a id="sthref214" name="sthref214"></a><a id="sthref215" name="sthref215"></a><a id="sthref216" name="sthref216"></a>Use the <span class="gui-object-title">Attribute Overrides</span> area in the <span class="gui-object-title">JPA Details</span> view to override the default settings specified in the <a href="reference006.htm#CACCAGGC">General information</a> area of an attribute. Attribute overrides generally override/configure attributes that are inherited or embedded.</p>
-<p>This table lists the Attribute override fields available in the <span class="gui-object-title">JPA Details</span> view for each entity type.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="16%" />
-<col width="*" />
-<col width="17%" />
-<col width="25%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t14">Property</th>
-<th align="left" valign="bottom" id="r1c2-t14">Description</th>
-<th align="left" valign="bottom" id="r1c3-t14">Default</th>
-<th align="left" valign="bottom" id="r1c4-t14">Available for Entity&nbsp;Type</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t14" headers="r1c1-t14">Attribute Overrides</td>
-<td align="left" headers="r2c1-t14 r1c2-t14">Specify a property or field to be overridden (from the default mappings). Select <span class="bold">Override Default</span>.</td>
-<td align="left" headers="r2c1-t14 r1c3-t14"><br /></td>
-<td align="left" headers="r2c1-t14 r1c4-t14"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t14" headers="r1c1-t14">Join Columns</td>
-<td align="left" headers="r3c1-t14 r1c2-t14">Specify the joining strategy. Select <span class="bold">Override Default</span> to add a different joining strategy.</td>
-<td align="left" headers="r3c1-t14 r1c3-t14">Join columns</td>
-<td align="left" headers="r3c1-t14 r1c4-t14"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="reference006.htm#CACCAGGC">General information</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference008.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference008.htm
deleted file mode 100644
index edd0f9f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference008.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Secondary table information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Secondary table information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBHIDA" name="CACBHIDA"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Secondary table information</h1>
-<p><a id="sthref217" name="sthref217"></a><a id="sthref218" name="sthref218"></a><a id="sthref219" name="sthref219"></a><a id="sthref220" name="sthref220"></a>Use the <span class="gui-object-title">Secondary Tables</span> area in the <span class="gui-object-title">JPA Details</span> view to associate additional tables with an entity. Use this area if the data associated with an entity is spread across multiple tables.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference009.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference009.htm
deleted file mode 100644
index b905385..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference009.htm
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Inheritance information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Inheritance information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACFHGHE" name="CACFHGHE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Inheritance information</h1>
-<p><a id="sthref221" name="sthref221"></a><a id="sthref222" name="sthref222"></a>This table lists the fields available on the <span class="gui-object-title">Inheritance</span> area in the <span class="gui-object-title">JPA Details</span> view for each entity type.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, Inheritance tab." summary="This table describes the options on the Persistence Properties view, Inheritance tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="23%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t15">Property</th>
-<th align="left" valign="bottom" id="r1c2-t15">Description</th>
-<th align="left" valign="bottom" id="r1c3-t15">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t15" headers="r1c1-t15">Strategy</td>
-<td align="left" headers="r2c1-t15 r1c2-t15">Specify the strategy to use when mapping a class or class hierarchy:
-<ul>
-<li>
-<p>Single table &ndash; All classes in the hierarchy are mapped to a single table.</p>
-</li>
-<li>
-<p>Joined &ndash; The root of the hierarchy is mapped to a single table; each child maps to its own table.</p>
-</li>
-<li>
-<p>Table per class &ndash; Each class is mapped to a separate table.</p>
-</li>
-</ul>
-<p>This field corresponds to the <code>@Inheritance</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t15 r1c3-t15">Single table</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t15" headers="r1c1-t15"><a id="sthref223" name="sthref223"></a><a id="sthref224" name="sthref224"></a>Discriminator Value</td>
-<td align="left" headers="r3c1-t15 r1c2-t15">Specify the discriminator value used to differentiate an entity in this inheritance hierarchy. The value must conform to the specified <span class="bold">Discriminator Type</span>.</td>
-<td align="left" headers="r3c1-t15 r1c3-t15"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t15" headers="r1c1-t15"><a id="sthref225" name="sthref225"></a><a id="sthref226" name="sthref226"></a>Discriminator Column</td>
-<td align="left" headers="r4c1-t15 r1c2-t15">These fields are available when using a <span class="bold">Single</span> or <span class="bold">Joined</span> inheritance strategy.
-<p>This field corresponds to the <code>@DiscriminatorColumn</code> annotation.</p>
-<p>Use the <span class="bold">Details</span> area to define the <span class="bold">Length</span> and <span class="bold">Column definition</span> of this Discriminator Column.</p>
-</td>
-<td align="left" headers="r4c1-t15 r1c3-t15"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t15" headers="r1c1-t15">&nbsp;&nbsp;Name</td>
-<td align="left" headers="r5c1-t15 r1c2-t15">Name of the discriminator column</td>
-<td align="left" headers="r5c1-t15 r1c3-t15"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t15" headers="r1c1-t15">&nbsp;&nbsp;Type</td>
-<td align="left" headers="r6c1-t15 r1c2-t15">Set this field to set the discriminator type to <code>Char</code> or <code>Integer</code> (instead of its default: <code>String</code>). The <span class="bold">Discriminator Value</span> must conform to this type.</td>
-<td align="left" headers="r6c1-t15 r1c3-t15">String</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t15" headers="r1c1-t15">Primary Key Join Columns</td>
-<td align="left" headers="r7c1-t15 r1c2-t15">Use to override the default primary key join columns. Select <span class="bold">Override Default</span>, then click <span class="bold">Add</span> to select new Join Column.
-<p>This field corresponds with @PrimaryKeyJoinColumn annotation.</p>
-</td>
-<td align="left" headers="r7c1-t15 r1c3-t15"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference010.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference010.htm
deleted file mode 100644
index f4b3e9a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference010.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Queries</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Queries" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref227" name="sthref227"></a>
-<h1>Queries</h1>
-<p>Use the queries area of the JPA Details view to create named queries and named native queries. Refer to <a href="tasks009.htm#BABIGBGG">"Creating Named Queries"</a> for additional information.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks009.htm#BABIGBGG">Creating Named Queries</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference011.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference011.htm
deleted file mode 100644
index 25cdce9..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference011.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Join Table Information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Join Table Information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBAEBC" name="CACBAEBC"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Join Table Information</h1>
-<p>Use area to specify a mapped column for joining an entity association. By default, the mapping is assumed to have a single join.</p>
-<p>This table lists the fields available on the <span class="gui-object-title">Join Table</span> area in <span class="gui-object-title">the JPA Details</span> view for <a href="tasks016.htm#BABHGEBD">One-to-many mapping</a> and <a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a> mapping types.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Join Table tab." summary="This table describes the options on the Join Table tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="26%" />
-<col width="*" />
-<col width="34%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t17">Property</th>
-<th align="left" valign="bottom" id="r1c2-t17">Description</th>
-<th align="left" valign="bottom" id="r1c3-t17">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t17" headers="r1c1-t17">Name</td>
-<td align="left" headers="r2c1-t17 r1c2-t17">Name of the join table that contains the foreign key column.</td>
-<td align="left" headers="r2c1-t17 r1c3-t17">By default, the name is assumed to be the primary tables associated with the entities concatenated with an underscore.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t17" headers="r1c1-t17"><a id="CACBBDFG" name="CACBBDFG"></a>Join Columns</td>
-<td align="left" headers="r3c1-t17 r1c2-t17"><a id="sthref246" name="sthref246"></a><a id="sthref247" name="sthref247"></a>Specify a mapped column for joining an entity association. This field corresponds to the <code>@JoinColum</code> attribute.
-<p>Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</p>
-</td>
-<td align="left" headers="r3c1-t17 r1c3-t17">By default, the mapping is assumed to have a single join.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t17" headers="r1c1-t17">Inverse Join Columns</td>
-<td align="left" headers="r4c1-t17 r1c2-t17">Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</td>
-<td align="left" headers="r4c1-t17 r1c3-t17"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="reference029.htm#CACCGEHC">Edit Join Columns Dialog</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference012.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference012.htm
deleted file mode 100644
index 6199077..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference012.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Join Columns Information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:47Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Join Columns Information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACFCEJC" name="CACFCEJC"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Join Columns Information</h1>
-<p><a id="sthref248" name="sthref248"></a>This table lists the fields available in the <span class="gui-object-title">Join Table</span> area in <span class="gui-object-title">JPA Details</span> view for <a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a> and <a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a> mapping types.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Join Columns tab." summary="This table describes the options on the Join Columns tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="26%" />
-<col width="*" />
-<col width="34%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t18">Property</th>
-<th align="left" valign="bottom" id="r1c2-t18">Description</th>
-<th align="left" valign="bottom" id="r1c3-t18">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t18" headers="r1c1-t18">Join Column</td>
-<td align="left" headers="r2c1-t18 r1c2-t18"><a id="sthref249" name="sthref249"></a><a id="sthref250" name="sthref250"></a>Specify a mapped column for joining an entity association. This field corresponds to the <code>@JoinColum</code> attribute.
-<p>Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</p>
-</td>
-<td align="left" headers="r2c1-t18 r1c3-t18">By default, the mapping is assumed to have a single join.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="reference029.htm#CACCGEHC">Edit Join Columns Dialog</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference013.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference013.htm
deleted file mode 100644
index 0b08922..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference013.htm
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>General information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="General information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACCACGH" name="CACCACGH"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>General information</h1>
-<p>This table lists the General information fields available in the <span class="gui-object-title">JPA Details</span> view for each entity type.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="21%" />
-<col width="*" />
-<col width="22%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t20">Property</th>
-<th align="left" valign="bottom" id="r1c2-t20">Description</th>
-<th align="left" valign="bottom" id="r1c3-t20">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t20" headers="r1c1-t20">Package</td>
-<td align="left" headers="r2c1-t20 r1c2-t20">The Java package that contains the persistent entities. Click <span class="bold">Browse</span> and select the package</td>
-<td align="left" headers="r2c1-t20 r1c3-t20"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t20" headers="r1c1-t20">Schema</td>
-<td align="left" headers="r3c1-t20 r1c2-t20">The database schema that contains the <span class="bold">Table</span>.
-<p>This field corresponds to the <code>&lt;schema&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r3c1-t20 r1c3-t20"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t20" headers="r1c1-t20">Catalog</td>
-<td align="left" headers="r4c1-t20 r1c2-t20">The database catalog that contains the <span class="bold">Table</span>.
-<p>This field corresponds to the <code>&lt;catalog&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r4c1-t20 r1c3-t20"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t20" headers="r1c1-t20">Access</td>
-<td align="left" headers="r5c1-t20 r1c2-t20">Specify the default access method for the variables in the project:
-<ul>
-<li>
-<p>Property</p>
-</li>
-<li>
-<p>Field</p>
-</li>
-</ul>
-<p>This field corresponds to the <code>&lt;access&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r5c1-t20 r1c3-t20"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference014.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference014.htm
deleted file mode 100644
index e824d3f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference014.htm
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Persistence Unit information</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Persistence Unit information" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACEAGBG" name="CACEAGBG"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Persistence Unit information</h1>
-<p>This table lists the Persistence Unit information fields available in the <span class="gui-object-title">JPA Details</span> view for each entity type. These fields are contained in the <code>&lt;persistence-unit-metadata&gt;</code> element in the <code>orm.xml</code> file.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="21%" />
-<col width="*" />
-<col width="22%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t21">Property</th>
-<th align="left" valign="bottom" id="r1c2-t21">Description</th>
-<th align="left" valign="bottom" id="r1c3-t21">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t21" headers="r1c1-t21">XML Mapping Data Complete</td>
-<td align="left" headers="r2c1-t21 r1c2-t21">Specifies that the Java classes in this persistence unit are fully specified by their metadata. Any annotations will be ignored.
-<p>This field corresponds to the <code>&lt;xml-mapping-metadata-complete&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r2c1-t21 r1c3-t21"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t21" headers="r1c1-t21">Cascade Persist</td>
-<td align="left" headers="r3c1-t21 r1c2-t21">Adds cascade-persist to the set of cascade options in entity relationships of the persistence unit.
-<p>This field corresponds to the <code>&lt;cascade-persist&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r3c1-t21 r1c3-t21"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t21" headers="r1c1-t21">Schema</td>
-<td align="left" headers="r4c1-t21 r1c2-t21">The database schema that contains the <span class="bold">Table</span>.
-<p>This field corresponds to the <code>&lt;schema&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r4c1-t21 r1c3-t21"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t21" headers="r1c1-t21">Catalog</td>
-<td align="left" headers="r5c1-t21 r1c2-t21">The database catalog that contains the <span class="bold">Table</span>.
-<p>This field corresponds to the <code>&lt;catalog&gt;</code> element in the <code>orm.xml</code> file.</p>
-</td>
-<td align="left" headers="r5c1-t21 r1c3-t21"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t21" headers="r1c1-t21">Access</td>
-<td align="left" headers="r6c1-t21 r1c2-t21">Specify how the entity its access instance variables.
-<ul>
-<li>
-<p>Property &ndash; Persistent state accessed through the property accessor methods. The property accessor methods must be <span class="bold">public</span> or <span class="bold">private</span>.</p>
-</li>
-<li>
-<p>Field &ndash; Instance variables are accessed directly. All non-transient instance variables are persistent.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r6c1-t21 r1c3-t21">Property</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference015.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference015.htm
deleted file mode 100644
index dd0c88a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference015.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generators</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generators" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFGAIJ" name="CIAFGAIJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Generators</h1>
-<p>This table lists the Generator information fields available in the <span class="gui-object-title">JPA Details</span> view for the <code>orm.xml</code> file.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="21%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t22">Property</th>
-<th align="left" valign="bottom" id="r1c2-t22">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t22" headers="r1c1-t22">Generator</td>
-<td align="left" headers="r2c1-t22 r1c2-t22">Displays the existing Sequence and Table generators.
-<p>Click <span class="bold">Add Sequence</span> or <span class="bold">Add Table</span> to add a new generator.</p>
-<p>For sequence generators, you must complete the following fields:</p>
-<ul>
-<li>
-<p>Name</p>
-</li>
-<li>
-<p>Sequence</p>
-</li>
-<li>
-<p>Schema</p>
-</li>
-<li>
-<p>Catalog</p>
-</li>
-<li>
-<p>Allocation size</p>
-</li>
-<li>
-<p>Initial value</p>
-</li>
-</ul>
-<p>For table generators, you must complete the following fields:</p>
-<ul>
-<li>
-<p>Name</p>
-</li>
-<li>
-<p>Table</p>
-</li>
-<li>
-<p>Schema</p>
-</li>
-<li>
-<p>Catalog</p>
-</li>
-<li>
-<p>Primary key column</p>
-</li>
-<li>
-<p>Value column</p>
-</li>
-<li>
-<p>Primary key column value</p>
-</li>
-<li>
-<p>Allocation size</p>
-</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference016.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference016.htm
deleted file mode 100644
index 227a2b3..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference016.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Queries</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Queries" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAIBAAJ" name="CIAIBAAJ"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Queries</h1>
-<p>This table lists the Query information fields available in the <span class="gui-object-title">JPA Details</span> view for the <code>orm.xml</code> file.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, General tab." summary="This table describes the options on the Persistence Properties view, General tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="21%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t23">Property</th>
-<th align="left" valign="bottom" id="r1c2-t23">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t23" headers="r1c1-t23">Queries</td>
-<td align="left" headers="r2c1-t23 r1c2-t23">Displays the existing Named and Native queries.
-<p>Click <span class="bold">Add</span> to add a named query, or <span class="bold">Add Native</span> for a native query.</p>
-<p>For named queries, enter the query in the Query field.</p>
-<p>For native queries, select a result class, then enter the query in the Query field.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t23" headers="r1c1-t23">Query Hints</td>
-<td align="left" headers="r3c1-t23 r1c2-t23">Displays the existing query hints (Name and Value).
-<p>Click <span class="bold">Add</span> to add a new query hint.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks009.htm#BABIGBGG">Creating Named Queries</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference017.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference017.htm
deleted file mode 100644
index a9a21aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference017.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Converters</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Converters" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIADGCID" name="CIADGCID"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Converters</h1>
-<p>The Converters information in the JPA Details view applies only when using EclipseLink</p>
-<p>Click <span class="bold">Add</span> to create a new converter, using the <a href="ref_add_converter.htm#CIAGCGIJ">Add Converter dialog</a>.</p>
-<p>&nbsp;</p>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference018.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference018.htm
deleted file mode 100644
index 8f35b73..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference018.htm
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Connection</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Connection" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFFJIE" name="CIAFFJIE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Connection</h1>
-<p>The following table lists the properties available in the Connection page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div class="tblformal"><a id="sthref260" name="sthref260"></a><a id="sthref261" name="sthref261"></a>
-<p class="titleintable">Properties of the Connection Page</p>
-<table class="Formal" title="Properties of the Connection Page" summary="This table lists the properties for the persistence.xml editor&rsquo;s connection page." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t25">Property</th>
-<th align="left" valign="bottom" id="r1c2-t25">Description</th>
-<th align="left" valign="bottom" id="r1c3-t25">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t25" headers="r1c1-t25">
-<p>Transaction Type</p>
-</td>
-<td align="left" headers="r2c1-t25 r1c2-t25">
-<p>Specify if the connection for this persistence unit uses one of the following transaction types:</p>
-<ul>
-<li>
-<p><span class="bold">Default</span> -- Select to use the container used by the container.</p>
-</li>
-<li>
-<p><span class="bold">JTA</span> (Java Transaction API) -- Transactions of the Java EE server.</p>
-</li>
-<li>
-<p><span class="bold">Resource Local</span> -- Native actions of a JDBC driver that are referenced by a persistence unit.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r2c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t25" headers="r1c1-t25">
-<p>Batch Writing</p>
-</td>
-<td align="left" headers="r3c1-t25 r1c2-t25">
-<p>Specify the use of batch writing to optimize transactions with multiple write operations.</p>
-<p>Set the value of this property into the session at deployment time.</p>
-<p>Note: This property applies when used both in a Java SE and Java EE environment.</p>
-<p>The following are the valid values for oracle.toplink.config.BatchWriting:</p>
-<ul>
-<li>
-<p><span class="bold">JDBC</span>&ndash;Use JDBC batch writing.</p>
-</li>
-<li>
-<p><span class="bold">Buffered</span>&ndash;Do not use either JDBC batch writing nor native platform batch writing.</p>
-</li>
-<li>
-<p><span class="bold">OracleJDBC</span>&ndash;Use both JDBC batch writing and Oracle native platform batch writing.</p>
-</li>
-<li>
-<p><span class="bold">None</span>&ndash;Do not use batch writing (turn it off).</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r3c1-t25 r1c3-t25">
-<p>None</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t25" headers="r1c1-t25">
-<p>Statement caching</p>
-</td>
-<td align="left" headers="r4c1-t25 r1c2-t25"><br /></td>
-<td align="left" headers="r4c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t25" headers="r1c1-t25">
-<p>Native SQL</p>
-</td>
-<td align="left" headers="r5c1-t25 r1c2-t25"><br /></td>
-<td align="left" headers="r5c1-t25 r1c3-t25">
-<p>False</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t25" headers="r1c1-t25">
-<p>JTA Data Source Name</p>
-</td>
-<td align="left" headers="r6c1-t25 r1c2-t25">
-<p>If you selected <span class="bold">JTA</span> as the transaction type, then enter the name of the default JTA data source for the persistence unit.</p>
-</td>
-<td align="left" headers="r6c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t25" headers="r1c1-t25">
-<p>Non-JTA Data Source Name</p>
-</td>
-<td align="left" headers="r7c1-t25 r1c2-t25">
-<p>If you selected <span class="bold">Resource Local</span> as the transaction type, then enter the name of the non-JTA data source.</p>
-<p>This property is not available for projects using the Generic platform.</p>
-</td>
-<td align="left" headers="r7c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t25" headers="r1c1-t25">
-<p>&nbsp;&nbsp;Bind&nbsp;Parameters</p>
-</td>
-<td align="left" headers="r8c1-t25 r1c2-t25">
-<p>Control whether or not the query uses parameter binding.</p>
-<p>Note: This property applies when used in a Java SE environment.</p>
-<p>This property is not available for projects using the Generic platform.</p>
-</td>
-<td align="left" headers="r8c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t25" headers="r1c1-t25">
-<p>EclipseLink Connection Pool</p>
-</td>
-<td align="left" headers="r9c1-t25 r1c2-t25">
-<p>Define the connection pool driver, URL, user name and password.</p>
-<p>These properties are note available for projects using the Generic platform.</p>
-</td>
-<td align="left" headers="r9c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t25" headers="r1c1-t25">
-<p>&nbsp;&nbsp;Read&nbsp;Connection</p>
-</td>
-<td align="left" headers="r10c1-t25 r1c2-t25">
-<p>The maximum and minimum number of connections allowed in the JDBC read connection pool.</p>
-<p>Note: These property apply when used in a Java SE environment.</p>
-<p>These properties are not available for projects using the Generic platform</p>
-</td>
-<td align="left" headers="r10c1-t25 r1c3-t25"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t25" headers="r1c1-t25">
-<p>&nbsp;&nbsp;Write&nbsp;Connection</p>
-</td>
-<td align="left" headers="r11c1-t25 r1c2-t25">
-<p>The maximum and minimum number of connections allowed in the JDBC read connection pool.</p>
-<p>Note: These property apply when used in a Java SE environment.</p>
-<p>These properties are not available for projects using the Generic platform</p>
-</td>
-<td align="left" headers="r11c1-t25 r1c3-t25"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" --></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference019.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference019.htm
deleted file mode 100644
index 2a13dba..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference019.htm
+++ /dev/null
@@ -1,221 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Customization</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Customization" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAJAFEG" name="CIAJAFEG"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Customization</h1>
-<p>The following table lists the properties available in the Customization page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div class="tblformal"><a id="sthref262" name="sthref262"></a><a id="sthref263" name="sthref263"></a>
-<p class="titleintable">Properties of the Customization Page</p>
-<table class="Formal" title="Properties of the Customization Page" summary="This table lists the properties of the persistence.xml Editor&rsquo;s Customization page." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="23%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t26">Property</th>
-<th align="left" valign="bottom" id="r1c2-t26">Description</th>
-<th align="left" valign="bottom" id="r1c3-t26">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t26" headers="r1c1-t26">
-<p>Weaving</p>
-</td>
-<td align="left" headers="r2c1-t26 r1c2-t26">
-<p>Specifies if weaving of the entity classes is performed. The EclipseLink JPA persistence provider uses weaving to enhance JPA entities for such properties as lazy loading, change tracking, fetch groups, and internal optimizations. Select from the following options:</p>
-<ul>
-<li>
-<p><span class="bold">No Weaving</span></p>
-</li>
-<li>
-<p><span class="bold">Weave Dynamically</span></p>
-</li>
-<li>
-<p><span class="bold">Weave Statically</span> -- Use this option if you plan to execute your application outside of a Java EE 5 container in an environment that does not permit the use of <code>-javaagent:eclipselink.jar</code> on the JVM command line. This assumes that classes have already been statically woven. Run the static weaver on the classes before deploying them.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r2c1-t26 r1c3-t26">
-<p>Weave Dynamically</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t26" headers="r1c1-t26">
-<p>&nbsp;&nbsp;Weaving&nbsp;Lazy</p>
-</td>
-<td align="left" headers="r3c1-t26 r1c2-t26">
-<p>Select this option to enable lazy weaving.</p>
-</td>
-<td align="left" headers="r3c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t26" headers="r1c1-t26">
-<p>&nbsp;&nbsp;Weaving&nbsp;Fetch&nbsp;Groups</p>
-</td>
-<td align="left" headers="r4c1-t26 r1c2-t26">
-<p>Select this option to enable fetch groups through weaving. Set this option to false if:</p>
-<ul>
-<li>
-<p>There is no weaving.</p>
-</li>
-<li>
-<p>Classes should not be changed during weaving (for example, when debugging).</p>
-</li>
-</ul>
-<p>Set this property to false for platforms where it is not supported.</p>
-</td>
-<td align="left" headers="r4c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t26" headers="r1c1-t26">
-<p>Weaving&nbsp;internal</p>
-</td>
-<td align="left" headers="r5c1-t26 r1c2-t26"><br /></td>
-<td align="left" headers="r5c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t26" headers="r1c1-t26">
-<p>Weaving&nbsp;eager</p>
-</td>
-<td align="left" headers="r6c1-t26 r1c2-t26"><br /></td>
-<td align="left" headers="r6c1-t26 r1c3-t26">
-<p>False</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t26" headers="r1c1-t26">
-<p>&nbsp;&nbsp;Weaving&nbsp;Change&nbsp;Tracking</p>
-</td>
-<td align="left" headers="r7c1-t26 r1c2-t26">
-<p>Select this option to use weaving to detect which fields or properties of the object change.</p>
-</td>
-<td align="left" headers="r7c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t26" headers="r1c1-t26">
-<p>&nbsp;&nbsp;Throw&nbsp;Exceptions</p>
-</td>
-<td align="left" headers="r8c1-t26 r1c2-t26">
-<p>Select this option to set EclipseLink to throw an exception or log a warning when it encounters a problem with any of the files listed in a <span class="bold">persistence.xml</span> file <code>&lt;mapping-file&gt;</code> element.</p>
-</td>
-<td align="left" headers="r8c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t26" headers="r1c1-t26">
-<p>Exception handler</p>
-</td>
-<td align="left" headers="r9c1-t26 r1c2-t26">
-<p>Select (or create) a Java class to handle exceptions.</p>
-</td>
-<td align="left" headers="r9c1-t26 r1c3-t26"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t26" headers="r1c1-t26">
-<p>Session Customizer</p>
-</td>
-<td align="left" headers="r10c1-t26 r1c2-t26">
-<p>Select a session customizer class: a Java class that implements the <code>eclipselink.tools.sessionconfiguration.SessionCustomizer</code> interface and provides a default (zero-argument) constructor. Use this class' <code>customize</code> method, which takes an <code>eclipselink.sessions.Session</code>, to programmatically access advanced EclipseLink session API.</p>
-</td>
-<td align="left" headers="r10c1-t26 r1c3-t26"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t26" headers="r1c1-t26">
-<p>Descriptor Customizer</p>
-</td>
-<td align="left" headers="r11c1-t26 r1c2-t26">
-<p>Select an EclipseLink descriptor customizer class&ndash;a Java class that implements the <code>eclipselink.tools.sessionconfiguration.DescriptorCustomizer</code> interface and provides a default (zero-argument) constructor. Use this class's <code>customize</code> method, which takes an <code>eclipselink.descriptors.ClassDescriptor</code>, to programmatically access advanced EclipseLink descriptor and mapping API for the descriptor associated with the JPA entity named <code>&lt;ENTITY&gt;</code>.</p>
-</td>
-<td align="left" headers="r11c1-t26 r1c3-t26"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r12c1-t26" headers="r1c1-t26">
-<p>Validation only</p>
-</td>
-<td align="left" headers="r12c1-t26 r1c2-t26"><br /></td>
-<td align="left" headers="r12c1-t26 r1c3-t26">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r13c1-t26" headers="r1c1-t26">
-<p>Profiler</p>
-</td>
-<td align="left" headers="r13c1-t26 r1c2-t26">
-<ul>
-<li>
-<p>No Profiler</p>
-</li>
-<li>
-<p>Performance Profiler</p>
-</li>
-<li>
-<p>Query Monitor</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r13c1-t26 r1c3-t26">
-<p>NoProfiler</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" -->
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-This page is not available for projects using the <span class="bold">Generic</span> platform.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference020.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference020.htm
deleted file mode 100644
index 769e6de..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference020.htm
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Caching</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Caching" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIABEDCH" name="CIABEDCH"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref264" name="sthref264"></a>Caching</h1>
-<p>This table lists the properties of the Caching page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div class="tblformal"><a id="sthref265" name="sthref265"></a><a id="sthref266" name="sthref266"></a>
-<p class="titleintable">Properties of the Caching Page</p>
-<table class="Formal" title="Properties of the Caching Page" summary="This table lists the properties of the persistence.xml&rsquo;s Caching page." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t28">Property</th>
-<th align="left" valign="bottom" id="r1c2-t28">Description</th>
-<th align="left" valign="bottom" id="r1c3-t28">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t28" headers="r1c1-t28">
-<p>Default Cache Type</p>
-</td>
-<td align="left" headers="r2c1-t28 r1c2-t28">
-<p>Select one of the following as the Default Cache Type:</p>
-<ul>
-<li>
-<p><span class="bold">Soft with Weak Subcache</span>&ndash;This option is similar to <span class="bold">Weak with Hard Subcache</span> except that it maintains a most frequently used subcache that uses soft references. The size of the subcache is proportional to the size of the identity map. The subcache uses soft references to ensure that these objects are garbage-collected only if the system is low on memory.</p>
-<p>Use this identity map in most circumstances as a means to control memory used by the cache.</p>
-</li>
-<li>
-<p><span class="bold">Week with Hard Subcache</span>&ndash;This option is similar to <span class="bold">Soft with Weak</span> subcache except that it maintains a most frequently used subcache that uses hard references. Use this identity map if soft references are not suitable for your platform.</p>
-</li>
-<li>
-<p><span class="bold">Weak</span>&ndash;This option is similar to <span class="bold">Full</span>, except that objects are referenced using weak references. This option uses less memory than <span class="bold">Full</span>, allows complete garbage collection and provides full caching and guaranteed identity.</p>
-<p>Use this identity map for transactions that, once started, stay on the server side.</p>
-</li>
-<li>
-<p><span class="bold">Soft</span>&ndash;This option is similar to <span class="bold">Weak</span> except that the map holds the objects using soft references. This identity map enables full garbage collection when memory is low. It provides full caching and guaranteed identity.</p>
-</li>
-<li>
-<p><span class="bold">Full</span>&ndash;This option provides full caching and guaranteed identity: all objects are cached and not removed.</p>
-<p>Note: This process may be memory-intensive when many objects are read.</p>
-</li>
-<li>
-<p><span class="bold">None</span>&ndash;This option does not preserve object identity and does not cache objects.This option is not recommended.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r2c1-t28 r1c3-t28">
-<p>Weak with soft subcache</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t28" headers="r1c1-t28">
-<p>Default Cache Size</p>
-</td>
-<td align="left" headers="r3c1-t28 r1c2-t28">
-<p>Set the size (maximum number of objects) of the cache.</p>
-</td>
-<td align="left" headers="r3c1-t28 r1c3-t28">
-<p>100</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t28" headers="r1c1-t28">
-<p>Default Shared Cache</p>
-</td>
-<td align="left" headers="r4c1-t28 r1c2-t28">
-<p>Specifies if cached instances should be in the shared cache or in a client isolated cache.</p>
-</td>
-<td align="left" headers="r4c1-t28 r1c3-t28">
-<p>True</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t28" headers="r1c1-t28">
-<p>Entity Caching</p>
-</td>
-<td align="left" headers="r5c1-t28 r1c2-t28">
-<p>Specify the entity-specific caching information.</p>
-</td>
-<td align="left" headers="r5c1-t28 r1c3-t28"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t28" headers="r1c1-t28">
-<p>&nbsp;&nbsp;Cache&nbsp;Type</p>
-</td>
-<td align="left" headers="r6c1-t28 r1c2-t28">
-<p>See <span class="italic">Default Cache Type.</span></p>
-</td>
-<td align="left" headers="r6c1-t28 r1c3-t28"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t28" headers="r1c1-t28">
-<p>&nbsp;&nbsp;Cache&nbsp;Size</p>
-</td>
-<td align="left" headers="r7c1-t28 r1c2-t28">
-<p>See <span class="italic">Default Cache Size.</span></p>
-</td>
-<td align="left" headers="r7c1-t28 r1c3-t28"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t28" headers="r1c1-t28">
-<p>&nbsp;&nbsp;Shared&nbsp;Cache</p>
-</td>
-<td align="left" headers="r8c1-t28 r1c2-t28">
-<p>See <span class="italic">Default Shared Cache</span>.</p>
-</td>
-<td align="left" headers="r8c1-t28 r1c3-t28"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t28" headers="r1c1-t28">
-<p>Flush clear cache</p>
-</td>
-<td align="left" headers="r9c1-t28 r1c2-t28">
-<p>Select one of the following as the Default Cache Type:</p>
-<ul>
-<li>
-<p><span class="bold">Drop</span> &ndash; This mode is the fastest and uses the least memory. However, after commit the shared cache might potentially contain stale data.</p>
-</li>
-<li>
-<p><span class="bold">Drop Invalidate</span> &ndash; Classes that have at least one object updated or deleted are invalidated in the shared cache at commit time. This mode is slower than <span class="bold">Drop</span>, but as efficient memory usage-wise, and prevents stale data.</p>
-</li>
-<li>
-<p><span class="bold">Merge</span> &ndash; Drop classes from the EntityManager's cache of objects that have not been flushed. This mode leaves the shared cache in a perfect state after commit. However, it is the least memory-efficient mode; the memory might even run out in a very large transaction.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r9c1-t28 r1c3-t28">
-<p>Drop Invalidate</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" -->
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-This page is not available for projects using the <span class="bold">Generic</span> platform.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference021.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference021.htm
deleted file mode 100644
index c92c362..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference021.htm
+++ /dev/null
@@ -1,241 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Logging</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Logging" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIABGHHI" name="CIABGHHI"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Logging</h1>
-<p>This table lists the properties of the Logging page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-This page is not available for projects using the <span class="bold">Generic</span> platform.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<div class="tblformal"><a id="sthref267" name="sthref267"></a><a id="sthref268" name="sthref268"></a>
-<p class="titleintable">Properties of the Logging Page</p>
-<table class="Formal" title="Properties of the Logging Page" summary="This table lists the properties of the Logging page of the persistence.xml Editor." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t31">Property</th>
-<th align="left" valign="bottom" id="r1c2-t31">Description</th>
-<th align="left" valign="bottom" id="r1c3-t31">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t31" headers="r1c1-t31">
-<p>Logging Level</p>
-</td>
-<td align="left" headers="r2c1-t31 r1c2-t31">
-<p>Specifies the amount and detail of log output by selecting the log level (in ascending order of information):</p>
-<p>The following are the valid values for the <code>java.util.logging.Level</code>:</p>
-<ul>
-<li>
-<p><span class="bold">OFF</span>&ndash;disables logging</p>
-</li>
-<li>
-<p><span class="bold">SEVERE</span>&ndash;logs exceptions indicating TopLink cannot continue, as well as any exceptions generated during login. This includes a stack trace.</p>
-</li>
-<li>
-<p><span class="bold">WARNING</span>&ndash;logs exceptions that do not force TopLink to stop, including all exceptions not logged with severe level. This does not include a stack trace.</p>
-</li>
-<li>
-<p><span class="bold">INFO</span>&ndash;logs the login/logout per sever session, including the user name. After acquiring the session, detailed information is logged.</p>
-</li>
-<li>
-<p><span class="bold">CONFIG</span>&ndash;logs only login, JDBC connection, and database information.</p>
-</li>
-<li>
-<p><span class="bold">FINE</span>&ndash;logs SQL.</p>
-</li>
-<li>
-<p><span class="bold">FINER</span>&ndash;similar to warning. Includes stack trace.</p>
-</li>
-<li>
-<p><span class="bold">FINEST</span>&ndash;includes additional low level information.</p>
-</li>
-</ul>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.level" value="INFO"/&gt;
-</pre></td>
-<td align="left" headers="r2c1-t31 r1c3-t31">
-<p>Info</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t31" headers="r1c1-t31">
-<p>&nbsp;&nbsp;Timestamp</p>
-</td>
-<td align="left" headers="r3c1-t31 r1c2-t31">
-<p>Control whether the timestamp is logged in each log entry.</p>
-<p>The following are the valid values:</p>
-<ul>
-<li>
-<p><span class="bold">true</span>&ndash;log a timestamp.</p>
-</li>
-<li>
-<p><span class="bold">false</span>&ndash;do not log a timestamp.</p>
-</li>
-</ul>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.timestamp" value="false"/&gt;
-</pre></td>
-<td align="left" headers="r3c1-t31 r1c3-t31">
-<p>true</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t31" headers="r1c1-t31">
-<p>&nbsp;&nbsp;Thread</p>
-</td>
-<td align="left" headers="r4c1-t31 r1c2-t31">
-<p>Control whether a thread identifier is logged in each log entry.</p>
-<p>The following are the valid values:</p>
-<ul>
-<li>
-<p><span class="bold">true</span>&ndash;log a thread identifier.</p>
-</li>
-<li>
-<p><span class="bold">false</span>&ndash;do not log a thread identifier.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r4c1-t31 r1c3-t31">
-<p>true</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t31" headers="r1c1-t31">
-<p>&nbsp;&nbsp;Session</p>
-</td>
-<td align="left" headers="r5c1-t31 r1c2-t31">
-<p>Control whether an EclipseLink session identifier is logged in each log entry.</p>
-<p>The following are the valid values:</p>
-<ul>
-<li>
-<p><span class="bold">true</span>&ndash;log a EclipseLink session identifier.</p>
-</li>
-<li>
-<p><span class="bold">false</span>&ndash;do not log a EclipseLink session identifier.</p>
-</li>
-</ul>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.session" value="false"/&gt;
-</pre></td>
-<td align="left" headers="r5c1-t31 r1c3-t31">
-<p>true</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t31" headers="r1c1-t31">
-<p>&nbsp;&nbsp;Exceptions</p>
-</td>
-<td align="left" headers="r6c1-t31 r1c2-t31">
-<p>Control whether the exceptions thrown from within the EclipseLink code are logged prior to returning the exception to the calling application. Ensures that all exceptions are logged and not masked by the application code.</p>
-<p>The following are the valid values:</p>
-<ul>
-<li>
-<p><span class="bold">true</span>&ndash;log all exceptions.</p>
-</li>
-<li>
-<p><span class="bold">false</span>&ndash;do not log exceptions.</p>
-</li>
-</ul>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.exceptions" value="true"/&gt;
-</pre></td>
-<td align="left" headers="r6c1-t31 r1c3-t31">
-<p>false</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t31" headers="r1c1-t31">
-<p>Log file</p>
-</td>
-<td align="left" headers="r7c1-t31 r1c2-t31">
-<p>Specify a file location for the log output (instead of the standard out).</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.file" value="C:\myout\" /&gt;
-</pre></td>
-<td align="left" headers="r7c1-t31 r1c3-t31"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t31" headers="r1c1-t31">
-<p>Logger</p>
-</td>
-<td align="left" headers="r8c1-t31 r1c2-t31">
-<p>Select the type of logger to use:</p>
-<p>The following are the valid values:</p>
-<ul>
-<li>
-<p><span class="bold">DefaultLogger</span>&ndash;the EclipseLink native logger <code>eclipselink.logging.DefaultSessionLog</code>.</p>
-</li>
-<li>
-<p><span class="bold">JavaLogger</span>&ndash;the <code>java.util.logging</code> logger <code>eclipselink.logging.JavaLog</code>.</p>
-</li>
-<li>
-<p><span class="bold">ServerLogger</span>&ndash;the <code>java.util.logging</code> logger <code>eclipselink.platform.server.ServerLog</code>. Integrates with the application server's logging as define in the <code>eclipselink.platform.server.ServerPlatform.</code></p>
-</li>
-<li>
-<p>Fully qualified class name of a custom logger. The custom logger must implement the <code>eclipselink.logging.SessionLog</code> interface.</p>
-</li>
-</ul>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.logging.logger" value="acme.loggers.MyCustomLogger" /&gt;
-</pre></td>
-<td align="left" headers="r8c1-t31 r1c3-t31">
-<p>DefaultLogger</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" --></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference022.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference022.htm
deleted file mode 100644
index 111b7cb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference022.htm
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Options</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Options" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAFJCHE" name="CIAFJCHE"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Options</h1>
-<p>This table lists the properties of the Options page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-This page is not available for projects using the <span class="bold">Generic</span> platform.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<div class="tblformal"><a id="sthref269" name="sthref269"></a><a id="sthref270" name="sthref270"></a>
-<p class="titleintable">Properties of the Options Page</p>
-<table class="Formal" title="Properties of the Options Page" summary="Properties of the Options Page" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t33">Property</th>
-<th align="left" valign="bottom" id="r1c2-t33">Description</th>
-<th align="left" valign="bottom" id="r1c3-t33">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t33" headers="r1c1-t33">
-<p>Session Name</p>
-</td>
-<td align="left" headers="r2c1-t33 r1c2-t33">
-<p>Specify the name by which the EclipseLink session is stored in the static session manager. Use this option if you need to access the EclipseLink shared session outside of the context of the JPA or to use a pre-existing EclipseLink session configured through a EclipseLink <code>sessions.xml</code> file</p>
-<p>Valid values: a valid EclipseLink session name that is unique in a server deployment.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.session-name" value="MySession"/&gt;
-</pre></td>
-<td align="left" headers="r2c1-t33 r1c3-t33"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t33" headers="r1c1-t33">
-<p>Sessions XML</p>
-</td>
-<td align="left" headers="r3c1-t33 r1c2-t33">
-<p>Specify persistence information loaded from the EclipseLink session configuration file (<code>sessions.xml</code>).</p>
-<p>You can use this option as an alternative to annotations and deployment XML. If you specify this property, EclipseLink will override all class annotation and the object relational mapping from the <code>persistence.xml</code>, as well as <code>ORM.xml</code> and other mapping files, if present.</p>
-<p>Indicate the session by setting the <code>eclipselink.session-name</code> property.</p>
-<p>Note: If you do not specify the value for this property, <code>sessions.xml</code> file will not be used.</p>
-<p>Valid values: the resource name of the sessions XML file.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="toplink.session-xml" value="mysession.xml"/&gt;
-</pre></td>
-<td align="left" headers="r3c1-t33 r1c3-t33"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t33" headers="r1c1-t33">
-<p>Target Database</p>
-</td>
-<td align="left" headers="r4c1-t33 r1c2-t33">
-<p>Select the target database. You can also set the value to the fully qualified class name of a subclass of the <code>org.eclipse.persistence.platform.DatabasePlatform class</code>.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.target-database" value="Oracle"/&gt;
-</pre></td>
-<td align="left" headers="r4c1-t33 r1c3-t33">
-<p>Auto</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t33" headers="r1c1-t33">
-<p>Target Server</p>
-</td>
-<td align="left" headers="r5c1-t33 r1c2-t33">
-<p>Select the target server for your JPA application.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.target-server" value="OC4J_10_1_3"/&gt;
-</pre></td>
-<td align="left" headers="r5c1-t33 r1c3-t33">
-<p>None</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t33" headers="r1c1-t33">
-<p>Event Listener</p>
-</td>
-<td align="left" headers="r6c1-t33 r1c2-t33">
-<p>Specify a descriptor event listener to be added during bootstrapping.</p>
-<p>Valid values: qualified class name for a class that implements the <code>eclipselink.sessions.SessionEventListener</code> interface.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.session-event-listener" value="mypackage.MyClass.class"/&gt;
-</pre></td>
-<td align="left" headers="r6c1-t33 r1c3-t33"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t33" headers="r1c1-t33">
-<p>Include Descriptor Queries</p>
-</td>
-<td align="left" headers="r7c1-t33 r1c2-t33">
-<p>Enable or disable the default copying of all named queries from the descriptors to the session. These queries include the ones defined using EclipseLink API, descriptor amendment methods, and so on.</p>
-</td>
-<td align="left" headers="r7c1-t33 r1c3-t33"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t33" headers="r1c1-t33">
-<p>Miscellaneous Options</p>
-</td>
-<td align="left" headers="r8c1-t33 r1c2-t33"><br /></td>
-<td align="left" headers="r8c1-t33 r1c3-t33"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t33" headers="r1c1-t33">
-<p>&nbsp;&nbsp;Temporal mutable</p>
-</td>
-<td align="left" headers="r9c1-t33 r1c2-t33">
-<p>Specify if all <code>Date</code> and <code>Calendar</code> persistent fields should be handled as mutable objects.</p>
-<p><span class="bold">Example</span>: <code>persistence.xml</code> file</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;property name="eclipselink.temporal.mutable" value="true"/&gt;
-</pre></td>
-<td align="left" headers="r9c1-t33 r1c3-t33">
-<p>False</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" --></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference023.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference023.htm
deleted file mode 100644
index 52ec404..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference023.htm
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Schema Generation</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Schema Generation" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIACCFCB" name="CIACCFCB"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Schema Generation</h1>
-<p>This table lists the properties of the Schema Generation page of the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-This page is not available for projects using the <span class="bold">Generic</span> platform.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<div class="tblformal"><a id="sthref271" name="sthref271"></a><a id="sthref272" name="sthref272"></a>
-<p class="titleintable">&nbsp;</p>
-<table class="Formal" title="" summary="This table lists the properties of the persistence.xml Editor&rsquo;s Schema Generation page." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="24%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t35">Property</th>
-<th align="left" valign="bottom" id="r1c2-t35">Description</th>
-<th align="left" valign="bottom" id="r1c3-t35">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t35" headers="r1c1-t35">
-<p>DDL Generation Type</p>
-</td>
-<td align="left" headers="r2c1-t35 r1c2-t35">
-<p>Select the type of DDL generation:</p>
-<ul>
-<li>
-<p><span class="bold">None</span> -- Do not generate DDL; no schema is generated.</p>
-</li>
-<li>
-<p><span class="bold">Create Tables</span> -- Create DDL for non-existent tables; leave existing tables unchanged.</p>
-</li>
-<li>
-<p><span class="bold">Drop and Create Tables</span> -- Create DDL for all tables; drop all existing tables.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r2c1-t35 r1c3-t35">
-<p>None</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t35" headers="r1c1-t35">
-<p>Output Mode</p>
-</td>
-<td align="left" headers="r3c1-t35 r1c2-t35">
-<p>Select the DDL generation target:</p>
-<ul>
-<li>
-<p><span class="bold">Both</span> -- Generate SQL files and execute them on the database.</p>
-</li>
-<li>
-<p><span class="bold">Database</span> -- Execute SQL on the database only (do not generate SQL files).</p>
-</li>
-<li>
-<p><span class="bold">SQL Script</span> -- Generate SQL files only (do not execute them on the database).</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r3c1-t35 r1c3-t35"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t35" headers="r1c1-t35">
-<p>DDL Generation Location</p>
-</td>
-<td align="left" headers="r4c1-t35 r1c2-t35">
-<p>Specify where EclipseLink writes DDL output. Specify a file specification to a directory in which you have write access. The file specification may be relative to your current working directory or absolute. If it does not end in a file separator, then EclipseLink appends one that is valid for your operating system.</p>
-</td>
-<td align="left" headers="r4c1-t35 r1c3-t35"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t35" headers="r1c1-t35">
-<p>Create DDL File Name</p>
-</td>
-<td align="left" headers="r5c1-t35 r1c2-t35">
-<p>Specify the file name of the DDL file that EclipseLink generates that contains SQL statements for creating tables for JPA entities. Specify a file name valid for your operating system.</p>
-</td>
-<td align="left" headers="r5c1-t35 r1c3-t35">
-<p>createDDL.jdbc</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t35" headers="r1c1-t35">
-<p>Drop DDL File Name</p>
-</td>
-<td align="left" headers="r6c1-t35 r1c2-t35">
-<p>Specify the file name of the DDL file that EclipseLink generates that contains SQL statements for dropping tables for JPA entities.</p>
-</td>
-<td align="left" headers="r6c1-t35 r1c3-t35">
-<p>dropDDL.jdbc</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="tblformal" --></div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference024.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference024.htm
deleted file mode 100644
index 1830f01..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference024.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Properties</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Properties" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAHJDFF" name="CIAHJDFF"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Properties</h1>
-<p>This page enables you to add or remove the vendor-specific <code>&lt;properties&gt;</code> elements of <code>persistence.xml</code>.</p>
-<p>To add a property, click <span class="bold">Add</span> then enter the property <span class="bold">Name</span> and <span class="bold">Value</span>.</p>
-</div>
-<!-- class="sect3" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference025.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference025.htm
deleted file mode 100644
index 47b984b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference025.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Source</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Source" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIAHCJAH" name="CIAHCJAH"></a></p>
-<div class="sect3"><!-- infolevel="all" infotype="General" -->
-<h1>Source</h1>
-<p>Using this page, you can manually edit the <code>persistence.xml</code> file.</p>
-<p>See <a href="task_manage_persistence.htm#CIHDAJID">"Managing the persistence.xml file"</a> for additional information.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a></div>
-<!-- class="sect3" -->
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference026.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference026.htm
deleted file mode 100644
index 235ba80..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference026.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Preferences</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Preferences" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACDEIEE" name="CACDEIEE"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Preferences</h1>
-<p>This section includes information on the following preference pages:</p>
-<ul>
-<li>
-<p><a href="ref_project_properties.htm#BABJHBCI">Project Properties page &ndash; Java Persistence Options</a></p>
-</li>
-<li>
-<p><a href="reference027.htm#CACFBAEH">Project Properties page &ndash; Validation Preferences</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference027.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference027.htm
deleted file mode 100644
index f48d45b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference027.htm
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Project Properties page &ndash; Validation Preferences</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Project Properties page &ndash; Validation Preferences" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACFBAEH" name="CACFBAEH"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Project Properties page &ndash; Validation Preferences</h1>
-<p><a id="sthref275" name="sthref275"></a><a id="sthref276" name="sthref276"></a>Use the <span class="gui-object-title">Java Persistence</span> options on the <span class="gui-object-title">Properties</span> page to select the database connection to use with the project.</p>
-<p>This table lists the properties available in the <span class="gui-object-title">JPA Details page</span>.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Persistence Properties page." summary="This table describes the options on the Persistence Properties page." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t37">Property</th>
-<th align="left" valign="bottom" id="r1c2-t37">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t37" headers="r1c1-t37"><a id="sthref277" name="sthref277"></a><a id="sthref278" name="sthref278"></a><a id="sthref279" name="sthref279"></a><a id="sthref280" name="sthref280"></a>Platform</td>
-<td align="left" headers="r2c1-t37 r1c2-t37">Select the vendor-specific platform.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t37" headers="r1c1-t37">Library</td>
-<td align="left" headers="r3c1-t37 r1c2-t37">Select a specific JPA library configuration.
-<p>Click <span class="bold">Manage libraries</span> to create or update a user library.</p>
-<p>Click <span class="bold">Download libraries</span> to download a specific library configuration.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t37" headers="r1c1-t37">&nbsp;&nbsp;Type</td>
-<td align="left" headers="r4c1-t37 r1c2-t37">Select <span class="bold">User Library</span> to select from the available user-defined or downloaded libraries.
-<p>If you select Disable, you must manually include the JPA implementation library on the project classpath.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t37" headers="r1c1-t37">&nbsp;&nbsp;Include&nbsp;libraries&nbsp;with&nbsp;this&nbsp;application</td>
-<td align="left" headers="r5c1-t37 r1c2-t37">Specify if the selected libraries are included when deploying the application.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t37" headers="r1c1-t37"><a id="sthref281" name="sthref281"></a><a id="sthref282" name="sthref282"></a><a id="sthref283" name="sthref283"></a>Connection</td>
-<td align="left" headers="r6c1-t37 r1c2-t37">The database connection used to map the persistent entities.
-<ul>
-<li>
-<p>To create a new connection, click <span class="bold">Add Connections</span>.</p>
-</li>
-<li>
-<p>To reconnect to an existing connection, click <span class="bold">Reconnect</span>.</p>
-</li>
-</ul>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t37" headers="r1c1-t37">&nbsp;&nbsp;Override&nbsp;default&nbsp;catalog&nbsp;from&nbsp;connection</td>
-<td align="left" headers="r7c1-t37 r1c2-t37">Select a catalog other than the default one derived from the connection information. Use this option if the default catalog is incorrect or cannot be used.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t37" headers="r1c1-t37">&nbsp;&nbsp;Override&nbsp;default&nbsp;schema&nbsp;from&nbsp;connection</td>
-<td align="left" headers="r8c1-t37 r1c2-t37">Select a schema other than the default one derived from the connection information. Use this option if the default schema is incorrect or cannot be used. For example, use this option when the deployment login differs from the design-time login.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t37" headers="r1c1-t37">Persistent Class Management</td>
-<td align="left" headers="r9c1-t37 r1c2-t37">Specify if Dali will <span class="bold">discover annotated classes automatically</span>, or if the <span class="bold">annotated classes must be listed in the persistence.xml</span> file.
-<p><span class="bold">Note</span>: To insure application portability, you should explicitly list the managed persistence classes that are included in the persistence unit.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t37" headers="r1c1-t37"><a id="sthref284" name="sthref284"></a><a id="sthref285" name="sthref285"></a>Canonical Metamodel</td>
-<td align="left" headers="r10c1-t37 r1c2-t37"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" --></div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference028.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference028.htm
deleted file mode 100644
index 7371b25..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference028.htm
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Dialogs</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Dialogs" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACGEJDA" name="CACGEJDA"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Dialogs</h1>
-<p>This section includes information on the following preference pages:</p>
-<ul>
-<li>
-<p><a href="reference029.htm#CACCGEHC">Edit Join Columns Dialog</a></p>
-</li>
-<li>
-<p><a href="ref_select_cascade_dialog.htm#CIAFDGIJ">Select Cascade dialog</a></p>
-</li>
-<li>
-<p><a href="ref_eclipselink_mapping_file.htm#CIAEDEJF">New EclipseLink Mapping File dialog</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference029.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference029.htm
deleted file mode 100644
index 9f66678..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference029.htm
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Edit Join Columns Dialog</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:48Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Edit Join Columns Dialog" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACCGEHC" name="CACCGEHC"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Edit Join Columns Dialog</h1>
-<p>Use the <span class="gui-object-title">Join Columns</span> dialog to create or modify the join tables and columns in relationship mappings.</p>
-<p>This table lists the properties available in the <span class="gui-object-title">Join Columns</span> dialog.</p>
-<div class="inftblinformal">
-<table class="Informal" title="This table describes the options on the Join Columns dialog." summary="This table describes the options on the Join Columns dialog." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="32%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t38">Property</th>
-<th align="left" valign="bottom" id="r1c2-t38">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t38" headers="r1c1-t38">Name</td>
-<td align="left" headers="r2c1-t38 r1c2-t38">Name of the joint table column that contains the foreign key column.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t38" headers="r1c1-t38">Referenced Column Name</td>
-<td align="left" headers="r3c1-t38 r1c2-t38">Name of the database column that contains the foreign key reference for the entity relationship.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" -->
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="reference011.htm#CACBAEBC">Join Table Information</a><br />
-<a href="reference012.htm#CACFCEJC">Join Columns Information</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference030.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference030.htm
deleted file mode 100644
index 7027978..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference030.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Icons and buttons</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Icons and buttons" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACDHCIA" name="CACDHCIA"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Icons and buttons</h1>
-<p>This section includes information on each of the icons and buttons used in the Dali OR Mapping Tool.</p>
-<ul>
-<li>
-<p><a href="reference031.htm#CACGEACG">Icons</a></p>
-</li>
-<li>
-<p><a href="reference032.htm#CACDJCEI">Buttons</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference031.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference031.htm
deleted file mode 100644
index 35760ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference031.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Icons</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Icons" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACGEACG" name="CACGEACG"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Icons</h1>
-<p>The following icons are used throughout the Dali OR Mapping Tool.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the icons used in the Dali plug-in." summary="This table describes the icons used in the Dali plug-in." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="23%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t41">Icon</th>
-<th align="left" valign="bottom" id="r1c2-t41">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t41" headers="r1c1-t41"><img src="img/new_icon_mappedentity.png" alt="" title="" /><br /></td>
-<td align="left" headers="r2c1-t41 r1c2-t41"><a href="tasks006.htm#BABGBIEE">Entity</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t41" headers="r1c1-t41"><img src="img/new_icon_embeddableentitymapping.png" alt="Embeddable entity icon" title="Embeddable entity icon" /><br /></td>
-<td align="left" headers="r3c1-t41 r1c2-t41"><a href="tasks007.htm#BABFEICE">Embeddable</a> entity</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t41" headers="r1c1-t41"><img src="img/new_icon_mappedsuperclass.png" alt="Mapped superclass icon" title="Mapped superclass icon" /><br /></td>
-<td align="left" headers="r4c1-t41 r1c2-t41"><a href="tasks008.htm#BABDAGCI">Mapped superclass</a></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t41" headers="r1c1-t41"><img src="img/new_icon_basicmappings.png" alt="Basic mapping icon" title="Basic mapping icon" /><br /></td>
-<td align="left" headers="r5c1-t41 r1c2-t41"><a href="tasks010.htm#BABBABCE">Basic mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t41" headers="r1c1-t41"><img src="img/icon_basicmapmappings.png" alt="Basic mapping icon" title="Basic mapping icon" /><br /></td>
-<td align="left" headers="r6c1-t41 r1c2-t41">Basic collection mapping</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t41" headers="r1c1-t41"><img src="img/icon_basicmapping.png" alt="Basic mapping icon" title="Basic mapping icon" /><br /></td>
-<td align="left" headers="r7c1-t41 r1c2-t41">Basic map mapping</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t41" headers="r1c1-t41"><img src="img/new_icon_embeddedidmapping.png" alt="Embedded mapping icon" title="Embedded mapping icon" /><br /></td>
-<td align="left" headers="r8c1-t41 r1c2-t41"><a href="tasks011.htm#BABCBHDF">Embedded mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r9c1-t41" headers="r1c1-t41"><img src="img/new_icon_embeddedmapping.png" alt="Embedded ID mapping icon" title="Embedded ID mapping icon" /><br /></td>
-<td align="left" headers="r9c1-t41 r1c2-t41"><a href="tasks012.htm#CIHDIAEE">Embedded ID mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r10c1-t41" headers="r1c1-t41"><img src="img/new_icon_idmapping.png" alt="ID mapping icon" title="ID mapping icon" /><br /></td>
-<td align="left" headers="r10c1-t41 r1c2-t41"><a href="tasks013.htm#BABGCBHG">ID mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r11c1-t41" headers="r1c1-t41"><img src="img/new_icon_manytomanymapping.png" alt="Many-to-many mapping icon" title="Many-to-many mapping icon" /><br /></td>
-<td align="left" headers="r11c1-t41 r1c2-t41"><a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r12c1-t41" headers="r1c1-t41"><img src="img/new_icon_manytoonemapping.png" alt="Many-to-one mapping icon." title="Many-to-one mapping icon." /><br /></td>
-<td align="left" headers="r12c1-t41 r1c2-t41"><a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r13c1-t41" headers="r1c1-t41"><img src="img/new_icon_onetomanymapping.png" alt="One-to-many mapping icon" title="One-to-many mapping icon" /><br /></td>
-<td align="left" headers="r13c1-t41 r1c2-t41"><a href="tasks016.htm#BABHGEBD">One-to-many mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r14c1-t41" headers="r1c1-t41"><img src="img/new_icon_onetoonemapping.png" alt="One-to-one mapping icon." title="One-to-one mapping icon." /><br /></td>
-<td align="left" headers="r14c1-t41 r1c2-t41"><a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r15c1-t41" headers="r1c1-t41"><img src="img/icon_basicmapmappings.png" alt="Basic mapping icon" title="Basic mapping icon" /><br /></td>
-<td align="left" headers="r15c1-t41 r1c2-t41">Transformation mappings</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r16c1-t41" headers="r1c1-t41"><img src="img/new_icon_transientmapping.png" alt="Transient mapping icon." title="Transient mapping icon." /><br /></td>
-<td align="left" headers="r16c1-t41 r1c2-t41"><a href="tasks018.htm#BABHFHEI">Transient mapping</a><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r17c1-t41" headers="r1c1-t41"><img src="img/icon_basicmapmappings.png" alt="Basic mapping icon" title="Basic mapping icon" /><br /></td>
-<td align="left" headers="r17c1-t41 r1c2-t41">Variable one-to-one mappings</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r18c1-t41" headers="r1c1-t41"><img src="img/new_icon_versionmapping.png" alt="Version mapping icon." title="Version mapping icon." /><br /></td>
-<td align="left" headers="r18c1-t41 r1c2-t41"><a href="tasks019.htm#BABHIBII">Version mapping</a><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="reference030.htm#CACDHCIA">Icons and buttons</a></p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference032.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference032.htm
deleted file mode 100644
index 36db540..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference032.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Buttons</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Buttons" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACDJCEI" name="CACDJCEI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Buttons</h1>
-<p>The following buttons are used throughout the Dali OR Mapping Tool.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the buttons used in the Dali plug-in." summary="This table describes the buttons used in the Dali plug-in." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="27%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t42">Icon</th>
-<th align="left" valign="bottom" id="r1c2-t42">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t42" headers="r1c1-t42"><img src="img/new_jpa_perspective_button.png" alt="The JPA Perspective icon" title="The JPA Perspective icon" /><br /></td>
-<td align="left" headers="r2c1-t42 r1c2-t42">JPA Development perspective</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="reference030.htm#CACDHCIA">Icons and buttons</a></p>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/reference033.htm b/jpa/plugins/org.eclipse.jpt.doc.user/reference033.htm
deleted file mode 100644
index 9a706b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/reference033.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Dali Developer Documentation</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Dali Developer Documentation" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CACBBDIB" name="CACBBDIB"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Dali Developer Documentation</h1>
-<p><a id="sthref288" name="sthref288"></a><a id="sthref289" name="sthref289"></a><a id="sthref290" name="sthref290"></a>Additional Dali documentation is available online at:</p>
-<p><code><a href="http://wiki.eclipse.org/index.php/Dali_Developer_Documentation">http://wiki.eclipse.org/index.php/Dali_Developer_Documentation</a></code></p>
-<p>This developer documentation includes information about:</p>
-<ul>
-<li>
-<p>Dali architecture</p>
-</li>
-<li>
-<p>Plugins that comprise the Dali JPA Eclipse feature</p>
-</li>
-<li>
-<p>Extension points</p>
-</li>
-</ul>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_add_persistence.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_add_persistence.htm
deleted file mode 100644
index 4c9842e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_add_persistence.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Adding persistence to a class</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Adding persistence to a class" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABHICAI" name="BABHICAI"></a></p>
-<div class="sect1">
-<h1>Adding persistence to a class</h1>
-<p><a id="sthref67" name="sthref67"></a><a id="sthref68" name="sthref68"></a><a id="sthref69" name="sthref69"></a>You can make a Java class into one of the following persistent types:</p>
-<ul>
-<li>
-<p><a href="tasks006.htm#BABGBIEE">Entity</a></p>
-</li>
-<li>
-<p><a href="tasks007.htm#BABFEICE">Embeddable</a></p>
-</li>
-<li>
-<p><a href="tasks008.htm#BABDAGCI">Mapped superclass</a></p>
-</li>
-</ul>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a><br />
-<a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a><br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br />
-<a href="concepts003.htm#CHDBIJAC">The orm.xml file</a><br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a> <!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_additonal_tables.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_additonal_tables.htm
deleted file mode 100644
index 77d584c..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_additonal_tables.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Specifying additional tables</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Specifying additional tables" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHGBIEI" name="CIHGBIEI"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Specifying additional tables</h1>
-<p>Add a secondary table annotation to an entity if its data is split across more than one table.</p>
-<p>To add a secondary table to the entity,</p>
-<ol>
-<li>
-<p>Select the entity in the <span class="gui-object-title">Project Explorer</span>.</p>
-</li>
-<li>
-<p>In the <span class="gui-object-title">JPA Details</span> view, select the <span class="gui-object-action">Secondary Tables</span> information.</p>
-<div class="figure"><a id="sthref92" name="sthref92"></a>
-<p class="titleinfigure">Specifying Secondary Tables</p>
-<img src="img/secondary_tables.png" alt="Secondary Tables area on the JPA Details view." title="Secondary Tables area on the JPA Details view." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Click <span class="bold">Add</span> to associate an additional table with the entity. The Edit Secondary Table dialog appears</p>
-</li>
-<li>
-<p>Select the <span class="bold">Name</span>, <span class="bold">Catalog</span>, and <span class="bold">Schema</span> of the additional table to associate with the entity.</p>
-</li>
-</ol>
-<p>Eclipse adds the following annotations the entity:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@SecondaryTable(name="NAME", catalog = "CATALOG", schema = "SCHEMA")
-
-</pre>
-<p>To override the default primary key:</p>
-<ol>
-<li>
-<p>Enable the <span class="bold">Overwrite default</span> option, then click <span class="bold">Add</span> to specify a new primary key join column. The Create New Primary Key Join Column appears.</p>
-</li>
-<li>
-<p>Select the <span class="bold">Name</span>, <span class="bold">Referenced column name</span>, <span class="bold">Table</span>, and <span class="bold">Column definition</span> of the primary key for the entity.</p>
-<p>Eclipse adds the following annotations the entity:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@SecondaryTable(name="NAME", catalog = "CATALOG", schema = "SCHEMA", pkJoinColumns = {@PrimaryKeyJoinColumn(name="id", referencedColumnName = "id"),@PrimaryKeyJoinColumn(name="NAME", referencedColumnName = "REFERENCED COLUMN NAME", columnDefinition = "COLUMN DEFINITION")})
-
-</pre></li>
-</ol>
-<br />
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br /></div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_create_jpa_entity.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_create_jpa_entity.htm
deleted file mode 100644
index a83f787..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_create_jpa_entity.htm
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating a JPA Entity</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating a JPA Entity" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFBJBG" name="BABFBJBG"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref40" name="sthref40"></a>Creating a JPA Entity</h1>
-<p>Use this procedure to create a JPA entity:</p>
-<ol>
-<li>
-<p>From the Navigator or Project Explorer, select the JPA project and then <span class="bold">File &gt; New &gt; Other</span>. The Select a Wizard dialog appears.</p>
-<div class="figure"><a id="sthref41" name="sthref41"></a>
-<p class="titleinfigure">Selecting the Create a JPA Entity Wizard</p>
-<img src="img/select_a_wizard_entity.png" alt="The Select a Wizard dialog with Entity selected." title="The Select a Wizard dialog with Entity selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select <span class="bold">JPA &gt; Entity</span> and then click <span class="bold">Next</span>. The <a href="ref_EntityClassPage.htm#CIAFEIGF">Entity Class page</a> appears.</p>
-<div class="figure"><a id="sthref42" name="sthref42"></a>
-<p class="titleinfigure"><a id="sthref43" name="sthref43"></a>The Entity Class Page</p>
-<img src="img/create_jpa_entity_wizard.png" alt="The Entity Class page of the Create a JPA Entity wizard." title="The Entity Class page of the Create a JPA Entity wizard." /><br /></div>
-<!-- class="figure" -->
-<p>Complete this page as follows:</p>
-<ul>
-<li>
-<p>Select the JPA project in the <span class="bold">Project</span> field.</p>
-</li>
-<li>
-<p>In the <span class="bold">Source Folder</span> field, select, or enter, the location of the JPA project's <code>src</code> folder.</p>
-</li>
-<li>
-<p>Select, or enter, the name of the class package for this entity in the <span class="bold">Java Package</span> field.</p>
-</li>
-<li>
-<p>Enter the name of the Java class in the <span class="bold">Class name</span> field.</p>
-</li>
-<li>
-<p>If needed, enter, or select a superclass.</p>
-</li>
-<li>
-<p>If needed, complete the Inheritance section as follows (these properties are optional):</p>
-<ul>
-<li>
-<p>Accept the <span class="bold">Entity</span> option (the default) to create a Java class with the <code>@Entity</code> option.</p>
-</li>
-<li>
-<p>Alternatively, select <a href="tasks008.htm#BABDAGCI">Mapped superclass</a> (if you defined a super class).</p>
-</li>
-<li>
-<p>Select <span class="bold">Inheritance</span> and then select one of the JSR 220 inheritance mapping strategies (SINGLE_TABLE, TABLE_PER_CLASS, JOINED).</p>
-</li>
-<li>
-<p>Select <span class="bold">Add to entity mappings in XML</span> to create XML mappings in <code>orm.xml</code>, rather than annotations.</p>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-<li>
-<p>Click <span class="bold">Next</span> to proceed to the <a href="ref_EntityPropertiesPage.htm#CIADECIA">Entity Properties page</a> where you define the persistent fields for the entity.</p>
-<div class="figure"><a id="sthref44" name="sthref44"></a>
-<p class="titleinfigure"><a id="sthref45" name="sthref45"></a>The Entity Properties Page</p>
-<img src="img/create_jpa_fields.png" alt="The Entity Properties page of the Create JPA Entity wizard." title="The Entity Properties page of the Create JPA Entity wizard." /><br /></div>
-<!-- class="figure" -->
-<p>Alternatively, click <span class="bold">Finish</span> to complete the entity.</p>
-</li>
-<li>
-<p>Complete the page as follows:</p>
-<ol>
-<li>
-<p>If needed, enter a new name for the entity. Doing so results in adding a <code>name</code> attribute to the <code>@Entity</code> notation (<code>@Entity(name="EntityName")</code>).</p>
-</li>
-<li>
-<p>Accept <span class="bold">Use default</span> (the default setting) to use the default value for the name of the mapped table. Entering a different name results in adding the <code>@Table</code> notation with its <code>name</code> attribute defined as the new table (<code>@Table(name="TableName")</code>).</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-The Entity Name-related options are not available if you selected <a href="tasks008.htm#BABDAGCI">Mapped superclass</a> on the <a href="ref_EntityClassPage.htm#CIAFEIGF">Entity Class page</a></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-<li>
-<p>Add persistence fields to the entity by clicking <span class="bold">Add</span>. The Entity Fields dialog appears.</p>
-<div class="figure"><a id="sthref46" name="sthref46"></a>
-<p class="titleinfigure">The Entity Fields Dialog</p>
-<img src="img/jpa_wizard_create_fields.png" alt="The Entity Fields dialog." title="The Entity Fields dialog." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select a persistence type from the Type list. You can retrieve additional types using the <span class="bold">Browse</span> function.</p>
-</li>
-<li>
-<p>Enter the field name and then click <span class="bold">OK</span>. Repeat this procedure for each field.</p>
-</li>
-<li>
-<p>If needed, select <span class="bold">Key</span> to designate the field as a primary key.</p>
-</li>
-<li>
-<p>Select either the <span class="bold">Field-based</span> access type (the default) or <span class="bold">Property-based</span> access type.</p>
-</li>
-</ol>
-</li>
-<li>
-<p>Click <span class="bold">Finish</span>. Eclipse adds the entity to your project.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a><br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a><br />
-<a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a><br />
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_create_new_project.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_create_new_project.htm
deleted file mode 100644
index ee7e1ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_create_new_project.htm
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating a new JPA project</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating a new JPA project" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHHEJCJ" name="CIHHEJCJ"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Creating a new JPA project</h1>
-<p><a id="sthref26" name="sthref26"></a><a id="sthref27" name="sthref27"></a>Use this procedure to create a new JPA project.</p>
-<ol>
-<li>
-<p>From the Navigator or Project Explorer, select <span class="bold">File &gt; New &gt; Project</span>. The Select a wizard dialog appears.</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-You can also select the JPA perspective and then select <span class="bold">File &gt; New &gt; JPA Project</span>.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-<div class="figure"><a id="sthref28" name="sthref28"></a>
-<p class="titleinfigure"><a id="sthref29" name="sthref29"></a>Selecting the Create a JPA Project wizard</p>
-<img src="img/select_a_wizard_jpa_project.png" alt="The Select a Wizard dialog with JPA project selected." title="The Select a Wizard dialog with JPA project selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select <span class="bold">JPA Project</span> and then click <span class="bold">Next</span>. The <a href="ref_new_jpa_project.htm#CACBJAGC">New JPA Project page</a> appears.</p>
-<div class="figure"><a id="sthref30" name="sthref30"></a>
-<p class="titleinfigure"><a id="sthref31" name="sthref31"></a>The JPA Project Page</p>
-<img src="img/new_jpa_project_task.png" alt="The JPA Project page of the Create a JPA Project wizard." title="The JPA Project page of the Create a JPA Project wizard." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the fields on the <a href="ref_new_jpa_project.htm#CACBJAGC">New JPA Project page</a> to specify the project name and location, target runtime, and pre-defined configuration.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-The Target Runtime is not required for Java SE development.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-<li>
-<p>Click <span class="bold">Next</span>. The Java source page appears.</p>
-<div class="figure"><a id="sthref32" name="sthref32"></a>
-<p class="titleinfigure">The Java Source Page</p>
-<img src="img/java_editor_address.png" alt="The JPA Facet page of the Create a JPA Project wizard." title="The JPA Facet page of the Create a JPA Project wizard." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Click <span class="bold">Add Folder</span> to add existing Java source files to the project.</p>
-</li>
-<li>
-<p>Click <span class="bold">Next</span>. <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a> appears.</p>
-<div class="figure"><a id="sthref33" name="sthref33"></a>
-<p class="titleinfigure"><a id="sthref34" name="sthref34"></a>The JPA Facet Page</p>
-<img src="img/new_jpa_facet_task.png" alt="The JPA Facet page of the Create a JPA Project wizard." title="The JPA Facet page of the Create a JPA Project wizard." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the fields on the <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a> to specify your vender-specific platform, JPA implementation library, and database connection.</p>
-<p>Click <span class="bold">Manage libraries</span> to create or update your JPA user libraries. Click <span class="bold">Download libraries</span> to obtain additional JPA implementation libraries.</p>
-<p>If Dali derives the incorrect schema, select <span class="bold">Override the Default Schema for Connection</span>. Using this option, you can select a development time schema for defaults and validation.</p>
-<p>If you clear the <span class="bold">Create orm.xml</span> option (which is selected by default), you can later add a mapping file to the project using the <a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-If the server runtime does not provide a JPA implementation, you must explicitly select a JPA implementation library.
-<p>To insure the portability of your application, you must explicitly list the managed persistence classes that are included in the persistence unit. If the server supports EJB 3.0, the persistent classes will be discovered automatically.</p>
-<p>Depending on your JPA implementation (for example, Generic or EclipseLink), different options may be available when creating JPA projects.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-<li>
-<p>Click <span class="bold">Finish</span>. You should now open the <a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a>.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a><br />
-<a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a><br />
-<a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a><br />
-<a href="tasks001.htm#BEIBADHH">Converting a Java Project to a JPA Project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_generate_classes_from_schema.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_generate_classes_from_schema.htm
deleted file mode 100644
index 429ee81..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_generate_classes_from_schema.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generating JAXB Classes from a Schema</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T19:33:3Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generating JAXB Classes from a Schema" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHCBHJD" name="CIHCBHJD"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Generating JAXB Classes from a Schema</h1>
-<p><a id="sthref197" name="sthref197"></a><a id="sthref198" name="sthref198"></a><a id="sthref199" name="sthref199"></a>Use the Generate Classes from XSD dialog to generate JAXB classes from an XML schema (&nbsp;.xsd).<a id="sthref200" name="sthref200"></a></p>
-<ol>
-<li>
-<p>From the Navigator or Project Explorer, right-click a schema (&nbsp;.xsd file) and select <span class="bold">Generate &gt; JAXB Classes</span>. The Generate Classes from Schema dialog appears.</p>
-<div class="figure"><a id="sthref201" name="sthref201"></a>
-<p class="titleinfigure"><a id="sthref202" name="sthref202"></a>Configure JAXB Class Generation dialog</p>
-<img src="img/generate_classes_from_schema.png" alt="Generate classes from schema dialog." title="Generate classes from schema dialog." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Enter the JAXB settings information and click <span class="bold">Finish</span>.</p>
-</li>
-</ol>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_configure_jaxb_class_generation_dialog.htm#CACHHHJA">Configure JAXB Class Generation dialog</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_generating_schema_from_classes.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_generating_schema_from_classes.htm
deleted file mode 100644
index 6e7cf1c..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_generating_schema_from_classes.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generating Schema from Classes</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T16:18:12Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generating Schema from Classes" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHHBJCJ" name="CIHHBJCJ"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Generating Schema from Classes</h1>
-<p><a id="sthref189" name="sthref189"></a><a id="sthref190" name="sthref190"></a><a id="sthref191" name="sthref191"></a>Use the Generate Schema from JAXB Classes wizard create an XML schema (&nbsp;.xsd) for a set of JAXB mapped classes.<a id="sthref192" name="sthref192"></a></p>
-<ol>
-<li>
-<p>From the Navigator or Project Explorer, select <span class="bold">File &gt; New &gt; Other</span>. The Select a wizard dialog appears.</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-You can also access the Generate Schema from JAXB Classes wizard from a specific project or package.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-<div class="figure"><a id="sthref193" name="sthref193"></a>
-<p class="titleinfigure"><a id="sthref194" name="sthref194"></a>Selecting the Schema From JAXB Classes wizard</p>
-<img src="img/select_jaxb_schema_wizard.png" alt="The Select a Wizard dialog with Schema From JAXB Classes selected." title="The Select a Wizard dialog with Schema From JAXB Classes selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select <span class="bold">JAXB &gt; Schema from JAXB Classes</span> and then click <span class="bold">Next</span>. The <a href="ref_schema_from_classes_page.htm#CACHBEGJ">Generate Schema from Classes</a> page of the <a href="ref_jaxb_schema_wizard.htm#CACGADFH">Generate Schema from JAXB Classes Wizard</a> appears.</p>
-<div class="figure"><a id="sthref195" name="sthref195"></a>
-<p class="titleinfigure"><a id="sthref196" name="sthref196"></a>The Generate Schema from Classes Page</p>
-<img src="img/jaxb_schmea_generation_dialog.png" alt="The JPA Project page of the Create a JPA Project wizard." title="The JPA Project page of the Create a JPA Project wizard." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select the project, package, or classes from which to generate the schema and click <span class="bold">Finish</span>.</p>
-</li>
-</ol>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_jaxb_schema_wizard.htm#CACGADFH">Generate Schema from JAXB Classes Wizard</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_inheritance.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_inheritance.htm
deleted file mode 100644
index 15a4d07..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_inheritance.htm
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Specifying entity inheritance</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Specifying entity inheritance" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHCCCJD" name="CIHCCCJD"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Specifying entity inheritance</h1>
-<p><a id="sthref93" name="sthref93"></a><a id="sthref94" name="sthref94"></a>An entity may inherit properties from other entities. You can specify a specific strategy to use for inheritance.</p>
-<p>Use this procedure to specify inheritance (<code>@Inheritance)</code> for an existing entity (<code>@Entity</code>):</p>
-<ol>
-<li>
-<p>Select the entity in the <span class="gui-object-title">Project Explorer</span>.</p>
-</li>
-<li>
-<p>In the <span class="gui-object-title">JPA Details</span> view, select the <span class="gui-object-action">Inheritance</span> information.</p>
-<div class="figure"><a id="sthref95" name="sthref95"></a>
-<p class="titleinfigure">Specifying Inheritance</p>
-<img src="img/inheritance_tab.png" alt="Selecting the Inheritance area on the JPA Details view." title="Selecting the Inheritance area on the JPA Details view." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>In the <span class="bold">Strategy</span> list, select one of the following the inheritance strategies:</p>
-<ul>
-<li>
-<p>A single table (default)</p>
-</li>
-<li>
-<p>Joined table</p>
-</li>
-<li>
-<p>One table per class</p>
-</li>
-</ul>
-</li>
-<li>
-<p>Use the following table to complete the remaining fields on the tab. See <a href="reference009.htm#CACFHGHE">"Inheritance information"</a> for additional details.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table describes the options on the Persistence Properties view, Inheritance tab." summary="This table describes the options on the Persistence Properties view, Inheritance tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="24%" />
-<col width="*" />
-<col width="23%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t13">Property</th>
-<th align="left" valign="bottom" id="r1c2-t13">Description</th>
-<th align="left" valign="bottom" id="r1c3-t13">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t13" headers="r1c1-t13"><a id="sthref96" name="sthref96"></a><a id="sthref97" name="sthref97"></a>Discriminator Column</td>
-<td align="left" headers="r2c1-t13 r1c2-t13">Name of the discriminator column when using a <span class="bold">Single</span> or <span class="bold">Joined</span> inheritance strategy.
-<p>This field corresponds to the <code>@DiscriminatorColumn</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t13 r1c3-t13"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t13" headers="r1c1-t13">Discriminator Type</td>
-<td align="left" headers="r3c1-t13 r1c2-t13">Set the discriminator type to <code>Char</code> or <code>Integer</code> (instead of its default: <code>String</code>). The <span class="bold">Discriminator Value</span> must conform to this type.</td>
-<td align="left" headers="r3c1-t13 r1c3-t13">String</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t13" headers="r1c1-t13"><a id="sthref98" name="sthref98"></a><a id="sthref99" name="sthref99"></a>Discriminator Value</td>
-<td align="left" headers="r4c1-t13 r1c2-t13">Specify the discriminator value used to differentiate an entity in this inheritance hierarchy. The value must conform to the specified <span class="bold">Discriminator Type</span>.
-<p>This field corresponds to the <code>@DiscriminatorValue</code> annotation.</p>
-</td>
-<td align="left" headers="r4c1-t13 r1c3-t13"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t13" headers="r1c1-t13">Override Default</td>
-<td align="left" headers="r5c1-t13 r1c2-t13">Use this field to specify custom primary key join columns.
-<p>This field corresponds to the <code>@PrimaryKeyJoinClumn</code> annotation.</p>
-</td>
-<td align="left" headers="r5c1-t13 r1c3-t13"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations the entity field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Inheritance(strategy=InheritanceType.<span class="italic">&lt;INHERITANCE_STRATEGY&gt;</span>)
-@DiscriminatorColumn(name="<span class="italic">&lt;DISCRIMINATOR_COLUMN&gt;</span>",
-    discriminatorType=<span class="italic">&lt;DISCRIMINATOR_TYPE&gt;</span>)
-@DiscriminatorValue(value-"<span class="italic">&lt;DISCRIMINATOR_VALUE&gt;</span>")
-@PrimaryKeyJoinColumn(name="<span class="italic">&lt;JOIN_COLUMN_NAME&gt;</span>", 
-    referencedColumnName = "<span class="italic">&lt;REFERENCED_COLUMN_NAME&gt;</span>")
-
-</pre>
-<p><a id="sthref100" name="sthref100"></a><a id="sthref101" name="sthref101"></a><a id="sthref102" name="sthref102"></a>The following figures illustrates the different inheritance strategies.</p>
-<div class="figure"><a id="sthref103" name="sthref103"></a>
-<p class="titleinfigure">Single Table Inheritance</p>
-<img src="img/inheritance_single.png" alt="This figure illustrates entity inheritance in a single table." title="This figure illustrates entity inheritance in a single table." /><br /></div>
-<!-- class="figure" -->
-<div class="figure"><a id="sthref104" name="sthref104"></a>
-<p class="titleinfigure"><a id="sthref105" name="sthref105"></a><a id="sthref106" name="sthref106"></a>Joined Table Inheritance</p>
-<img src="img/inheritance_join.png" alt="This figure illustrates a joined subclass inheritance strategy." title="This figure illustrates a joined subclass inheritance strategy." /><br /></div>
-<!-- class="figure" -->
-<br />
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br /></div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_orm.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_orm.htm
deleted file mode 100644
index 8968739..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_orm.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Managing the orm.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Managing the orm.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHDGDCD" name="CIHDGDCD"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref58" name="sthref58"></a>Managing the orm.xml file</h1>
-<p>When creating a JPA project, (see <a href="task_create_new_project.htm#CIHHEJCJ">"Creating a new JPA project"</a>) you can also create the <code>orm.xml</code> file that defines the mapping metadata and defaults.</p>
-<p><a id="sthref59" name="sthref59"></a>Eclipse creates the <code>META-INF\orm.xml</code> file in your project's directory:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;persistence version="<span class="italic">&lt;PERSISTENCE_VERSION&gt;</span>"
-      xmlns="http://java.sun.com/xml/ns/persistence"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
-      http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt;
-  &lt;persistence-unit name="<span class="italic">&lt;PERSISTENCE_UNIT_NAME&gt;</span>"&gt;
-    &lt;provider="<span class="italic">&lt;PERSISTENCE_PROVIDER&gt;</span>" /&gt;
-  &lt;/persistence-unit&gt;
-&lt;/persistence&gt;
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a><br />
-<a href="ref_eclipselink_mapping_file.htm#CIAEDEJF">New EclipseLink Mapping File dialog</a>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks005.htm#CIHBCDCE">Working with orm.xml file</a><br />
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concepts003.htm#CHDBIJAC">The orm.xml file</a><br />
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_persistence.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_persistence.htm
deleted file mode 100644
index 92f618b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_manage_persistence.htm
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Managing the persistence.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Managing the persistence.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHDAJID" name="CIHDAJID"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1><a id="sthref47" name="sthref47"></a>Managing the persistence.xml file</h1>
-<p><a id="sthref48" name="sthref48"></a>When you create a project, Eclipse creates the <code>META-INF\persistence.xml</code> file in the project's directory.</p>
-<p>You can create a stub <code>persistence.xml</code> file in the META-INF directory when you create a JPA project (see <a href="task_create_new_project.htm#CIHHEJCJ">"Creating a new JPA project"</a>). You can manage this file either through the XML editor (see ) or through the <a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-Depending on your JPA implementation (for example, EclipseLink), the following additional pages may be available in the persistence.xml Editor:
-<ul>
-<li>
-<p><a href="reference019.htm#CIAJAFEG">Customization</a></p>
-<p>Use this page to define change-tracking and session customizer-related properties.</p>
-</li>
-<li>
-<p><a href="reference020.htm#CIABEDCH">Caching</a></p>
-<p>Use this page to define caching properties.</p>
-</li>
-<li>
-<p><a href="reference021.htm#CIABGHHI">Logging</a></p>
-<p>Use this page to define logging properties.</p>
-</li>
-<li>
-<p><a href="reference022.htm#CIAFJCHE">Options</a></p>
-<p>Use this page to define session and target database properties.</p>
-</li>
-<li>
-<p><a href="reference023.htm#CIACCFCB">Schema Generation</a></p>
-<p>Use this page to define DDL-related properties.</p>
-</li>
-</ul>
-<p>For projects using the EclipseLink JPA implementation, the Connections page also includes JDBC connection pool properties.</p>
-<p>If the project uses the Generic platform, then only the <a href="ref_persistence_general.htm#CIACIFGJ">General</a>, <a href="reference018.htm#CIAFFJIE">Connection</a>, <a href="reference024.htm#CIAHJDFF">Properties</a> and <a href="reference025.htm#CIAHCJAH">Source</a> pages are available.</p>
-</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<p>To use the <code>persistence.xml</code> Editor:</p>
-<ol>
-<li>
-<p>Open the <code>peristence.xml</code> file. The <a href="ref_persistence_general.htm#CIACIFGJ">General</a> page of the editor appears.</p>
-</li>
-<li>
-<p>Use the <span class="bold">General</span> page to define the <code>persistence.xml</code> files <code>&lt;persistent-unit&gt;</code>-related attributes as well as the <code>&lt;provider&gt;</code>, and <code>&lt;class&gt;</code> elements (described in the following table).</p>
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-The persistence.xml Editor's Source page enables you to view and edit the raw XML file.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-<div class="inftblinformal">
-<table class="Informal" summary="This table lists the properties of the persistence.xml editor." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0">
-<col width="29%" />
-<col width="29%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t8">Property</th>
-<th align="left" valign="bottom" id="r1c2-t8">Description</th>
-<th align="left" valign="bottom" id="r1c3-t8">Element Defined</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t8" headers="r1c1-t8">Name</td>
-<td align="left" headers="r2c1-t8 r1c2-t8">Enter the name of the persistence unit.</td>
-<td align="left" headers="r2c1-t8 r1c3-t8"><code>&lt;persistence-unit name = "&lt;Name&gt;"&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t8" headers="r1c1-t8"><a id="sthref49" name="sthref49"></a>Persistence Provider</td>
-<td align="left" headers="r3c1-t8 r1c2-t8">Enter the name of the persistence provider.</td>
-<td align="left" headers="r3c1-t8 r1c3-t8"><code>&lt;provider&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t8" headers="r1c1-t8">Description</td>
-<td align="left" headers="r4c1-t8 r1c2-t8">Enter a description for this persistence unit. This is an optional property.</td>
-<td align="left" headers="r4c1-t8 r1c3-t8"><code>&lt;description&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t8" headers="r1c1-t8"><a id="sthref50" name="sthref50"></a>Managed Classes</td>
-<td align="left" headers="r5c1-t8 r1c2-t8">Add or remove the classes managed through the persistence unit.</td>
-<td align="left" headers="r5c1-t8 r1c3-t8"><code>&lt;class&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t8" headers="r1c1-t8">&nbsp;&nbsp;Exclude&nbsp;Unlisted&nbsp;Classes</td>
-<td align="left" headers="r6c1-t8 r1c2-t8">Select to include all annotated entity classes in the root of the persistence unit.</td>
-<td align="left" headers="r6c1-t8 r1c3-t8"><code>&lt;exclude-unlisted-classes&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t8" headers="r1c1-t8">XML&nbsp;Mapping&nbsp;Files</td>
-<td align="left" headers="r7c1-t8 r1c2-t8">Add or remove the object/relational mapping XML files define the classes managed through the persistence unit.</td>
-<td align="left" headers="r7c1-t8 r1c3-t8"><code>&lt;mapping-file&gt;</code></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r8c1-t8" headers="r1c1-t8">JAR&nbsp;Files</td>
-<td align="left" headers="r8c1-t8 r1c2-t8">Add or remove additional JAR files and libraries</td>
-<td align="left" headers="r8c1-t8 r1c3-t8"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblinformal" --></li>
-<li>
-<p>Use the <a href="reference018.htm#CIAFFJIE">Connection</a> page to define the <code>&lt;jta-data-source&gt;</code> and <code>&lt;non-jta-data-source&gt;</code> elements as follows:</p>
-<p>To configure the JTA (Java Transaction API) source used by the persistence provider:</p>
-<ol>
-<li>
-<p>Select <span class="bold">JTA</span> from the Transaction Type list.</p>
-</li>
-<li>
-<p>Enter the global JNDI name of the data source.</p>
-</li>
-</ol>
-<p>To configure a non-JTA data source:</p>
-<ol>
-<li>
-<p>Select <span class="bold">Resource Local</span> from the Transaction Type list.</p>
-</li>
-<li>
-<p>Enter the global JNDI name of the data source.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-Select <span class="bold">Default()</span> to use the data source provided by the container.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-</ol>
-<p><a id="sthref51" name="sthref51"></a>For projects using the Generic platform, you can also define the EclipseLink connection pool driver, connection pool driver, URL, user name and password.</p>
-</li>
-<li>
-<p>Use the table in the Properties page to set the vendor-specific <code>&lt;properties&gt;</code> element.</p>
-<p>To add <code>&lt;property&gt;</code> elements:</p>
-<ol>
-<li>
-<p>Click <span class="bold">Add</span>.</p>
-</li>
-<li>
-<p>Enter the <code>&lt;name&gt;</code> and <code>&lt;value&gt;</code> attributes for the <code>&lt;property&gt;</code> element using the table's Name and Value fields.</p>
-</li>
-</ol>
-<p>To remove a <code>&lt;property&gt;</code> element, select a defined property in the table and then click <span class="bold">Remove</span>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-If the project uses the EclipseLink platform, the connection page also includes parameters for JDBC connection pooling.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-</li>
-</ol>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_xmll_editor.htm#CIACCHID">persistence.xml Editor</a>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="tasks002.htm#CIHFEBAI">Synchronizing classes</a><br />
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a><br />
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/task_mapping.htm b/jpa/plugins/org.eclipse.jpt.doc.user/task_mapping.htm
deleted file mode 100644
index be8d8f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/task_mapping.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Mapping an entity</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Mapping an entity" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABDGBIJ" name="BABDGBIJ"></a></p>
-<div class="sect1">
-<h1>Mapping an entity</h1>
-<p>Dali supports the following mapping types for Java persistent entities:</p>
-<ul>
-<li>
-<p><a href="tasks010.htm#BABBABCE">Basic mapping</a></p>
-</li>
-<li>
-<p><a href="tasks011.htm#BABCBHDF">Embedded mapping</a></p>
-</li>
-<li>
-<p><a href="tasks012.htm#CIHDIAEE">Embedded ID mapping</a></p>
-</li>
-<li>
-<p><a href="tasks013.htm#BABGCBHG">ID mapping</a></p>
-</li>
-<li>
-<p><a href="tasks014.htm#BABEIEGD">Many-to-many mapping</a></p>
-</li>
-<li>
-<p><a href="tasks015.htm#BABHFAFJ">Many-to-one mapping</a></p>
-</li>
-<li>
-<p><a href="tasks016.htm#BABHGEBD">One-to-many mapping</a></p>
-</li>
-<li>
-<p><a href="tasks017.htm#BABFHBCJ">One-to-one mapping</a></p>
-</li>
-<li>
-<p><a href="tasks018.htm#BABHFHEI">Transient mapping</a></p>
-</li>
-<li>
-<p><a href="tasks019.htm#BABHIBII">Version mapping</a></p>
-</li>
-<li>
-<p><a href="tasks020.htm#CIHBDEAJ">Element Collection mapping</a></p>
-</li>
-</ul>
-<p>Additional mapping types (such as Basic Collection mappings) may be available when using Dali with EclipseLink.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a> <!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks.htm
deleted file mode 100644
index 00e2189..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Tasks</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-06-04T19:32:58Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Tasks" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref25" name="sthref25"></a></p>
-<h1>Tasks</h1>
-<p>This section includes detailed step-by-step procedures for accessing the Dali OR mapping tool functionality.</p>
-<ul>
-<li>
-<p><a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a></p>
-</li>
-<li>
-<p><a href="tasks001.htm#BEIBADHH">Converting a Java Project to a JPA Project</a></p>
-</li>
-<li>
-<p><a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a></p>
-</li>
-<li>
-<p><a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a></p>
-</li>
-<li>
-<p><a href="task_manage_orm.htm#CIHDGDCD">Managing the orm.xml file</a></p>
-</li>
-<li>
-<p><a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a></p>
-</li>
-<li>
-<p><a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a></p>
-</li>
-<li>
-<p><a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a></p>
-</li>
-<li>
-<p><a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a></p>
-</li>
-<li>
-<p><a href="tasks021.htm#BABBAGFI">Generating entities from tables</a></p>
-</li>
-<li>
-<p><a href="tasks023.htm#BABFAIBA">Validating mappings and reporting problems</a></p>
-</li>
-<li>
-<p><a href="tasks026.htm#BABDBCBI">Modifying persistent project properties</a></p>
-</li>
-<li>
-<p><a href="task_generating_schema_from_classes.htm#CIHHBJCJ">Generating Schema from Classes</a></p>
-</li>
-<li>
-<p><a href="task_generate_classes_from_schema.htm#CIHCBHJD">Generating JAXB Classes from a Schema</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks001.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks001.htm
deleted file mode 100644
index 0960434..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks001.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Converting a Java Project to a JPA Project</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:41Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Converting a Java Project to a JPA Project" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BEIBADHH" name="BEIBADHH"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Converting a Java Project to a JPA Project</h1>
-<p><a id="sthref35" name="sthref35"></a><a id="sthref36" name="sthref36"></a><a id="sthref37" name="sthref37"></a>Use this procedure to convert an existing Java project to a JPA project.</p>
-<ol>
-<li>
-<p>From the Navigator or Project explorer, right-click the Java project and then select <span class="bold">Configure &gt; Convert to JPA Project.</span> The Project Facets page of the Modify Faceted Project wizard appears.</p>
-<div class="figure"><a id="sthref38" name="sthref38"></a>
-<p class="titleinfigure">Modify Faceted Project Page</p>
-<img src="img/modify_faceted_project.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Change the <span class="bold">Configuration</span> to <span class="bold">Default JPA Configuration</span>.</p>
-</li>
-<li>
-<p>Click <span class="bold">Next</span>. <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a> appears.</p>
-<div class="figure"><a id="sthref39" name="sthref39"></a>
-<p class="titleinfigure">JPA Facet Page</p>
-<img src="img/new_jpa_facet_task.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the fields on the <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a> to specify your vender-specific platform, JPA implementation library, and database connection.</p>
-<p>Click <span class="bold">Manage libraries</span> to create or update your JPA user libraries. Click <span class="bold">Download libraries</span> to obtain additional JPA implementation libraries.</p>
-<p>If Dali derives the incorrect schema, select <span class="bold">Override the Default Schema for Connection</span>. Using this option, you can select a development time schema for defaults and validation.</p>
-<p>If you clear the <span class="bold">Create orm.xml</span> option (which is selected by default), you can later add a mapping file to the project using the <a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>.</p>
-</li>
-<li>
-<p>Click <span class="bold">Finish</span>.</p>
-</li>
-</ol>
-<p>The Dali OR Mapping Tool adds the JPA implementation libraries to your project and creates the necessary <code>orm.xml</code> and <code>perisistence.xml</code> files.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_new_jpa_project_wizard.htm#CACBJGBG">Create New JPA Project wizard</a><br />
-<a href="ref_persistence_perspective.htm#BABIFBDB">JPA Development perspective</a><br />
-<a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a><br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a><br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a>
-<p>&nbsp;</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks002.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks002.htm
deleted file mode 100644
index 96f9bb0..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks002.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Synchronizing classes</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Synchronizing classes" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHFEBAI" name="CIHFEBAI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Synchronizing classes</h1>
-<p>As you work with the classes in your Java project, you will need to update the <code>persistence.xml</code> file to reflect the changes. <a id="sthref52" name="sthref52"></a><a id="sthref53" name="sthref53"></a><a id="sthref54" name="sthref54"></a></p>
-<p>Use this procedure to synchronize the <code>persistence.xml</code> file:</p>
-<ol>
-<li>
-<p>Right-click the <code>persistence.xml</code> file in the <span class="gui-object-title">Project Explorer</span> and select <span class="gui-object-action">JPA Tools &gt; Synchronize Class List</span>.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-Use this function if you selected <span class="bold">Annotated classes must be listed in the persistence.xml option</span> in the <a href="ref_jpa_facet.htm#CACIFDIF">JPA Facet page</a>. In general, you do not have to use this function within the container.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<div class="figure"><a id="sthref55" name="sthref55"></a>
-<p class="titleinfigure">Synchronizing the persistence.xml File</p>
-<img src="img/synchornize_classes.png" alt="This figure shows the JPA Tools &gt; Synchronize Classes option." title="This figure shows the JPA Tools &gt; Synchronize Classes option." /><br /></div>
-<!-- class="figure" -->
-<p>Dali adds the necessary <code>&lt;class&gt;</code> elements to the <code>persistence.xml</code> file.</p>
-</li>
-<li>
-<p>Use the <span class="gui-object-title">Persistence XML Editor</span> to continue editing the <code>persistence.xml</code> file.</p>
-</li>
-</ol>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_manage_persistence.htm#CIHDAJID">Managing the persistence.xml file</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concepts002.htm#CHDHAGIH">The persistence.xml file</a><br />
-<br /></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks003.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks003.htm
deleted file mode 100644
index 818f146..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks003.htm
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Upgrading document version</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Upgrading document version" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref56" name="sthref56"></a>
-<h1>Upgrading document version</h1>
-<p>Use this procedure to migrate your project from JPA 1.0 to JPA 2.0. You must complete this upgrade to use the current JPA 2.0 features in Dali.</p>
-<div class="figure"><a id="sthref57" name="sthref57"></a>
-<p class="titleinfigure">Upgrading the persistence.xml File</p>
-<img src="img/upgrade_persistence_jpa_version.png" alt="This figure shows the JPA Tools &gt; Synchronize Classes option." title="This figure shows the JPA Tools &gt; Synchronize Classes option." /><br /></div>
-<!-- class="figure" --></div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks004.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks004.htm
deleted file mode 100644
index 90441ad..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks004.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating an orm.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating an orm.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref60" name="sthref60"></a>
-<h1>Creating an orm.xml file</h1>
-<p><a id="sthref61" name="sthref61"></a>If you opt not to create an <code>orm.xml</code> file when you create a JPA project, you can create one using the <a href="reference002.htm#CIAIJCCE">Mapping File Wizard</a>.</p>
-<p>Use this procedure to create an <code>orm.xml</code> file:</p>
-<ol>
-<li>
-<p>From the Navigator or Project Explorer, select <span class="bold">File &gt; New &gt; Other</span>. The Select a Wizard dialog appears.</p>
-<div class="figure"><a id="sthref62" name="sthref62"></a>
-<p class="titleinfigure">The Select a Wizard Dialog</p>
-<img src="img/select_a_wizard_mapping.png" alt="The Select a Wizard dialog with Mapping file selected." title="The Select a Wizard dialog with Mapping file selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Select <span class="bold">Mapping File</span> and then click <span class="bold">Next</span>. The Mapping File page appears.</p>
-<p>If you are using EclipseLink, you can select <span class="bold">EclipseLink &gt; EclipseLink Mapping File</span>.</p>
-<div class="figure"><a id="sthref63" name="sthref63"></a>
-<p class="titleinfigure">The Mapping File Page</p>
-<img src="img/mapping_file_new.png" alt="The Mapping File page." title="The Mapping File page." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Define the properties in the page and click <span class="bold">Finish</span>. The <code>orm.xml</code> file appears in the src directory of the selected JPA project. You can manage the orm.xml file using the JPA Details view or through the XML Editor. See also <a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a>.</p>
-</li>
-</ol>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks005.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks005.htm
deleted file mode 100644
index 1f96083..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks005.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Working with orm.xml file</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:42Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Working with orm.xml file" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHBCDCE" name="CIHBCDCE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Working with orm.xml file</h1>
-<p><a id="sthref64" name="sthref64"></a><a id="sthref65" name="sthref65"></a>You can work with the <code>orm.xml</code> by using the JPA Details view.</p>
-<p>Use this procedure to work with the <code>orm.xml</code> file:</p>
-<ol>
-<li>
-<p>Right-click the <code>orm.xml</code> file in the <span class="gui-object-title">Project Explorer</span> and select <span class="gui-object-action">Open</span>.</p>
-</li>
-<li>
-<p>In the JPA Structure view, select <span class="bold">EntityMappings</span>.</p>
-</li>
-<li>
-<p>Use the JPA Details view to configure the entity mapping and persistence unit defaults.</p>
-<div class="figure"><a id="sthref66" name="sthref66"></a>
-<p class="titleinfigure">JPA Details view for EntityMappings (orm.xml)</p>
-<img src="img/details_entitymappings.png" alt="JPA Details view for orm.xml file." title="JPA Details view for orm.xml file." /><br /></div>
-<!-- class="figure" --></li>
-</ol>
-<img src="img/ngrelr.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="ref_details_orm.htm#CACGDGHC">JPA Details view (for orm.xml)</a><br />
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="#CIHBCDCE">Working with orm.xml file</a><br />
-<a href="../org.eclipse.wst.xmleditor.doc.user/topics/cworkXML.html">Working with XML Files</a><br />
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concepts003.htm#CHDBIJAC">The orm.xml file</a><br /></div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks006.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks006.htm
deleted file mode 100644
index eca0d70..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks006.htm
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Entity</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Entity" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABGBIEE" name="BABGBIEE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Entity</h1>
-<p><a id="sthref70" name="sthref70"></a><a id="sthref71" name="sthref71"></a><a id="sthref72" name="sthref72"></a><a id="sthref73" name="sthref73"></a>An <span class="bold">Entity</span> is a persistent domain object.</p>
-<p>An entity <span class="italic">can be</span>:</p>
-<ul>
-<li>
-<p>Abstract or concrete classes. Entities may also extend non-entity classes as well as entity classes, and non-entity classes may extend entity classes.</p>
-</li>
-</ul>
-<p>An entity <span class="italic">must have</span>:</p>
-<ul>
-<li>
-<p>A no-arg constructor (public or protected); the entity class may have other constructors as well.</p>
-</li>
-</ul>
-<p><a id="sthref74" name="sthref74"></a><a id="sthref75" name="sthref75"></a><a id="sthref76" name="sthref76"></a>Each persistent entity must be mapped to a database table and contain a primary key. Persistent entities are identified by the <code>@Entity</code> annotation.</p>
-<p>Use this procedure to add persistence to an existing entity:</p>
-<ol>
-<li>
-<p>Open the Java class in the <span class="gui-object-title">Project Explorer.</span></p>
-</li>
-<li>
-<p>Select the class in the JPA Structure view.</p>
-</li>
-<li>
-<p>In the JPA Details view, click the mapping type hyperlink to access the Mapping Type Selection dialog. In the following figure, clicking <span class="italic">entity</span> invokes the dialog from the JPA Details View.</p>
-<div class="figure"><a id="sthref77" name="sthref77"></a>
-<p class="titleinfigure">The Mapping Type Hyperlink</p>
-<img src="img/mapped_entity_type_link.png" alt="The JPA Details view for an entity showing the mapping type hyperlink." title="The JPA Details view for an entity showing the mapping type hyperlink." /><br /></div>
-<!-- class="figure" -->
-<div align="center">
-<div class="inftblnotealso"><br />
-<table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Tip:</p>
-You can also change (or add) persistence for an entity by right-clicking the class in the JPA Structure View and then clicking <span class="bold">Map As &gt; Entity</span>.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnotealso" --></div>
-</li>
-<li>
-<p>Select <span class="bold">Entity</span> from the Mapping Type Selection dialog and then click <span class="bold">OK</span>.</p>
-<div class="figure"><a id="sthref78" name="sthref78"></a>
-<p class="titleinfigure">The Mapping Type Selection Dialog</p>
-<img src="img/mapping_type_selection_entity.png" alt="The Mapping Type selection dialog with Enity selected." title="The Mapping Type selection dialog with Enity selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the remaining <a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a><br />
-<a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a><br />
-<a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a><br /></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks007.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks007.htm
deleted file mode 100644
index 004a169..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks007.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Embeddable</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Embeddable" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFEICE" name="BABFEICE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Embeddable</h1>
-<p><a id="sthref79" name="sthref79"></a><a id="sthref80" name="sthref80"></a>An <span class="bold">Embedded</span> class is a class whose instances are stored as part of an owning entity; it shares the identity of the owning entity. Each field of the embedded class is mapped to the database table associated with the owning entity.</p>
-<p>To override the mapping information for a specific subclass, use the <code>@AttributeOverride</code> annotation for that specific class.</p>
-<p><a id="sthref81" name="sthref81"></a><a id="sthref82" name="sthref82"></a><a id="sthref83" name="sthref83"></a>An embeddable entity is identified by the <code>@Embeddable</code> annotation.</p>
-<p>Use this procedure to add embeddable persistence to an existing entity:</p>
-<ol>
-<li>
-<p>Open the Java class in the <span class="gui-object-title">Project Explorer</span>.</p>
-</li>
-<li>
-<p>Select the class in the JPA Structure view.</p>
-</li>
-<li>
-<p>Click the mapping type hyperlink to open the Mapping Type Selection dialog.</p>
-</li>
-<li>
-<p>Select <span class="bold">Embeddable</span> and then click <span class="bold">OK</span>.</p>
-<div class="figure"><a id="sthref84" name="sthref84"></a>
-<p class="titleinfigure">Mapping Type Selection Dialog (Embeddable)</p>
-<img src="img/mapping_type_selection_embed.png" alt="The Mapping Type Selection dialog with Embeddable selected." title="The Mapping Type Selection dialog with Embeddable selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the remaining <a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<dl>
-<dd><a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a></dd>
-<dd><a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a></dd>
-<dd><a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a></dd>
-</dl>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks008.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks008.htm
deleted file mode 100644
index 1b5054e..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks008.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Mapped superclass</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Mapped superclass" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABDAGCI" name="BABDAGCI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Mapped superclass</h1>
-<p><a id="sthref85" name="sthref85"></a><a id="sthref86" name="sthref86"></a>An entity that extends a <span class="bold">Mapped Superclass</span> class inherits the persistent state and mapping information from a superclass. You should use a mapped superclass to define mapping information that is common to multiple entity classes.</p>
-<p>A mapped superclass <span class="italic">can be</span>:</p>
-<ul>
-<li>
-<p>Abstract or concrete classes</p>
-</li>
-</ul>
-<p>A mapped superclass <span class="italic">cannot be</span>:</p>
-<ul>
-<li>
-<p>Be queried or passed as an argument to Entity-Manager or Query operations</p>
-</li>
-<li>
-<p>Be the target of a persistent relationship</p>
-</li>
-</ul>
-<p>A mapped superclass does not have a defined database table. Instead, its mapping information is derived from its superclass. To override the mapping information for a specific subclass, use the <code>@AttributeOverride</code> annotation for that specific class.</p>
-<p><a id="sthref87" name="sthref87"></a><a id="sthref88" name="sthref88"></a><a id="sthref89" name="sthref89"></a><a id="sthref90" name="sthref90"></a>A mapped superclass is identified by the <code>@MappedSuperclass</code> annotation.</p>
-<p>Use this procedure to add Mapped Superclass persistence to an existing entity:</p>
-<ol>
-<li>
-<p>Open the Java class in the <span class="gui-object-title">Project Explorer</span>.</p>
-</li>
-<li>
-<p>Select the class in the JPA Structure view.</p>
-</li>
-<li>
-<p>In the JPA Details view, click the mapping type hyperlink to open the Mapping Type Selection dialog.</p>
-</li>
-<li>
-<p>Select <span class="bold">Mapped Superclass</span> and then <span class="bold">OK</span>.</p>
-<div class="figure"><a id="sthref91" name="sthref91"></a>
-<p class="titleinfigure">Mapping Type Selection Dialog (Mapped Superclass)</p>
-<img src="img/mapping_type_selection_superclass.png" alt="The Mapping Type Selection dialog with Mapped Superclass selected." title="The Mapping Type Selection dialog with Mapped Superclass selected." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete the remaining <a href="ref_persistence_prop_view.htm#BABFAEBB">JPA Details view (for entities)</a>.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related tasks" title="Related tasks" /><br />
-<br />
-<a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a><br />
-<a href="task_additonal_tables.htm#CIHGBIEI">Specifying additional tables</a><br />
-<a href="task_inheritance.htm#CIHCCCJD">Specifying entity inheritance</a><br /></div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks009.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks009.htm
deleted file mode 100644
index 82e8697..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks009.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Creating Named Queries</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Creating Named Queries" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABIGBGG" name="BABIGBGG"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Creating Named Queries</h1>
-<p><a id="sthref107" name="sthref107"></a><a id="sthref108" name="sthref108"></a>Named queries improve application performance because they are prepared once and they (and all of their associated supporting objects) can be efficiently reused thereafter, making them well suited for complex and frequently executed operations. Named queries use the JPA query language for portable execution on any underlying database; named native queries use the SQL language native to the underlying database.</p>
-<p>Use this procedure to add <code>@NamedQuery</code> and <code>@NamedNativeQuery</code> annotations to the entity.</p>
-<p>To create a named query:</p>
-<ol>
-<li>
-<p>Select the entity in the Project Explorer.</p>
-</li>
-<li>
-<p>In the JPA Details view, expand Queries.</p>
-</li>
-<li>
-<p>Click <span class="bold">Add</span> for a named query, or <span class="bold">Add Native</span> for a native query.</p>
-</li>
-<li>
-<p>In the dialog that appears, enter the name of the query in the Name field and then click OK.</p>
-</li>
-<li>
-<p>Enter the query in the Query field.</p>
-</li>
-<li>
-<p><a id="sthref109" name="sthref109"></a><a id="sthref110" name="sthref110"></a><a id="sthref111" name="sthref111"></a><a id="sthref112" name="sthref112"></a>To add a Query hint, click <span class="bold">Add</span>.</p>
-<div class="figure"><a id="sthref113" name="sthref113"></a>
-<p class="titleinfigure">Entering a Named Query</p>
-<img src="img/task_entering_query.png" alt="The Queries section of the JPA Details view." title="The Queries section of the JPA Details view." /><br /></div>
-<!-- class="figure" --></li>
-</ol>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks010.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks010.htm
deleted file mode 100644
index f4022d9..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks010.htm
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Basic mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:43Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Basic mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABBABCE" name="BABBABCE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Basic mapping</h1>
-<p><a id="sthref114" name="sthref114"></a><a id="sthref115" name="sthref115"></a><a id="sthref116" name="sthref116"></a><a id="sthref117" name="sthref117"></a>Use a <span class="bold">Basic Mapping</span> to map an attribute directly to a database column. Basic mappings may be used only with the following attribute types:</p>
-<ul>
-<li>
-<p>Java primitive types and wrappers of the primitive types</p>
-</li>
-<li>
-<p><code>java.lang.String, java.math.BigInteger</code></p>
-</li>
-<li>
-<p><code>java.math.BigDecimal</code></p>
-</li>
-<li>
-<p><code>java.util.Date</code></p>
-</li>
-<li>
-<p><code>java.util.Calendar, java.sql.Date</code></p>
-</li>
-<li>
-<p><code>java.sql.Time</code></p>
-</li>
-<li>
-<p><code>java.sql.Timestamp</code></p>
-</li>
-<li>
-<p><code>byte[]</code></p>
-</li>
-<li>
-<p><code>Byte[]</code></p>
-</li>
-<li>
-<p><code>char[]</code></p>
-</li>
-<li>
-<p><code>Character[]</code></p>
-</li>
-<li>
-<p>enums</p>
-</li>
-<li>
-<p>any other type that implements <code>Serializable</code></p>
-</li>
-</ul>
-<p>To create a basic mapping:</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, right-click the field to map. Select <span class="bold">Map As &gt; Basic</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected field.</p>
-</li>
-<li>
-<p>Use this table to complete the remaining fields on the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t14">Property</th>
-<th align="left" valign="bottom" id="r1c2-t14">Description</th>
-<th align="left" valign="bottom" id="r1c3-t14">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t14" headers="r1c1-t14">Entity Map Hyperlink</td>
-<td align="left" headers="r2c1-t14 r1c2-t14">Defines this mapping as a <span class="bold">Basic Mapping</span>.
-<p>This corresponds to the <code>@Basic</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t14 r1c3-t14">Basic</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t14" headers="r1c1-t14">Column</td>
-<td align="left" headers="r3c1-t14 r1c2-t14">The database column mapped to the entity attribute. See <a href="ref_mapping_general.htm#CACGCBHB">"Column"</a> for details.</td>
-<td align="left" headers="r3c1-t14 r1c3-t14">By default, the Column is assumed to be named identically to the attribute and always included in the <code>INSERT</code> and <code>UPDATE</code> statements.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t14" headers="r1c1-t14">Table</td>
-<td align="left" headers="r4c1-t14 r1c2-t14">Name of the database table.</td>
-<td align="left" headers="r4c1-t14 r1c3-t14"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t14" headers="r1c1-t14">Fetch</td>
-<td align="left" headers="r5c1-t14 r1c2-t14">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details.
-<ul>
-<li>
-<p>Eager</p>
-</li>
-<li>
-<p>Lazy</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t14 r1c3-t14">Eager</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t14" headers="r1c1-t14">Optional</td>
-<td align="left" headers="r6c1-t14 r1c2-t14">Specifies if this field is can be null.</td>
-<td align="left" headers="r6c1-t14 r1c3-t14">Yes</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t14" headers="r1c1-t14">Type</td>
-<td align="left" headers="r7c1-t14 r1c2-t14">Specifies the type of data:
-<ul>
-<li>
-<p>Default</p>
-</li>
-<li>
-<p>LOB &ndash; Specifies if this is a large objects (BLOB or CLOB). See <a href="ref_mapping_general.htm#CACBBIBI">"Lob"</a> for details.</p>
-</li>
-<li>
-<p>Temporal &ndash; Specify if this is a Date, Time, or Timestamp object. See <a href="ref_mapping_general.htm#CACEAJGD">"Temporal"</a> for details.</p>
-</li>
-<li>
-<p>Enumerated &ndash; Specify how to persist enumerated constraints as ordinal or string, in order to match an existing database schema.</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r7c1-t14 r1c3-t14"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Column(name="<span class="italic">&lt;COLUMN_NAME&gt;</span>", table="<span class="italic">&lt;COLUMN_TABLE&gt;</span>", 
-    insertable=<span class="italic">&lt;INSERTABLE&gt;</span>, updatable=<span class="italic">&lt;UPDATABLE&gt;</span>)
-@Basic(fetch=FetchType.<span class="italic">&lt;FETCH_TYPE&gt;</span>, optional = <span class="italic">&lt;OPTIONAL&gt;</span>)
-@Temporal(TemporalType.<span class="italic">&lt;TEMPORAL&gt;</span>)
-
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks011.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks011.htm
deleted file mode 100644
index 5634d78..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks011.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Embedded mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Embedded mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABCBHDF" name="BABCBHDF"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Embedded mapping</h1>
-<p><a id="sthref118" name="sthref118"></a><a id="sthref119" name="sthref119"></a><a id="sthref120" name="sthref120"></a><a id="sthref121" name="sthref121"></a>Use an <span class="bold">Embedded Mapping</span> to specify a persistent field or property of an entity whose value is an instance of an embeddable class.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, right-click the field to map.</p>
-</li>
-<li>
-<p>Select <span class="bold">Map as &gt; Embedded</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected field.</p>
-</li>
-<li>
-<p>Use this table to complete the remaining fields on the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t15">Property</th>
-<th align="left" valign="bottom" id="r1c2-t15">Description</th>
-<th align="left" valign="bottom" id="r1c3-t15">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t15" headers="r1c1-t15">Entity Mapping Hyperlink</td>
-<td align="left" headers="r2c1-t15 r1c2-t15">Defines this mapping as a <span class="bold">Embedded</span>.
-<p>This corresponds to the <code>@Embedded</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t15 r1c3-t15">Embedded</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t15" headers="r1c1-t15">Attribute Overrides</td>
-<td align="left" headers="r3c1-t15 r1c2-t15">Specify to override the default mapping of an entity's attribute. Select <span class="bold">Override Default</span>.</td>
-<td align="left" headers="r3c1-t15 r1c3-t15"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Embedded
-@AttributeOverride(column=@Column(table="<span class="italic">&lt;COLUMN_TABLE&gt;</span>", name = "<span class="italic">&lt;COLUMN_NAME&gt;</span>"))
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks012.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks012.htm
deleted file mode 100644
index 425fb64..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks012.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Embedded ID mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Embedded ID mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHDIAEE" name="CIHDIAEE"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Embedded ID mapping</h1>
-<p><a id="sthref122" name="sthref122"></a><a id="sthref123" name="sthref123"></a><a id="sthref124" name="sthref124"></a><a id="sthref125" name="sthref125"></a>Use an <span class="bold">Embedded ID Mapping</span> to specify the primary key of an embedded ID. These mappings may be used with a <a href="tasks007.htm#BABFEICE">Embeddable</a> entities.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As &gt; Embedded Id</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected field.</p>
-</li>
-<li>
-<p>Use this table to complete the remaining fields on the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t16">Property</th>
-<th align="left" valign="bottom" id="r1c2-t16">Description</th>
-<th align="left" valign="bottom" id="r1c3-t16">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t16" headers="r1c1-t16">Entity Mapping Hyperlink</td>
-<td align="left" headers="r2c1-t16 r1c2-t16">Defines this mapping as a <span class="bold">Embedded Id</span>.
-<p>This corresponds to the <code>@EmbeddedId</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t16 r1c3-t16">Embedded Id</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@EmbeddedId
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks013.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks013.htm
deleted file mode 100644
index 8aadf81..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks013.htm
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>ID mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="ID mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABGCBHG" name="BABGCBHG"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>ID mapping</h1>
-<p><a id="sthref126" name="sthref126"></a><a id="sthref127" name="sthref127"></a><a id="sthref128" name="sthref128"></a><a id="sthref129" name="sthref129"></a>Use an <span class="bold">ID Mapping</span> to specify the primary key of an entity. ID mappings may be used with a <a href="tasks006.htm#BABGBIEE">Entity</a> or <a href="tasks008.htm#BABDAGCI">Mapped superclass</a>. Each <a href="tasks006.htm#BABGBIEE">Entity</a> must have an ID mapping.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right click the filed and then select <span class="bold">Map as &gt; ID</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-<li>
-<p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields in the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="22%" />
-<col width="*" />
-<col width="35%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t17">Property</th>
-<th align="left" valign="bottom" id="r1c2-t17">Description</th>
-<th align="left" valign="bottom" id="r1c3-t17">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t17" headers="r1c1-t17">Entity Mapping Hyperlink</td>
-<td align="left" headers="r2c1-t17 r1c2-t17">Defines this mapping as an <span class="bold">ID Mapping</span>.
-<p>This field corresponds to the <code>@Id</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t17 r1c3-t17">ID</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t17" headers="r1c1-t17">Column</td>
-<td align="left" headers="r3c1-t17 r1c2-t17">The database column mapped to the entity attribute. See <a href="ref_mapping_general.htm#CACGCBHB">"Column"</a> for details.</td>
-<td align="left" headers="r3c1-t17 r1c3-t17">By default, the Column is assumed to be named identically to the attribute.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t17" headers="r1c1-t17">Table</td>
-<td align="left" headers="r4c1-t17 r1c2-t17">The database table mapped to the entity attribute.</td>
-<td align="left" headers="r4c1-t17 r1c3-t17">By default, the Table is assumed to be identical to the table associated with the entity.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t17" headers="r1c1-t17">Temporal</td>
-<td align="left" headers="r5c1-t17 r1c2-t17">Specifies the type of data. See <a href="ref_mapping_general.htm#CACEAJGD">"Temporal"</a> for details.
-<ul>
-<li>
-<p>Date</p>
-</li>
-<li>
-<p>Time</p>
-</li>
-<li>
-<p>Timestamp</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t17 r1c3-t17"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>Use this table to complete the fields in <a href="ref_primary_key.htm#CACFCCAB">Primary Key Generation information</a> area in the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the PK Generation tab." summary="This table lists the fields in the PK Generation tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="22%" />
-<col width="*" />
-<col width="35%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t18">Property</th>
-<th align="left" valign="bottom" id="r1c2-t18">Description</th>
-<th align="left" valign="bottom" id="r1c3-t18">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t18" headers="r1c1-t18">Primary Key Generation</td>
-<td align="left" headers="r2c1-t18 r1c2-t18">These fields define how the primary key is generated.</td>
-<td align="left" headers="r2c1-t18 r1c3-t18"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t18" headers="r1c1-t18">&nbsp;&nbsp;Strategy</td>
-<td align="left" headers="r3c1-t18 r1c2-t18">See <a href="ref_primary_key.htm#CACBAJBC">"Primary Key Generation"</a> for details.
-<ul>
-<li>
-<p>Auto</p>
-</li>
-<li>
-<p>Sequence</p>
-</li>
-<li>
-<p>Identity</p>
-</li>
-<li>
-<p>Table</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r3c1-t18 r1c3-t18">Auto</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t18" headers="r1c1-t18">&nbsp;&nbsp;Generator&nbsp;Name</td>
-<td align="left" headers="r4c1-t18 r1c2-t18">Name of the primary key generator specified in the <span class="bold">Strategy</span></td>
-<td align="left" headers="r4c1-t18 r1c3-t18"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Additional fields will appear in the <a href="ref_primary_key.htm#CACFCCAB">Primary Key Generation information</a> area, depending on the selected Strategy. See <a href="ref_persistence_map_view.htm#BABIFBAF">"JPA Details view (for attributes)"</a> for additional information.</p>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Id
-@Column(name="<span class="italic">&lt;COLUMN_NAME&gt;</span>", table="<span class="italic">&lt;TABLE_NAME&gt;</span>", insertable=<span class="italic">&lt;INSERTABLE&gt;</span>,
-    updatable=<span class="italic">&lt;UPDATABLE&gt;</span>)
-@Temporal(<span class="italic">&lt;TEMPORAL&gt;</span>)
-@GeneratedValue(strategy=GeneratorType.<span class="italic">&lt;STRATEGY&gt;</span>, generator="<span class="italic">&lt;GENERATOR_NAME&gt;</span>")@TableGenerator(name="<span class="italic">&lt;TABLE_GENERATOR_NAME&gt;</span>", table = "<span class="italic">&lt;TABLE_GENERATOR_TABLE&gt;</span>", 
-    pkColumnName = "<span class="italic">&lt;TABLE_GENERATOR_PK&gt;</span>", 
-    valueColumnName = "<span class="italic">&lt;TABLE_GENERATOR_VALUE_COLUMN&gt;</span>", 
-    pkColumnValue = "<span class="italic">&lt;TABLE_GENERATOR_PK_COLUMN_VALUE&gt;</span>")@SequenceGenerator(name="<span class="italic">&lt;SEQUENCE_GENERATOR_NAME&gt;</span>", 
-    sequenceName="<span class="italic">&lt;SEQUENCE_GENERATOR_SEQUENCE&gt;</span>")
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks014.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks014.htm
deleted file mode 100644
index d158190..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks014.htm
+++ /dev/null
@@ -1,179 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Many-to-many mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Many-to-many mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABEIEGD" name="BABEIEGD"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Many-to-many mapping</h1>
-<p><a id="sthref130" name="sthref130"></a><a id="sthref131" name="sthref131"></a><a id="sthref132" name="sthref132"></a><a id="sthref133" name="sthref133"></a>Use a <span class="bold">Many-to-Many Mapping</span> to define a many-valued association with many-to-many multiplicity. A many-to-many mapping has two sides: the <span class="italic">owning side</span> and <span class="italic">non-owning side</span>. You must specify the join table on the owning side. For bidirectional mappings, either side may be the owning side.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As &gt; Many-to-Many</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected field.</p>
-</li>
-<li>
-<p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields of the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t19">Property</th>
-<th align="left" valign="bottom" id="r1c2-t19">Description</th>
-<th align="left" valign="bottom" id="r1c3-t19">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t19" headers="r1c1-t19">Mapping Entity Hyperlink</td>
-<td align="left" headers="r2c1-t19 r1c2-t19">Defines this mapping as a <span class="bold">Many to Many Mapping</span>.
-<p>This field corresponds to the <code>@ManyToMany</code> annotation.</p>
-</td>
-<td align="left" headers="r2c1-t19 r1c3-t19">Many to Many</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t19" headers="r1c1-t19">Target Entity</td>
-<td align="left" headers="r3c1-t19 r1c2-t19">The entity to which this attribute is mapped.</td>
-<td align="left" headers="r3c1-t19 r1c3-t19">null
-<p>You do not need to explicitly specify the target entity, since it can be inferred from the type of object being referenced.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t19" headers="r1c1-t19">Fetch</td>
-<td align="left" headers="r4c1-t19 r1c2-t19">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details.
-<ul>
-<li>
-<p>Eager</p>
-</li>
-<li>
-<p>Lazy</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r4c1-t19 r1c3-t19">Lazy</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t19" headers="r1c1-t19">Mapped By</td>
-<td align="left" headers="r5c1-t19 r1c2-t19">The database field that owns the relationship.</td>
-<td align="left" headers="r5c1-t19 r1c3-t19"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t19" headers="r1c1-t19">Order By</td>
-<td align="left" headers="r6c1-t19 r1c2-t19">Specify the default order for objects returned from a query. See <a href="ref_mapping_general.htm#CACDADIH">"Order By"</a> for details.
-<ul>
-<li>
-<p>No ordering</p>
-</li>
-<li>
-<p>Primary key</p>
-</li>
-<li>
-<p>Custom</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r6c1-t19 r1c3-t19">No ordering</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>Use this table to complete the fields in the <a href="reference011.htm#CACBAEBC">Join Table Information</a> area in the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." summary="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t20">Property</th>
-<th align="left" valign="bottom" id="r1c2-t20">Description</th>
-<th align="left" valign="bottom" id="r1c3-t20">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t20" headers="r1c1-t20">Name</td>
-<td align="left" headers="r2c1-t20 r1c2-t20">Name of the join table that contains the foreign key column.</td>
-<td align="left" headers="r2c1-t20 r1c3-t20">You must specify the join table on the owning side.
-<p>By default, the name is assumed to be the primary tables associated with the entities concatenated with an underscore.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t20" headers="r1c1-t20">Join Columns</td>
-<td align="left" headers="r3c1-t20 r1c2-t20">Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</td>
-<td align="left" headers="r3c1-t20 r1c3-t20">By default, the name is assumed to be the primary tables associated with the entities concatenated with an underscore.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t20" headers="r1c1-t20">Inverse Join Columns</td>
-<td align="left" headers="r4c1-t20 r1c2-t20">Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</td>
-<td align="left" headers="r4c1-t20 r1c3-t20">By default, the mapping is assumed to have a single join.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>To add a new Join or Inverse Join Column, click <span class="gui-object-action">Add</span>.</p>
-<p>To edit an existing Join or Inverse Join Column, select the field to and click <span class="gui-object-action">Edit</span>.</p>
-</li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@JoinTable(joinColumns=@JoinColumn(name="<span class="italic">&lt;JOIN_COLUMN&gt;</span>"), 
-    name = "<span class="italic">&lt;JOIN_TABLE_NAME&gt;</span>")
-@ManyToMany(cascade=CascadeType.<span class="italic">&lt;CASCADE_TYPE&gt;</span>, fetch=FetchType.<span class="italic">&lt;FETCH_TYPE&gt;</span>,
-    targetEntity=<span class="italic">&lt;TARGET_ENTITY&gt;</span>, mappedBy = "<span class="italic">&lt;MAPPED_BY&gt;</span>")
-@OrderBy("<span class="italic">&lt;ORDER_BY&gt;</span>")
-
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks015.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks015.htm
deleted file mode 100644
index 05eba6a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks015.htm
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Many-to-one mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Many-to-one mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABHFAFJ" name="BABHFAFJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Many-to-one mapping</h1>
-<p><a id="sthref134" name="sthref134"></a><a id="sthref135" name="sthref135"></a><a id="sthref136" name="sthref136"></a><a id="sthref137" name="sthref137"></a>Use a <span class="bold">Many-to-One</span> mapping to defines a single-valued association to another entity class that has many-to-one multiplicity.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right click the field and then select <span class="bold">Map As &gt; Many-to-One</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-<li>
-<p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields JPA Details view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields ion the General tab for this mapping." summary="This table lists the fields ion the General tab for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t21">Property</th>
-<th align="left" valign="bottom" id="r1c2-t21">Description</th>
-<th align="left" valign="bottom" id="r1c3-t21">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t21" headers="r1c1-t21">Mapping Entity Hyperlink</td>
-<td align="left" headers="r2c1-t21 r1c2-t21">Defines mapping as <span class="bold">Many-to-One</span>. This corresponds to the <code>@ManyToOne</code> annotation.</td>
-<td align="left" headers="r2c1-t21 r1c3-t21">Many-to-One</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t21" headers="r1c1-t21">Target Entity</td>
-<td align="left" headers="r3c1-t21 r1c2-t21">The entity to which this attribute is mapped.</td>
-<td align="left" headers="r3c1-t21 r1c3-t21">null
-<p>You do not need to explicitly specify the target entity, since it can be inferred from the type of object being referenced.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t21" headers="r1c1-t21">Fetch</td>
-<td align="left" headers="r4c1-t21 r1c2-t21">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details.
-<ul>
-<li>
-<p>Eager</p>
-</li>
-<li>
-<p>Lazy</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r4c1-t21 r1c3-t21">Eager</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t21" headers="r1c1-t21">Cascade</td>
-<td align="left" headers="r5c1-t21 r1c2-t21">See <a href="ref_mapping_general.htm#CACJAIHB">"Cascade Type"</a> for details.
-<ul>
-<li>
-<p>Default</p>
-</li>
-<li>
-<p>All</p>
-</li>
-<li>
-<p>Persist</p>
-</li>
-<li>
-<p>Merge</p>
-</li>
-<li>
-<p>Remove</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t21 r1c3-t21">Default</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t21" headers="r1c1-t21">Optional</td>
-<td align="left" headers="r6c1-t21 r1c2-t21">Specifies if this field is can be null.</td>
-<td align="left" headers="r6c1-t21 r1c3-t21">Yes</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>Use this table to complete the fields on the <a href="reference012.htm#CACFCEJC">Join Columns Information</a> tab in the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t22">Property</th>
-<th align="left" valign="bottom" id="r1c2-t22">Description</th>
-<th align="left" valign="bottom" id="r1c3-t22">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t22" headers="r1c1-t22">Join Column</td>
-<td align="left" headers="r2c1-t22 r1c2-t22"><a id="sthref138" name="sthref138"></a><a id="sthref139" name="sthref139"></a>Specify a mapped column for joining an entity association. This field corresponds to the <code>@JoinColum</code> attribute.
-<p>Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</p>
-</td>
-<td align="left" headers="r2c1-t22 r1c3-t22">By default, the mapping is assumed to have a single join.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@JoinTable(joinColumns=@JoinColumn(name="<span class="italic">&lt;JOIN_COLUMN&gt;</span>"), 
-    name = "<span class="italic">&lt;JOIN_TABLE_NAME&gt;</span>")
-@ManyToOne(targetEntity=<span class="italic">&lt;TARGET_ENTITY&gt;</span>, fetch=<span class="italic">&lt;FETCH_TYPE&gt;</span>, 
-    cascade=<span class="italic">&lt;CASCADE_TYPE&gt;</span>)
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks016.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks016.htm
deleted file mode 100644
index 417c743..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks016.htm
+++ /dev/null
@@ -1,197 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>One-to-many mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="One-to-many mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABHGEBD" name="BABHGEBD"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>One-to-many mapping</h1>
-<p><a id="sthref140" name="sthref140"></a><a id="sthref141" name="sthref141"></a><a id="sthref142" name="sthref142"></a><a id="sthref143" name="sthref143"></a>Use a <span class="bold">One-to-Many Mapping</span> to define a relationship with one-to-many multiplicity.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As &gt; One-to-many</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-<li>
-<p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields JPA Details view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the General tab of the Persistence Properties view for this mapping." summary="This table lists the fields in the General tab of the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t23">Property</th>
-<th align="left" valign="bottom" id="r1c2-t23">Description</th>
-<th align="left" valign="bottom" id="r1c3-t23">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t23" headers="r1c1-t23">Mapping Entity Type Hyperlink</td>
-<td align="left" headers="r2c1-t23 r1c2-t23">Defines mapping as <span class="bold">One-to-Many</span>. This corresponds to the <code>@OneToMany</code> annotation.</td>
-<td align="left" headers="r2c1-t23 r1c3-t23">One-to-Many</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t23" headers="r1c1-t23">Target Entity</td>
-<td align="left" headers="r3c1-t23 r1c2-t23">The entity to which this attribute is mapped.</td>
-<td align="left" headers="r3c1-t23 r1c3-t23"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t23" headers="r1c1-t23">Cascade</td>
-<td align="left" headers="r4c1-t23 r1c2-t23">See <a href="ref_mapping_general.htm#CACJAIHB">"Cascade Type"</a> for details.
-<ul>
-<li>
-<p>Default</p>
-</li>
-<li>
-<p>All</p>
-</li>
-<li>
-<p>Persist</p>
-</li>
-<li>
-<p>Merge</p>
-</li>
-<li>
-<p>Remove</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r4c1-t23 r1c3-t23"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t23" headers="r1c1-t23">Fetch</td>
-<td align="left" headers="r5c1-t23 r1c2-t23">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details.
-<ul>
-<li>
-<p>Eager</p>
-</li>
-<li>
-<p>Lazy</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t23 r1c3-t23">Eager</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r6c1-t23" headers="r1c1-t23">Mapped By</td>
-<td align="left" headers="r6c1-t23 r1c2-t23">The database field that owns the relationship.</td>
-<td align="left" headers="r6c1-t23 r1c3-t23"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r7c1-t23" headers="r1c1-t23">Order By</td>
-<td align="left" headers="r7c1-t23 r1c2-t23">Specify the default order for objects returned from a query. See <a href="ref_mapping_general.htm#CACDADIH">"Order By"</a> for details.
-<ul>
-<li>
-<p>No ordering</p>
-</li>
-<li>
-<p>Primary key</p>
-</li>
-<li>
-<p>Custom</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r7c1-t23 r1c3-t23">No ordering</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>Use this table to complete the <a href="reference011.htm#CACBAEBC">Join Table Information</a> fields in the JPA Details view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." summary="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t24">Property</th>
-<th align="left" valign="bottom" id="r1c2-t24">Description</th>
-<th align="left" valign="bottom" id="r1c3-t24">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t24" headers="r1c1-t24">Name</td>
-<td align="left" headers="r2c1-t24 r1c2-t24">Name of the join table</td>
-<td align="left" headers="r2c1-t24 r1c3-t24">By default, the name is assumed to be the primary tables associated with the entities concatenated with an underscore.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t24" headers="r1c1-t24">Join Columns</td>
-<td align="left" headers="r3c1-t24 r1c2-t24">Specify two or more join columns (that is, a primary key).</td>
-<td align="left" headers="r3c1-t24 r1c3-t24"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t24" headers="r1c1-t24">Inverse Join Columns</td>
-<td align="left" headers="r4c1-t24 r1c2-t24">The join column on the owned (or inverse) side of the association: the owned entity's primary key column.</td>
-<td align="left" headers="r4c1-t24 r1c3-t24"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@OneToMany(targetEntity=<span class="italic">&lt;TARGET_ENTITY&gt;</span>)
-@Column(name="<span class="italic">&lt;COLUMN&gt;</span>")
-
-
-@OneToMany(targetEntity=<span class="italic">&lt;TARGET_ENTITY&gt;</span>.class, cascade=CascadeType.<span class="italic">&lt;CASCADE_TYPE&gt;</span>, 
-    fetch = FetchType.<span class="italic">&lt;FETCH_TYPE&gt;</span>, mappedBy = "<span class="italic">&lt;MAPPED_BY&gt;</span>")@OrderBy("<span class="italic">&lt;ORDER_BY&gt;</span>")
-@JoinTable(name="<span class="italic">&lt;JOIN_TABLE_NAME&gt;</span>", joinColumns=@JoinColumn(name=
-    "<span class="italic">&lt;JOIN_COLUMN_NAME&gt;</span>", referencedColumnName="<span class="italic">&lt;JOIN_COLUMN_REFERENCED_COLUMN&gt;</span>"), 
-    inverseJoinColumns=@JoinColumn(name="<span class="italic">&lt;INVERSE_JOIN_COLUMN_NAME&gt;</span>", 
-    referencedColumnName="<span class="italic">&lt;INVERSE_JOIN_COLUMN_REFERENCED_COLUMN&gt;</span>"))
-
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks017.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks017.htm
deleted file mode 100644
index 9c58f8a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks017.htm
+++ /dev/null
@@ -1,146 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>One-to-one mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:44Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="One-to-one mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFHBCJ" name="BABFHBCJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>One-to-one mapping</h1>
-<p><a id="sthref144" name="sthref144"></a><a id="sthref145" name="sthref145"></a><a id="sthref146" name="sthref146"></a><a id="sthref147" name="sthref147"></a>Use a <span class="bold">One-to-One Mapping</span> to define a relationship with one-to-many multiplicity.</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As &gt; One-to-One</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-<li>
-<p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields in the JPA Details view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t25">Property</th>
-<th align="left" valign="bottom" id="r1c2-t25">Description</th>
-<th align="left" valign="bottom" id="r1c3-t25">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t25" headers="r1c1-t25">Mapped Entity Hyperlink</td>
-<td align="left" headers="r2c1-t25 r1c2-t25">Defines mapping as <span class="bold">One-to-One</span>. This corresponds to the <code>@OneToOne</code> annotation.</td>
-<td align="left" headers="r2c1-t25 r1c3-t25">One-to-One</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t25" headers="r1c1-t25">Target Entity</td>
-<td align="left" headers="r3c1-t25 r1c2-t25">The entity to which this attribute is mapped.</td>
-<td align="left" headers="r3c1-t25 r1c3-t25">null
-<p>You do not need to explicitly specify the target entity, since it can be inferred from the type of object being referenced.</p>
-</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t25" headers="r1c1-t25">Fetch Type</td>
-<td align="left" headers="r4c1-t25 r1c2-t25">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details.
-<ul>
-<li>
-<p>Eager</p>
-</li>
-<li>
-<p>Lazy</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r4c1-t25 r1c3-t25">Eager</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t25" headers="r1c1-t25">Mapped By</td>
-<td align="left" headers="r5c1-t25 r1c2-t25">The database field that owns the relationship.</td>
-<td align="left" headers="r5c1-t25 r1c3-t25"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-<li>
-<p>Use this table to complete the <a href="reference012.htm#CACFCEJC">Join Columns Information</a> fields in the <span class="gui-object-title">JPA Details</span> view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="41%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t26">Property</th>
-<th align="left" valign="bottom" id="r1c2-t26">Description</th>
-<th align="left" valign="bottom" id="r1c3-t26">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t26" headers="r1c1-t26">Join Column</td>
-<td align="left" headers="r2c1-t26 r1c2-t26"><a id="sthref148" name="sthref148"></a><a id="sthref149" name="sthref149"></a>Specify a mapped column for joining an entity association. This field corresponds to the <code>@JoinColum</code> attribute.
-<p>Select <span class="bold">Override Default</span>, then Add, Edit, or Remove the join columns.</p>
-</td>
-<td align="left" headers="r2c1-t26 r1c3-t26">By default, the mapping is assumed to have a single join.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@OneToOne(targetEntity=<span class="italic">&lt;TARGET_ENTITY&gt;</span>, cascade=CascadeType.<span class="italic">&lt;CASCADE_TYPE&gt;</span>, 
-    fetch = FetchType.<span class="italic">&lt;FETCH_TYPE&gt;</span>, mappedBy = "<span class="italic">&lt;MAPPED_BY&gt;</span>")
-@JoinColumn(name="<span class="italic">&lt;JOIN_COLUMN_NAME&gt;</span>", referencedColumnName=
-    "<span class="italic">&lt;JOIN_COLUMN_REFERENCED_COLUMN&gt;</span>", insertable = <span class="italic">&lt;INSERTABLE&gt;</span>, 
-    updatable = <span class="italic">&lt;UPDATABLE&gt;</span>)
-
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks018.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks018.htm
deleted file mode 100644
index b04bdb3..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks018.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Transient mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Transient mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABHFHEI" name="BABHFHEI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Transient mapping</h1>
-<p><a id="sthref150" name="sthref150"></a><a id="sthref151" name="sthref151"></a><a id="sthref152" name="sthref152"></a><a id="sthref153" name="sthref153"></a>Use the Transient Mapping to specify a field of the entity class that <span class="italic">is not</span> persistent.</p>
-<p>To create a transient mapping:</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As Transient</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-</ol>
-<p>Eclipse adds the following annotation to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Transient
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks019.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks019.htm
deleted file mode 100644
index f9f3209..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks019.htm
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Version mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Version mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABHIBII" name="BABHIBII"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Version mapping</h1>
-<p><a id="sthref154" name="sthref154"></a><a id="sthref155" name="sthref155"></a><a id="sthref156" name="sthref156"></a><a id="sthref157" name="sthref157"></a>Use a <span class="bold">Version Mapping</span> to specify the field used for optimistic locking. If the entity is associated with multiple tables, you should use a version mapping only with the primary table. You should have only a single version mapping per persistent entity. Version mappings may be used only with the following attribute types:</p>
-<ul>
-<li>
-<p><code>int</code></p>
-</li>
-<li>
-<p><code>Integer</code></p>
-</li>
-<li>
-<p><code>short, Short</code></p>
-</li>
-<li>
-<p><code>long, Long</code></p>
-</li>
-<li>
-<p><code>Timestamp</code></p>
-</li>
-</ul>
-<p>To create a version mapping:</p>
-<ol>
-<li>
-<p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p>
-</li>
-<li>
-<p>Right-click the field and then select <span class="bold">Map As &gt; Version</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p>
-</li>
-<li>
-<p>Use this table to complete the remaining fields in the JPA Details view.</p>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the fields in the Persistence Properties view for this mapping." summary="This table lists the fields in the Persistence Properties view for this mapping." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="19%" />
-<col width="*" />
-<col width="38%" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t27">Property</th>
-<th align="left" valign="bottom" id="r1c2-t27">Description</th>
-<th align="left" valign="bottom" id="r1c3-t27">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t27" headers="r1c1-t27">Mapped Entity Hyperlink</td>
-<td align="left" headers="r2c1-t27 r1c2-t27">Defines the mapping as Version. This corresponds to the <code>@Version</code> annotation.</td>
-<td align="left" headers="r2c1-t27 r1c3-t27">Version</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t27" headers="r1c1-t27">Column</td>
-<td align="left" headers="r3c1-t27 r1c2-t27">The database column mapped to the entity attribute. See <a href="ref_mapping_general.htm#CACGCBHB">"Column"</a> for details.</td>
-<td align="left" headers="r3c1-t27 r1c3-t27">By default, the Column is assumed to be named identically to the attribute and always included in the <code>INSERT</code> and <code>UPDATE</code> statements.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r4c1-t27" headers="r1c1-t27">Table</td>
-<td align="left" headers="r4c1-t27 r1c2-t27">Name of the database table. This must be the primary table associated with the attribute's entity.</td>
-<td align="left" headers="r4c1-t27 r1c3-t27"><br /></td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r5c1-t27" headers="r1c1-t27">Temporal</td>
-<td align="left" headers="r5c1-t27 r1c2-t27">Specifies the type of data. See <a href="ref_mapping_general.htm#CACEAJGD">"Temporal"</a> for details.
-<ul>
-<li>
-<p>Date</p>
-</li>
-<li>
-<p>Time</p>
-</li>
-<li>
-<p>Timestamp</p>
-</li>
-</ul>
-</td>
-<td align="left" headers="r5c1-t27 r1c3-t27"><br /></td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" --></li>
-</ol>
-<p>Eclipse adds the following annotations to the field:</p>
-<pre xml:space="preserve" class="oac_no_warn">
-@Version
-@Column(table="<span class="italic">&lt;COLUMN_TABLE&gt;</span>", name="&lt;<span class="italic">COLUMN_NAME</span>&gt;")
-
-</pre>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br />
-<a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br />
-<a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks020.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks020.htm
deleted file mode 100644
index c785cd4..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks020.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Element Collection mapping</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Element Collection mapping" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHBDEAJ" name="CIHBDEAJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Element Collection mapping</h1>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks021.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks021.htm
deleted file mode 100644
index 358ebb8..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks021.htm
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generating entities from tables</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generating entities from tables" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABBAGFI" name="BABBAGFI"></a></p>
-<div class="sect1">
-<h1>Generating entities from tables</h1>
-<p><a id="sthref158" name="sthref158"></a><a id="sthref159" name="sthref159"></a>Use this procedure to generate Java persistent entities from database tables. You must create a JPA project and establish a database connection <span class="italic">before</span> generating persistent entities. See <a href="task_create_new_project.htm#CIHHEJCJ">"Creating a new JPA project"</a> for more information.<a id="sthref160" name="sthref160"></a><a id="sthref161" name="sthref161"></a></p>
-<ol>
-<li>
-<p>Right-click the JPA project in the <span class="gui-object-title">Project Explorer</span> and select <span class="gui-object-action">JPA Tools &gt; Generate Entities from Tables</span>.</p>
-<div class="figure"><a id="sthref162" name="sthref162"></a>
-<p class="titleinfigure">Generating Entities</p>
-<img src="img/generate_entities.png" alt="Using the JPA Tools &gt; Generate Entities menu option." title="Using the JPA Tools &gt; Generate Entities menu option." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>On the <a href="ref_selectTables.htm#CIAHCGEE">Select Tables</a> page, select your database connection and schema.</p>
-<p>To create a new database connection, click <span class="bold">Add connection</span>.</p>
-<p>If you are not currently connected to the database, the Database Connection page appears. Select your database connection and schema, and click <span class="bold">Reconnect</span>.</p>
-<div class="figure"><a id="sthref163" name="sthref163"></a>
-<p class="titleinfigure">Select Tables</p>
-<img src="img/select_tables.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>After selecting a schema, select the tables from which to generate Java persistent entities and click <span class="bold">Next</span>.</p>
-</li>
-<li>
-<p>On the <a href="ref_tableAssociations.htm#CIACDICB">Table Associations</a> page, select the associations to generate. You can specify to generate specific references for each association.</p>
-<p>To create a new association, click <span class="bold">Add Association</span>. Use the <a href="ref_create_new_association_wizard.htm#CIAFGHIF">Create New Association</a> wizard to define the association.</p>
-<div class="figure"><a id="sthref164" name="sthref164"></a>
-<p class="titleinfigure">Table Associations</p>
-<img src="img/table_associations.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>After editing the table associations, click <span class="bold">Next</span>.</p>
-</li>
-<li>
-<p>On the <a href="ref_customizeDefaultEntityGeneration.htm#CIAEJDBE">Customize Default Entity Generation</a> page, customize the mapping and class information for each generated entity.</p>
-<div class="figure"><a id="sthref165" name="sthref165"></a>
-<p class="titleinfigure">Customize Default Entity Generation</p>
-<img src="img/customize_default_entity_generation.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>After customizing the mappings, click <span class="bold">Next</span>.</p>
-</li>
-<li>
-<p>On the <a href="ref_customizIndividualEntities.htm#CIACIGEE">Customize Individual Entities</a> page, review the mapping and class information for each entity that will be generated, then click <span class="bold">Finish</span>.</p>
-<div class="figure"><a id="sthref166" name="sthref166"></a>
-<p class="titleinfigure">Customize Individual Entities</p>
-<img src="img/customize_individual_entities.png" alt="" title="" /><br /></div>
-<!-- class="figure" --></li>
-</ol>
-<p>Eclipse creates a Java persistent entity for each database table. Each entity contains fields based on the table's columns. Eclipse will also generate entity relationships (such as one-to-one) based on the table constraints. <a href="#CIHJIJJC">Figure: Generating Entities from Tables</a> illustrates how Eclipse generates entities from tables.</p>
-<div class="figure"><a id="CIHJIJJC" name="CIHJIJJC"></a>
-<p class="titleinfigure">Generating Entities from Tables</p>
-<img src="img/table_entity.png" alt="This figure shows the EMPLOYEE and ADDRESS entities generated from database tables." title="This figure shows the EMPLOYEE and ADDRESS entities generated from database tables." /><br /></div>
-<!-- class="figure" -->
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<p><a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a></p>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_project_properties.htm#BABJHBCI">Project Properties page &ndash; Java Persistence Options</a></div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks022.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks022.htm
deleted file mode 100644
index 6341e89..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks022.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Generating tables from entities</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Generating tables from entities" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHJIGBE" name="CIHJIGBE"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Generating tables from entities</h1>
-<p>When using a vendor-specific platform, you can create a DDL script from your persistent entities.</p>
-<div align="center">
-<div class="inftblnote"><br />
-<table class="Note oac_no_warn" summary="" cellpadding="3" cellspacing="0">
-<tbody>
-<tr>
-<td align="left">
-<p class="notep1">Note:</p>
-The DDL script with DROP existing tables on the database and CREATE new tables, based on the entities in your project.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblnote" --></div>
-<p>To generate a DDL script:</p>
-<p>Right-click the JPA project in the <span class="gui-object-title">Project Explorer</span> and select <span class="gui-object-action">JPA Tools &gt; Generate Tables from Entities</span>.</p>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<p><a href="task_create_jpa_entity.htm#BABFBJBG">Creating a JPA Entity</a></p>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_project_properties.htm#BABJHBCI">Project Properties page &ndash; Java Persistence Options</a></div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks023.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks023.htm
deleted file mode 100644
index a1870e4..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks023.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Validating mappings and reporting problems</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Validating mappings and reporting problems" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABFAIBA" name="BABFAIBA"></a></p>
-<div class="sect1">
-<h1>Validating mappings and reporting problems</h1>
-<p><a id="sthref167" name="sthref167"></a><a id="sthref168" name="sthref168"></a><a id="sthref169" name="sthref169"></a><a id="sthref170" name="sthref170"></a>Errors and warnings on persistent entities and mappings are indicated with a red error or yellow warning next to the resource with the error, as well as the parent containers up to the project.</p>
-<div class="figure"><a id="sthref171" name="sthref171"></a>
-<p class="titleinfigure">Sample Errors and Warnings</p>
-<img src="img/error_sample.png" alt="This figure shows sample error and warning icons in the Explorer view." title="This figure shows sample error and warning icons in the Explorer view." /><br /></div>
-<!-- class="figure" -->
-<p>This section contains information on the following:</p>
-<ul>
-<li>
-<p><a href="tasks024.htm#CIHFEDEI">Error messages</a></p>
-</li>
-<li>
-<p><a href="tasks025.htm#CIHGEAIJ">Warning messages</a></p>
-</li>
-</ul>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="../org.eclipse.platform.doc.user/concepts/cprbview.htm">Problems view</a></p>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" --></div>
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks024.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks024.htm
deleted file mode 100644
index b3fee1f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks024.htm
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Error messages</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Error messages" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHFEDEI" name="CIHFEDEI"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Error messages<a id="sthref172" name="sthref172"></a></h1>
-<p>This section contains information on error messages (including how to resolve the issue) you may encounter while working with Dali.</p>
-<a id="sthref173" name="sthref173"></a>
-<p class="subhead2">Attribute "<span class="italic">&lt;ATTRIBUTE__NAME&gt;</span>" has invalid mapping type in this context</p>
-<p>The mapped attribute is invalid. Either change the mapping type or change the entity type.</p>
-<p>See <a href="task_mapping.htm#BABDGBIJ">"Mapping an entity"</a> for more information.</p>
-<a id="sthref174" name="sthref174"></a>
-<p class="subhead2">Attribute "<span class="italic">&lt;ATTRIBUTE_NAME&gt;</span>" cannot be resolved.</p>
-<p>Dali cannot map the attribute to a database table and column. Verify that you database connection information is correct.</p>
-<p>See <a href="task_create_new_project.htm#CIHHEJCJ">"Creating a new JPA project"</a> for more information.</p>
-<a id="sthref175" name="sthref175"></a>
-<p class="subhead2">Class "<span class="italic">&lt;CLASS_NAME&gt;</span>" is not annotated as a persistent class.</p>
-<p>The class has not been identified as a persistent class. Configure the class as an Entity, Mapped Superclass, or Embeddable persistent entity.</p>
-<p>See <a href="task_add_persistence.htm#BABHICAI">"Adding persistence to a class"</a>.</p>
-<a id="sthref176" name="sthref176"></a>
-<p class="subhead2">Column "<span class="italic">&lt;COLUMN_NAME&gt;</span>" cannot be resolved.</p>
-<p>You mapped an entity's field to an incorrect or invalid column in the database table. By default, Dali will attempt to map each field in the entity with an identically named row in the database table. If the field's name differs from the row's name, you must explicitly create the mapping.</p>
-<p>Map the field to a valid row in the database table as shown in <a href="task_mapping.htm#BABDGBIJ">"Mapping an entity"</a>.</p>
-<a id="sthref177" name="sthref177"></a>
-<p class="subhead2">Duplicate class "<span class="italic">&lt;CLASS_NAME&gt;</span>".</p>
-<p>You created to persistence classes with the same name. Each Java class must have a unique name. See <a href="task_add_persistence.htm#BABHICAI">"Adding persistence to a class"</a> for more information.</p>
-<a id="sthref178" name="sthref178"></a>
-<p class="subhead2">Entity does not have an Id or Embedded Id.</p>
-<p>You created a persistent entity without identifying its primary key. A persistent entity must have a primary key field designated with an <code>@Id</code> or <code>@EmbeddedId</code> annotation.</p>
-<p>Add an ID mapping to the entity as shown in <a href="tasks013.htm#BABGCBHG">"ID mapping"</a> or <a href="tasks012.htm#CIHDIAEE">"Embedded ID mapping"</a>.</p>
-<a id="sthref179" name="sthref179"></a>
-<p class="subhead2">Multiple persistence.xml files in project.</p>
-<p>You created a JPA project with more than one <code>persistence.xml</code> file. Each JPA project must contain a <span class="italic">single</span> <code>persistence.xml</code> file.</p>
-<p>See <a href="task_manage_persistence.htm#CIHDAJID">"Managing the persistence.xml file"</a> for more information.</p>
-<a id="sthref180" name="sthref180"></a>
-<p class="subhead2">No persistence unit defined.</p>
-<p>There is no persistence unit defined in the <code>persistence.xml</code> file. Use the &lt;persistence-unit name="<span class="italic">&lt;PERSISTENCE_UNIT_NAME&gt;</span>" tag to define the persistent unit.</p>
-<p>See <a href="task_manage_orm.htm#CIHDGDCD">"Managing the orm.xml file"</a> for more information.</p>
-<a id="sthref181" name="sthref181"></a>
-<p class="subhead2">No persistence.xml file in project.</p>
-<p>You created a JPA project without a <code>persistence.xml</code> file. Each JPA project must contain a <span class="italic">single</span> <code>persistence.xml</code> file.</p>
-<p>See <a href="task_manage_persistence.htm#CIHDAJID">"Managing the persistence.xml file"</a> for more information.</p>
-<a id="sthref182" name="sthref182"></a>
-<p class="subhead2">Referenced column "<span class="italic">&lt;COLUMN_NAME&gt;</span>" in join column "<span class="italic">&lt;COLUMN_NAME&gt;</span>" cannot be resolved.</p>
-<p>The column that you selected to join a relationship mapping does not exist on the database table. Either select a different column on the <a href="reference011.htm#CACBAEBC">Join Table Information</a> or create the necessary column on the database table.</p>
-<p>See <a href="ref_persistence_map_view.htm#BABIFBAF">"JPA Details view (for attributes)"</a> for more information.</p>
-<a id="sthref183" name="sthref183"></a>
-<p class="subhead2">Schema "&lt;<span class="italic">SCHEMA_NAME</span>&gt;" cannot be resolved for table/join table "&lt;<span class="italic">TABLE_NAME</span>&gt;".</p>
-<p>Define the default database schema information in the persistence unit.</p>
-<p>See <a href="task_manage_orm.htm#CIHDGDCD">"Managing the orm.xml file"</a> for more information.</p>
-<a id="sthref184" name="sthref184"></a>
-<p class="subhead2">Table "<span class="italic">&lt;TABLE_NAME&gt;</span>" cannot be resolved.</p>
-<p>You associated a persistent entity to an incorrect or invalid database table. By default, Dali will attempt to associate each persistent entity with an identically named database table. If the entity's name differs from the table's name, you must explicitly create the association.</p>
-<p>Associate the entity with a valid database table as shown in <a href="task_add_persistence.htm#BABHICAI">"Adding persistence to a class"</a>.</p>
-<a id="sthref185" name="sthref185"></a>
-<p class="subhead2">Unresolved generator "<span class="italic">&lt;GENERATOR_NAME&gt;</span>" is defined in persistence unit.</p>
-<p>You created a persistence entity that uses sequencing or a table generator, but did not define the generator in the persistence unit. Either define the generator by using an annotation or including it in the XML mapping file.</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="../org.eclipse.platform.doc.user/concepts/cprbview.htm">Problems view</a></p>
-</div>
-<!-- class="sect2" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks025.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks025.htm
deleted file mode 100644
index f6bbacb..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks025.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Warning messages</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Warning messages" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CIHGEAIJ" name="CIHGEAIJ"></a></p>
-<div class="sect2"><!-- infolevel="all" infotype="General" -->
-<h1>Warning messages</h1>
-<p>This section contains information on warning messages (including how to resolve the issue) you may encounter while working with Dali.</p>
-<a id="sthref186" name="sthref186"></a>
-<p class="subhead2">Connection "<span class="italic">&lt;CONNECTION_NAME&gt;</span>" is not active. No validation will be done against the data source.</p>
-<p>The database connection you specified to use with the JPA project is not active. The JPA project requires an active connection.</p>
-<a id="sthref187" name="sthref187"></a>
-<p class="subhead2">No connection specified for the project. No data-specific validation will be performed.</p>
-<p>You created a JPA project without specifying a database connection. The JPA project requires an active connection.</p>
-<p>See <a href="task_create_new_project.htm#CIHHEJCJ">"Creating a new JPA project"</a> or <a href="tasks026.htm#BABDBCBI">"Modifying persistent project properties"</a> for information on specifying a database connection.</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<p><a href="../org.eclipse.platform.doc.user/concepts/cprbview.htm">Problems view</a></p>
-</div>
-<!-- class="sect2" -->
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tasks026.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tasks026.htm
deleted file mode 100644
index 295a03a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tasks026.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Modifying persistent project properties</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:45Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Modifying persistent project properties" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="BABDBCBI" name="BABDBCBI"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Modifying persistent project properties</h1>
-<p>Each persistent project must be associated with a database connection. To create a new database connection, click <span class="gui-object-action">Database Connection</span> use the New Connection wizard.</p>
-<p>Use this procedure to modify the vender-specific platform and database connection associated with your JPA project.</p>
-<ol>
-<li>
-<p>Right-click the project in the <span class="gui-object-title">Explorer</span> view and select <span class="gui-object-action">Properties</span>. The Properties page appears.</p>
-<div class="figure"><a id="sthref188" name="sthref188"></a>
-<p class="titleinfigure">The Properties Page</p>
-<img src="img/project_properties_tasks.png" alt="The Persistence page." title="The Persistence page." /><br /></div>
-<!-- class="figure" --></li>
-<li>
-<p>Complete each field on the <a href="ref_project_properties.htm#BABJHBCI">Project Properties page &ndash; Java Persistence Options</a> click <span class="bold">OK</span>.</p>
-</li>
-</ol>
-<p>&nbsp;</p>
-<img src="img/ngrelt.png" alt="Related task" title="Related task" /><br />
-<br />
-<a href="task_create_new_project.htm#CIHHEJCJ">Creating a new JPA project</a>
-<p>&nbsp;</p>
-<img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br />
-<br />
-<a href="ref_project_properties.htm#BABJHBCI">Project Properties page &ndash; Java Persistence Options</a>
-<p>&nbsp;</p>
-<img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br />
-<br />
-<a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a></div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/tips_and_tricks.htm b/jpa/plugins/org.eclipse.jpt.doc.user/tips_and_tricks.htm
deleted file mode 100644
index a47917f..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/tips_and_tricks.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Tips and tricks</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" Tips and tricks" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CHDHGHBF" name="CHDHGHBF"></a></p>
-<h1>Tips and tricks</h1>
-<p>The following tips and tricks give some helpful ideas for increasing your productivity.</p>
-<ul>
-<li>
-<p><a href="#BABFIIHA"><span class="bold">Database Connections</span></a></p>
-</li>
-<li>
-<p><a href="#BABCHAHF"><span class="bold">Schema-based persistence.xml</span></a></p>
-</li>
-</ul>
-<div class="inftblruleinformal">
-<table class="RuleInformal" title="This table lists the tips and tricks in this category." summary="This table lists the tips and tricks in this category." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0">
-<col width="27%" />
-<col width="*" />
-<thead>
-<tr align="left" valign="top">
-<th align="left" valign="bottom" id="r1c1-t2">Tip</th>
-<th align="left" valign="bottom" id="r1c2-t2">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr align="left" valign="top">
-<td align="left" id="r2c1-t2" headers="r1c1-t2"><a id="BABFIIHA" name="BABFIIHA"></a><span class="bold">Database Connections</span></td>
-<td align="left" headers="r2c1-t2 r1c2-t2">When starting a new workbench session, be sure to <a href="../org.eclipse.datatools.connectivity.doc.user/doc/html/asc1229700343352.html">reconnect to your database</a> (if you are working online). This allows Dali to provide database-related mapping assistance and validation.</td>
-</tr>
-<tr align="left" valign="top">
-<td align="left" id="r3c1-t2" headers="r1c1-t2"><a id="BABCHAHF" name="BABCHAHF"></a><span class="bold">Schema-based persistence.xml</span></td>
-<td align="left" headers="r3c1-t2 r1c2-t2">If you are behind a firewall, you may need to configure your Eclipse workspace proxy in the <a href="../org.eclipse.platform.doc.user/reference/ref-72.htm">Preferences dialog</a> (<span class="gui-object-action">Preferences &gt; Internet &gt; Proxy Settings</span>) to properly validate a schema-based <code>persistence.xml</code> file.</td>
-</tr>
-</tbody>
-</table>
-<br /></div>
-<!-- class="inftblruleinformal" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/toc.xml b/jpa/plugins/org.eclipse.jpt.doc.user/toc.xml
deleted file mode 100644
index 976debe..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/toc.xml
+++ /dev/null
@@ -1,155 +0,0 @@
-<?xml version='1.0' encoding='iso-8859-1'?>
-<!-- User Guide -->
-  <toc label="Dali Java Persistence Tools User Guide">
-    <topic href="getting_started.htm" label="Getting started">
-      <topic href="getting_started001.htm#BABEFHCD" label="Requirements and installation" />
-      <topic href="getting_started002.htm#BABIGCJA" label="Dali quick start">
-        <topic href="getting_started003.htm#BABDFHDA" label="Creating a new JPA project" />
-        <topic href="getting_started004.htm#BABFGDDG" label="Creating a Java persistent entity with persistent fields" />
-      </topic>
-    </topic>
-    <topic href="concepts.htm" label=" Concepts">
-      <topic href="concept_persistence.htm#BABCAHIC" label="Understanding Java persistence" />
-      <topic href="concept_mapping.htm#BABBDJFI" label="Understanding OR mappings" />
-      <topic href="concepts001.htm#BABBGFJG" label="Understanding EJB 3.0 Java Persistence API">
-        <topic href="concepts002.htm#CHDHAGIH" label="The persistence.xml file" />
-        <topic href="concepts003.htm#CHDBIJAC" label="The orm.xml file" />
-      </topic>
-    </topic>
-    <topic href="tasks.htm" label=" Tasks">
-      <topic href="task_create_new_project.htm#CIHHEJCJ" label="Creating a new JPA project" />
-      <topic href="tasks001.htm#BEIBADHH" label="Converting a Java Project to a JPA Project" />
-      <topic href="task_create_jpa_entity.htm#BABFBJBG" label="Creating a JPA Entity" />
-      <topic href="task_manage_persistence.htm#CIHDAJID" label="Managing the persistence.xml file">
-        <topic href="tasks002.htm#CIHFEBAI" label="Synchronizing classes" />
-        <topic href="tasks003.htm#sthref56" label="Upgrading document version" />
-      </topic>
-      <topic href="task_manage_orm.htm#CIHDGDCD" label="Managing the orm.xml file">
-        <topic href="tasks004.htm#sthref60" label="Creating an orm.xml file" />
-        <topic href="tasks005.htm#CIHBCDCE" label="Working with orm.xml file" />
-      </topic>
-      <topic href="task_add_persistence.htm#BABHICAI" label="Adding persistence to a class">
-        <topic href="tasks006.htm#BABGBIEE" label="Entity" />
-        <topic href="tasks007.htm#BABFEICE" label="Embeddable" />
-        <topic href="tasks008.htm#BABDAGCI" label="Mapped superclass" />
-      </topic>
-      <topic href="task_additonal_tables.htm#CIHGBIEI" label="Specifying additional tables" />
-      <topic href="task_inheritance.htm#CIHCCCJD" label="Specifying entity inheritance" />
-      <topic href="tasks009.htm#BABIGBGG" label="Creating Named Queries" />
-      <topic href="task_mapping.htm#BABDGBIJ" label="Mapping an entity">
-        <topic href="tasks010.htm#BABBABCE" label="Basic mapping" />
-        <topic href="tasks011.htm#BABCBHDF" label="Embedded mapping" />
-        <topic href="tasks012.htm#CIHDIAEE" label="Embedded ID mapping" />
-        <topic href="tasks013.htm#BABGCBHG" label="ID mapping" />
-        <topic href="tasks014.htm#BABEIEGD" label="Many-to-many mapping" />
-        <topic href="tasks015.htm#BABHFAFJ" label="Many-to-one mapping" />
-        <topic href="tasks016.htm#BABHGEBD" label="One-to-many mapping" />
-        <topic href="tasks017.htm#BABFHBCJ" label="One-to-one mapping" />
-        <topic href="tasks018.htm#BABHFHEI" label="Transient mapping" />
-        <topic href="tasks019.htm#BABHIBII" label="Version mapping" />
-        <topic href="tasks020.htm#CIHBDEAJ" label="Element Collection mapping" />
-      </topic>
-      <topic href="tasks021.htm#BABBAGFI" label="Generating entities from tables" />
-      <topic href="tasks022.htm#CIHJIGBE" label="Generating tables from entities" />
-      <topic href="tasks023.htm#BABFAIBA" label="Validating mappings and reporting problems">
-        <topic href="tasks024.htm#CIHFEDEI" label="Error messages" />
-        <topic href="tasks025.htm#CIHGEAIJ" label="Warning messages" />
-      </topic>
-      <topic href="tasks026.htm#BABDBCBI" label="Modifying persistent project properties" />
-      <topic href="task_generating_schema_from_classes.htm#CIHHBJCJ" label="Generating Schema from Classes" />
-      <topic href="task_generate_classes_from_schema.htm#CIHCBHJD" label="Generating JAXB Classes from a Schema" />
-    </topic>
-    <topic label=" Reference">
-      <topic label="Wizards">
-        <topic href="ref_new_jpa_project_wizard.htm#CACBJGBG" label="Create New JPA Project wizard">
-          <topic href="ref_new_jpa_project.htm#CACBJAGC" label="New JPA Project page" />
-          <topic href="ref_java_page.htm#CIAGEBAA" label="Java Page" />
-          <topic href="ref_jpa_facet.htm#CACIFDIF" label="JPA Facet page" />
-        </topic>
-        <topic href="ref_create_jpa_entity_wizard.htm#CIAGGGDF" label="Create JPA Entity wizard">
-          <topic href="ref_EntityClassPage.htm#CIAFEIGF" label="Entity Class page" />
-          <topic href="ref_EntityPropertiesPage.htm#CIADECIA" label="Entity Properties page" />
-        </topic>
-        <topic href="reference002.htm#CIAIJCCE" label="Mapping File Wizard">
-          <topic href="reference003.htm#CIAJEIDJ" label="Mapping File" />
-        </topic>
-        <topic href="reference004.htm#CIAGHCGA" label="Generate Tables from Entities Wizard" />
-        <topic href="ref_create_custom_entities_wizard.htm#CIAGBFJE" label="Generate Entities from Tables Wizard">
-          <topic href="ref_selectTables.htm#CIAHCGEE" label="Select Tables" />
-          <topic href="ref_tableAssociations.htm#CIACDICB" label="Table Associations" />
-          <topic href="ref_customizeDefaultEntityGeneration.htm#CIAEJDBE" label="Customize Default Entity Generation" />
-          <topic href="ref_customizIndividualEntities.htm#CIACIGEE" label="Customize Individual Entities" />
-        </topic>
-        <topic href="ref_create_new_association_wizard.htm#CIAFGHIF" label="Create New Association">
-          <topic href="ref_association_table.htm#CIAGJHDC" label="Association Tables" />
-          <topic href="ref_join_columns.htm#CIAEGEEG" label="Join Columns" />
-          <topic href="ref_association_cardinality.htm#CIAFIIFH" label="Association Cardinality" />
-        </topic>
-        <topic href="ref_jaxb_schema_wizard.htm#CACGADFH" label="Generate Schema from JAXB Classes Wizard">
-          <topic href="ref_schema_from_classes_page.htm#CACHBEGJ" label="Generate Schema from Classes" />
-        </topic>
-      </topic>
-      <topic label="Property pages">
-        <topic href="ref_persistence_prop_view.htm#BABFAEBB" label="JPA Details view (for entities)">
-          <topic href="reference006.htm#CACCAGGC" label="General information" />
-          <topic href="reference007.htm#CACIJBGH" label="Attribute overrides" />
-          <topic href="reference008.htm#CACBHIDA" label="Secondary table information" />
-          <topic href="reference009.htm#CACFHGHE" label="Inheritance information" />
-          <topic href="reference010.htm#sthref241" label="Queries" />
-        </topic>
-        <topic href="ref_persistence_map_view.htm#BABIFBAF" label="JPA Details view (for attributes)">
-          <topic href="ref_mapping_general.htm#CACBHFIJ" label="General information" />
-          <topic href="reference011.htm#CACBAEBC" label="Join Table Information" />
-          <topic href="reference012.htm#CACFCEJC" label="Join Columns Information" />
-          <topic href="ref_primary_key.htm#CACFCCAB" label="Primary Key Generation information" />
-        </topic>
-        <topic href="ref_details_orm.htm#CACGDGHC" label="JPA Details view (for orm.xml)">
-          <topic href="reference013.htm#CACCACGH" label="General information" />
-          <topic href="reference014.htm#CACEAGBG" label="Persistence Unit information" />
-          <topic href="reference015.htm#CIAFGAIJ" label="Generators" />
-          <topic href="reference016.htm#CIAIBAAJ" label="Queries" />
-          <topic href="reference017.htm#CIADGCID" label="Converters" />
-        </topic>
-        <topic href="ref_persistence_outline.htm#BABEGGFE" label="JPA Structure view" />
-        <topic href="ref_persistence_xmll_editor.htm#CIACCHID" label="persistence.xml Editor">
-          <topic href="ref_persistence_general.htm#CIACIFGJ" label="General" />
-          <topic href="reference018.htm#CIAFFJIE" label="Connection" />
-          <topic href="reference019.htm#CIAJAFEG" label="Customization" />
-          <topic href="reference020.htm#CIABEDCH" label="Caching" />
-          <topic href="reference021.htm#CIABGHHI" label="Logging" />
-          <topic href="reference022.htm#CIAFJCHE" label="Options" />
-          <topic href="reference023.htm#CIACCFCB" label="Schema Generation" />
-          <topic href="reference024.htm#CIAHJDFF" label="Properties" />
-          <topic href="reference025.htm#CIAHCJAH" label="Source" />
-        </topic>
-      </topic>
-      <topic label="Preferences">
-        <topic href="ref_project_properties.htm#BABJHBCI" label="Project Properties page - Java Persistence Options" />
-        <topic href="reference027.htm#CACFBAEH" label="Project Properties page - Validation Preferences" />
-      </topic>
-      <topic label="Dialogs">
-        <topic href="reference029.htm#CACCGEHC" label="Edit Join Columns Dialog" />
-        <topic href="ref_select_cascade_dialog.htm#CIAFDGIJ" label="Select Cascade dialog" />
-        <topic href="ref_eclipselink_mapping_file.htm#CIAEDEJF" label="New EclipseLink Mapping File dialog" />
-        <topic href="ref_add_converter.htm#CIAGCGIJ" label="Add Converter dialog" />
-        <topic href="ref_configure_jaxb_class_generation_dialog.htm#CACHHHJA" label="Configure JAXB Class Generation dialog" />
-      </topic>
-      <topic href="ref_persistence_perspective.htm#BABIFBDB" label="JPA Development perspective" />
-      <topic label="Icons and buttons">
-        <topic href="reference031.htm#CACGEACG" label="Icons" />
-        <topic href="reference032.htm#CACDJCEI" label="Buttons" />
-      </topic>
-      <topic href="reference033.htm#CACBBDIB" label="Dali Developer Documentation" />
-    </topic>
-    <topic href="tips_and_tricks.htm" label="Tips and tricks">
-      <topic href="whats_new001.htm#sthref306" label="Improved Internationalization and Localization" />
-      <topic href="whats_new002.htm#CJACEDDE" label="Multiple Improvements to the Dali Perspective" />
-      <topic href="whats_new003.htm#CJADIFHJ" label="Support for JPA 2.0 and EclipseLink" />
-      <topic href="whats_new004.htm#CJABIJEC" label="Conversion of Java Projects to JPA Projects" />
-      <topic href="whats_new005.htm#CJACJBDA" label="EclipseLink 2.x Support" />
-      <topic href="whats_new006.htm#sthref307" label="Table-per-Concrete-Class Inheritance" />
-    </topic>
-    <topic href="legal.htm" label=" Legal">
-      <topic href="about.htm#sthref309" label="About this content" />
-    </topic>
-</toc>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new.htm
deleted file mode 100644
index 95294a3..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>What's new</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content=" What's new" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="sthref291" name="sthref291"></a> What's new</p>
-<p>This section contains descriptions of the following new features and significant changes made to the Dali OR Mapping Tool for Release 2.3:</p>
-<ul>
-<li>
-<p><a href="whats_new002.htm#CJACEDDE">Multiple Improvements to the Dali Perspective</a></p>
-</li>
-<li>
-<p><a href="whats_new003.htm#CJADIFHJ">Support for JPA 2.0 and EclipseLink</a></p>
-</li>
-<li>
-<p><a href="whats_new004.htm#CJABIJEC">Conversion of Java Projects to JPA Projects</a></p>
-</li>
-<li>
-<p><a href="whats_new005.htm#CJACJBDA">EclipseLink 2.x Support</a></p>
-</li>
-</ul>
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new001.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new001.htm
deleted file mode 100644
index 70ca442..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new001.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Improved Internationalization and Localization</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Improved Internationalization and Localization" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect1"><!-- infolevel="all" infotype="General" --><a id="sthref292" name="sthref292"></a>
-<h1>Improved Internationalization and Localization</h1>
-<p>This release of the Dali OR Mapping Tool provides improved internationalization (i18n) and localization support. Dali projects can support different locales and processing of international data (such as dates and strings).</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new002.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new002.htm
deleted file mode 100644
index 46b15e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new002.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Multiple Improvements to the Dali Perspective</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Multiple Improvements to the Dali Perspective" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CJACEDDE" name="CJACEDDE"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Multiple Improvements to the Dali Perspective</h1>
-<p>There have been multiple improvements to the Dali perspectives to improve its ease-of-use:</p>
-<ul>
-<li>
-<p>The <a href="ref_create_jpa_entity_wizard.htm#CIAGGGDF">Create JPA Entity wizard</a> now accepts short names as attribute types.</p>
-</li>
-<li>
-<p>Dali will perform validation after refreshing database information.</p>
-</li>
-<li>
-<p>Dali allows project-level customization for validation (error and warning reports)</p>
-</li>
-</ul>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new003.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new003.htm
deleted file mode 100644
index 5061cc4..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new003.htm
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Support for JPA 2.0 and EclipseLink</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Support for JPA 2.0 and EclipseLink" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CJADIFHJ" name="CJADIFHJ"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Support for JPA 2.0 and EclipseLink</h1>
-<p>This release of the Dali OR Mapping Tool supports generic JPA 2.0 as well as specific items for EclispeLink 1.2.</p>
-<ul>
-<li>
-<p>Derived IDs</p>
-</li>
-<li>
-<p>Caching (Shared Cache and Cachable)</p>
-</li>
-<li>
-<p>Canonical metamodel generation</p>
-</li>
-<li>
-<p>Order Column configuration</p>
-</li>
-<li>
-<p>ElementCollection mapping type</p>
-</li>
-<li>
-<p>Cascade detach</p>
-</li>
-<li>
-<p>Dali will upgrade your <code>persistence.xml</code> from JPA 1.0 to 2.0.</p>
-</li>
-</ul>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new004.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new004.htm
deleted file mode 100644
index 7ad545b..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new004.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Conversion of Java Projects to JPA Projects</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Conversion of Java Projects to JPA Projects" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CJABIJEC" name="CJABIJEC"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>Conversion of Java Projects to JPA Projects</h1>
-<p>The Dali OR Mapping Tool now uses the Eclipse <span class="bold">Configure</span> menu to convert existing Java projects to JPA projects.</p>
-<p>See <a href="tasks001.htm#BEIBADHH">"Converting a Java Project to a JPA Project"</a> for more information.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new005.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new005.htm
deleted file mode 100644
index 431f998..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new005.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>EclipseLink 2.x Support</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="EclipseLink 2.x Support" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<p><a id="CJACJBDA" name="CJACJBDA"></a></p>
-<div class="sect1"><!-- infolevel="all" infotype="General" -->
-<h1>EclipseLink 2.x Support</h1>
-<p>Release 2.3 provides support for EclipseLink 2.x features.</p>
-<p>EclipseLink (the Eclipse Persistence Services Project) is a complete persistence frame work. Refer to <code><a href="http://www.eclipse.org/eclipselink/">http://www.eclipse.org/eclipselink/</a></code> for more information.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new006.htm b/jpa/plugins/org.eclipse.jpt.doc.user/whats_new006.htm
deleted file mode 100644
index 712867a..0000000
--- a/jpa/plugins/org.eclipse.jpt.doc.user/whats_new006.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- 
-<meta http-equiv="Content-Style-Type" content="text/css" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<title>Table-per-Concrete-Class Inheritance</title>
-<meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1" />
-<meta name="date" content="2010-05-19T8:12:49Z" />
-<meta name="robots" content="noarchive" />
-<meta name="doctitle" content="Table-per-Concrete-Class Inheritance" />
-<meta name="relnum" content="Release 2.3" />
-<meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" />
-<link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
-<link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" />
-<!-- contents -->
-</head>
-<body>
-<div class="sect1"><!-- infolevel="all" infotype="General" --><a id="sthref293" name="sthref293"></a>
-<h1>Table-per-Concrete-Class Inheritance</h1>
-<p>The Dali OR Mapping Tool now supports the JPA 1.0-optional table-per-concrete-class inheritance option. This functionality may be required in JPA 2.0.</p>
-</div>
-<!-- class="sect1" -->
-<!-- Start Footer -->
-<div class="footer">
-<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
-<col width="86%" />
-<col width="*" />
-<tr>
-<td align="left"><span class="copyrightlogo">Copyright&nbsp;&copy;&nbsp;2006, 2010,&nbsp;Oracle&nbsp;and/or&nbsp;its&nbsp;affiliates.&nbsp;All&nbsp;rights&nbsp;reserved.</span><br />
-<a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td>
-</tr>
-</table>
-</div>
-<!-- class="footer" -->
-</body>
-</html>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.cvsignore b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project
deleted file mode 100644
index e29a7c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index a822f00..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.eclipselink.branding;singleton:=true
-Bundle-Version: 2.4.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.html b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.ini b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.mappings b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.properties
deleted file mode 100644
index af0e36f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools - EclipseLink Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2006, 2009.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/build.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/build.properties
deleted file mode 100644
index 8ce4550..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/icons/WTP_icon_x32_v2.png b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/plugin.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/plugin.properties
deleted file mode 100644
index 33c60d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project
deleted file mode 100644
index 1d5359a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core.ddlgen</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.core.ddlgen</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project
deleted file mode 100644
index bd14595..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.core</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project
deleted file mode 100644
index 868e21b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.jaxb.core.schemagen</name>
-	<comment>renamed to org.eclipse.jpt.jaxb.eclipselink.core.schemagen and moved to jaxb component</comment>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project
deleted file mode 100644
index 7a65876..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.ui</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.ui</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.project b/jpa/plugins/org.eclipse.jpt.gen/.project
deleted file mode 100644
index 688225a..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.gen</name>
-	<comment>renamed to org.eclipse.jpt.jpa.gen</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project b/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project
deleted file mode 100644
index 3d552f8..0000000
--- a/jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.core.schemagen</name>
-	<comment>moved to jaxb component</comment>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project b/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project
deleted file mode 100644
index 8dc3015..0000000
--- a/jpa/plugins/org.eclipse.jpt.jaxb.ui/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.ui</name>
-	<comment>moved to jaxb component</comment>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.branding/.cvsignore
deleted file mode 100644
index c9401a2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/.project b/jpa/plugins/org.eclipse.jpt.jpa.branding/.project
deleted file mode 100644
index fe9634f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.branding/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 16da32f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.branding;singleton:=true
-Bundle-Version: 2.4.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.html b/jpa/plugins/org.eclipse.jpt.jpa.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.ini b/jpa/plugins/org.eclipse.jpt.jpa.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.mappings b/jpa/plugins/org.eclipse.jpt.jpa.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.properties b/jpa/plugins/org.eclipse.jpt.jpa.branding/about.properties
deleted file mode 100644
index 4b821e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2006, 2009.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.branding/build.properties
deleted file mode 100644
index 4e089bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties,\
-               component.xml
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/component.xml b/jpa/plugins/org.eclipse.jpt.jpa.branding/component.xml
deleted file mode 100644
index 6e51135..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/component.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jpa.branding">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt.jpa.branding" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.utility" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.db" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.db.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.gen" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/icons/WTP_icon_x32_v2.png b/jpa/plugins/org.eclipse.jpt.jpa.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.branding/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.branding/plugin.properties
deleted file mode 100644
index 0cadd22..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.classpath b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.cvsignore
deleted file mode 100644
index a196dd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
-javaCompiler...args.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.project b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.project
deleted file mode 100644
index af3dab3..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.db.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 8fa7db1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:11:22 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 842c286..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:59:42 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index b3885ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.db.ui
-Bundle-Version: 2.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.datatools.connectivity.ui;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.datatools.sqltools.editor.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.datatools.connectivity.db.generic.ui;bundle-version="[1.0.1,2.0.0)"
-Export-Package: org.eclipse.jpt.jpa.db.ui.internal;x-friends:="org.eclipse.jpt.jpa.ui"
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/about.html b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/build.properties
deleted file mode 100644
index 41837eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/component.xml b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/component.xml
deleted file mode 100644
index db3c94b..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2007, 2010 Oracle. All rights reserved.
-  This program and the accompanying materials are made available under the
-  terms of the Eclipse Public License v1.0, which accompanies this distribution
-  and is available at http://www.eclipse.org/legal/epl-v10.html.
-
-  Contributors:
-    Oracle - initial API and implementation
- -->
-
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jpa.db.ui"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.jpa.db.ui" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/plugin.properties
deleted file mode 100644
index 951e96d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - JPA DB UI
-providerName = Eclipse Web Tools Platform
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/src/org/eclipse/jpt/jpa/db/ui/internal/DTPUiTools.java b/jpa/plugins/org.eclipse.jpt.jpa.db.ui/src/org/eclipse/jpt/jpa/db/ui/internal/DTPUiTools.java
deleted file mode 100644
index 11873fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db.ui/src/org/eclipse/jpt/jpa/db/ui/internal/DTPUiTools.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jpa.db.ui.internal;
-
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IProfileListener;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.datatools.connectivity.db.generic.ui.wizard.NewJDBCFilteredCPWizard;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * DTP UI tools
- */
-public class DTPUiTools {
-
-	/**
-	 * Launch the DTP New Connection Profile wizard to create a new database connection profile.
-	 * 
-	 * Returns the name of the added profile, or null if the wizard was cancelled.
-	 * The name can be used to build a Dali connection profile from
-	 * JptJpaDbPlugin.getConnectionProfileFactory().buildConnectionProfile(String).
-	 */
-	public static String createNewConnectionProfile() {
-		// Filter datasource category
-		NewJDBCFilteredCPWizard  wizard = new NewJDBCFilteredCPWizard();
-		WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
-		wizardDialog.setBlockOnOpen(true);
-
-		LocalProfileListener listener = new LocalProfileListener();
-		ProfileManager.getInstance().addProfileListener(listener);
-
-		String newCPName = null;
-		if (wizardDialog.open() == Window.OK) {
-			// assume the last added profile is the one we want
-			newCPName = listener.addedProfile.getName();
-		}
-		ProfileManager.getInstance().removeProfileListener(listener);
-
-		return newCPName;
-	}
-
-
-	// ********** DTP profile listener **********
-
-	/**
-	 * This listener simply holds on to the most recently added connection
-	 * profile.
-	 */
-	static class LocalProfileListener implements IProfileListener {
-		IConnectionProfile addedProfile;
-		
-		public void profileAdded(IConnectionProfile profile) {
-			this.addedProfile = profile;
-		}
-	
-		public void profileChanged(IConnectionProfile profile) {
-			// do nothing
-		}
-	
-		public void profileDeleted(IConnectionProfile profile) {
-			// do nothing
-		}
-	}
-
-
-//	// ********** viewer filter **********
-//
-//	static class LocalViewerFilter extends ViewerFilter {
-//
-//		private static final String DATABASE_CATEGORY_ID = "org.eclipse.datatools.connectivity.db.category"; //$NON-NLS-1$
-//
-//		LocalViewerFilter() {
-//			super();
-//		}
-//
-//		@Override
-//		public boolean select(Viewer viewer, Object parentElement, Object element) {
-//			CPWizardNode wizardNode = (CPWizardNode) element;
-//			IProfileWizardProvider wizardProvider = wizardNode.getProvider();
-//			if (wizardProvider instanceof IWizardCategoryProvider) {
-//				return false;
-//			}
-//			ICategory category = ConnectionProfileManager.getInstance().getProvider(
-//							((ProfileWizardProvider) wizardProvider).getProfile()).getCategory();
-//			
-//			// Only display wizards belong to database category
-//			while (category != null) {
-//				if (category.getId().equals(DATABASE_CATEGORY_ID)) {
-//					return true;
-//				}
-//				category = category.getParent();
-//			}
-//			return false;
-//		}
-//	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/.classpath b/jpa/plugins/org.eclipse.jpt.jpa.db/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.db/.cvsignore
deleted file mode 100644
index a196dd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
-javaCompiler...args.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/.project b/jpa/plugins/org.eclipse.jpt.jpa.db/.project
deleted file mode 100644
index 3cb8e9f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.db</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 84ebb5c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:11:02 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 929d545..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:59:18 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF
deleted file mode 100644
index 2288e89..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.db
-Bundle-Version: 2.0.0.qualifier
-Bundle-Activator: org.eclipse.jpt.jpa.db.JptJpaDbPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.datatools.enablement.jdt.classpath;bundle-version="[1.0.1,2.0.0)",
- org.eclipse.datatools.sqltools.editor.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)"
-Export-Package: org.eclipse.jpt.jpa.db,
- org.eclipse.jpt.jpa.db.internal;x-internal:=true,
- org.eclipse.jpt.jpa.db.internal.vendor;x-internal:=true
-Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/about.html b/jpa/plugins/org.eclipse.jpt.jpa.db/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.db/build.properties
deleted file mode 100644
index b562908..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/component.xml b/jpa/plugins/org.eclipse.jpt.jpa.db/component.xml
deleted file mode 100644
index e52b4ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2007, 2010 Oracle. All rights reserved.
-  This program and the accompanying materials are made available under the
-  terms of the Eclipse Public License v1.0, which accompanies this distribution
-  and is available at http://www.eclipse.org/legal/epl-v10.html.
-
-  Contributors:
-    Oracle - initial API and implementation
- -->
-
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jpa.db"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.jpa.db" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.db/plugin.properties
deleted file mode 100644
index c428887..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - JPA DB
-providerName = Eclipse Web Tools Platform
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Catalog.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Catalog.java
deleted file mode 100644
index 7851202..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Catalog.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Database catalog
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Catalog extends SchemaContainer {
-	// nothing yet
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Column.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Column.java
deleted file mode 100644
index a1a0327..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Column.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import org.eclipse.jpt.common.utility.JavaType;
-
-/**
- * Database column
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Column extends DatabaseObject {
-
-	/**
-	 * Return the column's table.
-	 */
-	Table getTable();
-
-
-	// ********** constraints **********
-
-	/**
-	 * Return whether the column is part of its table's primary key.
-	 */
-	boolean isPartOfPrimaryKey();
-
-	/**
-	 * Return whether the column is part of one of its table's foreign keys.
-	 */
-	boolean isPartOfForeignKey();
-
-	/**
-	 * Return whether the column is part of a unique constraint defined for its
-	 * table.
-	 */
-	boolean isPartOfUniqueConstraint();
-
-	/**
-	 * Return whether the column is nullable.
-	 */
-	boolean isNullable();
-
-
-	// ********** data type **********
-
-	/**
-	 * Return the name of the column's datatype.
-	 */
-	String getDataTypeName();
-
-	/**
-	 * Return whether the column's type is numeric.
-	 */
-	boolean isNumeric();
-
-	/**
-	 * Return the column's precision if it is a NumericalDataType;
-	 * otherwise, return -1.
-	 */
-	public int getPrecision();
-
-	/**
-	 * Return the column's scale if it is an ExactNumericDataType;
-	 * otherwise, return -1.
-	 */
-	public int getScale();
-
-	/**
-	 * If the column is a CharacterStringDataType, return its length;
-	 * otherwise, return -1.
-	 */
-	public int getLength();
-
-	/**
-	 * Return whether the column's datatype is a LOB type
-	 * (i.e. BLOB, CLOB, or NCLOB).
-	 */
-	boolean isLOB();
-
-
-	// ********** Java type **********
-
-	/**
-	 * Return a Java type declaration that is reasonably
-	 * similar to the column's data type.
-	 */
-	String getJavaTypeDeclaration();
-
-	/**
-	 * Return a Java type that is reasonably
-	 * similar to the column's data type.
-	 */
-	JavaType getJavaType();
-
-	/**
-	 * Return a Java type declaration that is reasonably
-	 * similar to the column's data type and suitable for use as a
-	 * primary key field.
-	 */
-	String getPrimaryKeyJavaTypeDeclaration();
-
-	/**
-	 * Return a Java type that is reasonably
-	 * similar to the column's data type and suitable for use as a
-	 * primary key field.
-	 */
-	JavaType getPrimaryKeyJavaType();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionAdapter.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionAdapter.java
deleted file mode 100644
index e0c40b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionAdapter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * An empty implementation of {@link ConnectionListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ConnectionAdapter implements ConnectionListener {
-
-	public void aboutToClose(ConnectionProfile profile) {
-		// do nothing
-	}
-
-	public void closed(ConnectionProfile profile) {
-		// do nothing
-	}
-
-	public void databaseChanged(ConnectionProfile profile, Database database) {
-		// do nothing
-	}
-
-	public void modified(ConnectionProfile profile) {
-		// do nothing
-	}
-
-	public boolean okToClose(ConnectionProfile profile) {
-		return true;
-	}
-
-	public void opened(ConnectionProfile profile) {
-		// do nothing
-	}
-
-	public void catalogChanged(ConnectionProfile profile, Catalog catalog) {
-		// do nothing
-	}
-
-	public void schemaChanged(ConnectionProfile profile, Schema schema) {
-		// do nothing
-	}
-
-	public void sequenceChanged(ConnectionProfile profile, Sequence sequence) {
-		// do nothing
-	}
-
-	public void tableChanged(ConnectionProfile profile, Table table) {
-		// do nothing
-	}
-
-	public void columnChanged(ConnectionProfile profile, Column column) {
-		// do nothing
-	}
-
-	public void foreignKeyChanged(ConnectionProfile profile, ForeignKey foreignKey) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionListener.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionListener.java
deleted file mode 100644
index ccbbd6e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionListener.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import java.util.EventListener;
-
-/**
- * A <code>ConnectionListener</code> is notified of any changes to a connection.
- * <p>
- * @see org.eclipse.datatools.connectivity.IManagedConnectionListener
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ConnectionListener extends EventListener {
-
-	public void opened(ConnectionProfile profile);
-	public void modified(ConnectionProfile profile);
-	public boolean okToClose(ConnectionProfile profile);
-	public void aboutToClose(ConnectionProfile profile);
-	public void closed(ConnectionProfile profile);
-
-	public void databaseChanged(ConnectionProfile profile, Database database);
-	public void catalogChanged(ConnectionProfile profile, Catalog catalog);
-	public void schemaChanged(ConnectionProfile profile, Schema schema);
-	public void sequenceChanged(ConnectionProfile profile, Sequence sequence);
-	public void tableChanged(ConnectionProfile profile, Table table);
-	public void columnChanged(ConnectionProfile profile, Column column);
-	public void foreignKeyChanged(ConnectionProfile profile, ForeignKey foreignKey);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfile.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfile.java
deleted file mode 100644
index 610048e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfile.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-
-/**
- * Database connection profile
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ConnectionProfile extends DatabaseObject {
-
-	// ********** properties **********
-
-	/**
-	 * Return the connection profile's database.
-	 * Return null if the connection profile is inactive.
-	 */
-	Database getDatabase();
-
-	/**
-	 * Return ID of the provider managing the DTP profile.
-	 */
-	String getProviderID();
-
-	/**
-	 * Return the connection profile's static ID.
-	 */
-	String getInstanceID();
-
-	/**
-	 * Return the default database name.
-	 */
-	String getDatabaseName();
-
-	/**
-	 * Return the database product name.
-	 */
-	String getDatabaseProduct();
-
-	/**
-	 * Return the database vendor.
-	 */
-	String getDatabaseVendor();
-
-	/**
-	 * Return the database version.
-	 */
-	String getDatabaseVersion();
-
-	/**
-	 * Return the driver class name.
-	 */
-	String getDriverClassName();
-
-	/**
-	 * Return the default connection URL.
-	 */
-	String getURL();
-
-	/**
-	 * Return the default user name.
-	 */
-	String getUserName();
-
-	/**
-	 * Return the default user password.
-	 */
-	String getUserPassword();
-
-	/**
-	 * Return the ID of the associated Driver definition.
-	 */
-	String getDriverDefinitionID();
-
-	/**
-	 * Return the jar list for the associated Driver as a 
-	 * comma-delimited string.
-	 */
-	String getDriverJarList();
-
-	/**
-	 * Return the name of the associated Driver definition.
-	 */
-	String getDriverName();
-
-	// ********** connection **********
-
-	/**
-	 * Return whether the profile is either connected to a live database
-	 * session or working off-line (i.e. it has access to meta-data).
-	 * @see isConnected()
-	 * @see isWorkingOffline()
-	 */
-	boolean isActive();
-
-	/**
-	 * Return whether the profile is neither connected to a live database
-	 * session nor working off-line (i.e. it has access to meta-data).
-	 * @see isActive()
-	 */
-	boolean isInactive();
-
-	/**
-	 * Return whether the profile is connected to a live database session
-	 * (i.e. the meta-data comes from the database), as opposed to working
-	 * off-line.
-	 * @see #isActive()
-	 */
-	boolean isConnected();
-
-	/**
-	 * Return whether the profile is not connected to a live database session
-	 * (i.e. the meta-data comes from the database), as opposed to working
-	 * off-line.
-	 * @see #isConnected()
-	 */
-	boolean isDisconnected();
-
-	/**
-	 * Connect to the database.
-	 * @see #disconnect()
-	 */
-	void connect();
-
-	/**
-	 * Disconnect from the database.
-	 * @see #connect()
-	 */
-	void disconnect();
-
-
-	// ********** off-line support **********
-
-	/**
-	 * Return whether the profile is working off-line (i.e. the meta-data
-	 * comes from a local cache), as opposed to connected to a live
-	 * database session.
-	 * @see #isActive()
-	 */
-	boolean isWorkingOffline();
-
-	/**
-	 * Return whether the connection factories associated with the
-	 * connection profile's provider support working offline.
-	 */
-	boolean supportsWorkOfflineMode();
-
-	/**
-	 * Save the state of the connection profile for working in an offline mode.
-	 * If the connection profile does not support working in an offline mode, no
-	 * exception is thrown and the method will return immediately.
-	 */
-	IStatus saveWorkOfflineData();
-
-	/**
-	 * Return whether the connection profile supports working offline and data
-	 * has been saved for working offline.
-	 */
-	boolean canWorkOffline();
-
-	/**
-	 * Begin working off-line.
-	 */
-	IStatus workOffline();
-
-
-	// ********** listeners **********
-
-	/**
-	 * Add the specified connection listener to the connection profile.
-	 */
-	void addConnectionListener(ConnectionListener listener);
-
-	/**
-	 * Remove the specified connection listener from the connection profile.
-	 */
-	void removeConnectionListener(ConnectionListener listener);
-
-
-	// ********** constants **********
-
-	String CONNECTION_PROFILE_TYPE = "org.eclipse.datatools.connectivity.db.generic.connectionProfile";  //$NON-NLS-1$
-	String DRIVER_DEFINITION_PROP_ID = "org.eclipse.datatools.connectivity.driverDefinitionID";  //$NON-NLS-1$
-	String DRIVER_DEFINITION_TYPE_PROP_ID = "org.eclipse.datatools.connectivity.drivers.defnType";  //$NON-NLS-1$
-	String DRIVER_JAR_LIST_PROP_ID = "jarList";  //$NON-NLS-1$
-	String DATABASE_SAVE_PWD_PROP_ID = IJDBCDriverDefinitionConstants.PROP_PREFIX + "savePWD";  //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileAdapter.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileAdapter.java
deleted file mode 100644
index cdca81e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileAdapter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * An empty implementation of {@link ConnectionProfileListener}.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ConnectionProfileAdapter implements ConnectionProfileListener {
-
-	public void connectionProfileAdded(String name) {
-		// do nothing
-	}
-
-	public void connectionProfileRemoved(String name) {
-		// do nothing
-	}
-
-	public void connectionProfileRenamed(String oldName, String newName) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileFactory.java
deleted file mode 100644
index 8e98564..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Database connection profile factory
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ConnectionProfileFactory {
-
-	/**
-	 * Return the names of the DTP connection profiles the factory can wrap with
-	 * new connection profiles.
-	 */
-	Iterable<String> getConnectionProfileNames();
-
-	/**
-	 * Build and return a connection profile that wraps the DTP connection
-	 * profile with the specified name.
-	 * Return null if there is no DTP connection profile with the specified
-	 * name.
-	 * Use the specified database identifier adapter to allow clients to control how
-	 * database identifiers are converted to names and vice versa.
-	 */
-	ConnectionProfile buildConnectionProfile(String name, DatabaseIdentifierAdapter adapter);
-
-	/**
-	 * Build and return a connection profile that wraps the DTP connection
-	 * profile with the specified name.
-	 * Return null if there is no DTP connection profile with the specified
-	 * name.
-	 * <p>
-	 * Clients should use this method when a JPA platform is unavailable
-	 * (e.g. during project creation). The returned connection profile will
-	 * use the default conversions for identifiers and names.
-	 */
-	ConnectionProfile buildConnectionProfile(String name);
-
-	/**
-	 * Add a listener that will be notified of changes to the DTP
-	 * connection profiles.
-	 */
-	void addConnectionProfileListener(ConnectionProfileListener listener);
-
-	/**
-	 * Remove the specified listener.
-	 */
-	void removeConnectionProfileListener(ConnectionProfileListener listener);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileListener.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileListener.java
deleted file mode 100644
index 55e3438..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import java.util.EventListener;
-
-/**
- * A <code>ProfileListener</code> is notified of any changes to the DTP connection profiles.
- * <p>
- * @see org.eclipse.datatools.connectivity.IProfileListener
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ConnectionProfileListener extends EventListener {
-
-	/**
-	 * The specified profile has been added.
-	 */
-	public void connectionProfileAdded(String name);
-
-	/**
-	 * The specified profile has been removed.
-	 */
-	public void connectionProfileRemoved(String name);
-
-	/**
-	 * The specified profile has been renamed.
-	 */
-	public void connectionProfileRenamed(String oldName, String newName);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Database.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Database.java
deleted file mode 100644
index 034e19a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Database.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-
-/**
- * Database
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Database extends SchemaContainer {
-
-	// ********** properties **********
-
-	/**
-	 * Return the name of the database's vendor.
-	 */
-	String getVendorName();
-
-	/**
-	 * Return the database's version.
-	 */
-	String getVersion();
-
-
-	// ********** catalogs **********
-
-	/**
-	 * Return whether the database supports catalogs. If it does, all database
-	 * objects are contained by the database's catalogs; otherwise all database
-	 * objects are contained by the database's schemata.
-	 * <br>
-	 * Practically speaking:<ul>
-	 *     <li>If {@link #supportsCatalogs()} returns <code>true</code><ul>
-	 *         <li>{@link #getCatalogs()} returns catalogs that contain the database's schemata
-	 *         <li>{@link #getSchemata()} returns an empty iterable
-	 *     </ul>
-	 *     <li>else<ul>
-	 *         <li>{@link #getCatalogs()} returns an empty iterable
-	 *         <li>{@link #getSchemata()} returns the database's schemata
-	 *     </ul>
-	 * </ul>
-	 * This is complicated by the presence of a "default" catalog that clients can
-	 * use to allow the specification of a catalog to be optional; but clients
-	 * must manage this explicitly.
-	 * 
-	 * @see #getCatalogs()
-	 * @see #getSchemata()
-	 */
-	boolean supportsCatalogs();
-
-	/**
-	 * Return the database's catalogs.
-	 * Return an empty iterable if the database does not support catalogs.
-	 * @see #supportsCatalogs()
-	 */
-	Iterable<Catalog> getCatalogs();
-
-	/**
-	 * Return the number of catalogs the database contains.
-	 * Return zero if the database does not support catalogs.
-	 * @see #supportsCatalogs()
-	 */
-	int getCatalogsSize();
-
-	/**
-	 * Return the database's catalog names, sorted.
-	 * Return an empty iterable if the database does not support catalogs.
-	 * This is useful when the user is selecting a catalog from a read-only
-	 * combo-box (e.g. in a wizard).
-	 * @see #getSortedCatalogIdentifiers()
-	 * @see #getCatalogNamed(String)
-	 */
-	Iterable<String> getSortedCatalogNames();
-
-	/**
-	 * Return the catalog with specified name. The name must be an exact match
-	 * of the catalog's name.
-	 * Return null if the database does not support catalogs.
-	 * @see #supportsCatalogs()
-	 * @see #getSortedCatalogNames()
-	 * @see #getCatalogForIdentifier(String)
-	 */
-	Catalog getCatalogNamed(String name);
-
-	/**
-	 * Return the database's catalog identifiers, sorted by name.
-	 * Return an empty iterable if the database does not support catalogs.
-	 * This is useful when the user is selecting an identifier that will be
-	 * placed in a text file (e.g. in a Java annotation).
-	 * @see #getSortedCatalogNames()
-	 * @see #getCatalogForIdentifier(String)
-	 */
-	Iterable<String> getSortedCatalogIdentifiers();
-
-	/**
-	 * Return the catalog for the specified identifier. The identifier should
-	 * be an SQL identifier (i.e. quoted when case-sensitive or containing
-	 * special characters, unquoted otherwise).
-	 * Return null if the database does not support catalogs.
-	 * @see #supportsCatalogs()
-	 * @see #getSortedCatalogIdentifiers()
-	 * @see #getCatalogNamed(String)
-	 */
-	Catalog getCatalogForIdentifier(String identifier);
-
-	/**
-	 * Return the database's "default" catalog, as defined by the database vendor.
-	 * In most cases the default catalog's name will match the user name.
-	 * Return null if the database does not support catalogs or if the default
-	 * catalog does not exist (e.g. the database has no catalog whose name
-	 * matches the user name).
-	 * @see #supportsCatalogs()
-	 * @see #getDefaultCatalogIdentifier()
-	 */
-	Catalog getDefaultCatalog();
-
-	/**
-	 * Return the database's "default" catalog identifier.
-	 * The database may or may not have a catalog with a matching name.
-	 * @see #supportsCatalogs()
-	 * @see #getDefaultCatalog()
-	 */
-	String getDefaultCatalogIdentifier();
-
-
-	// ********** utility methods **********
-
-	/**
-	 * Select and return from the specified list of database objects the
-	 * database object identified by the specified identifier.
-	 * The identifier should be an SQL identifier (i.e. delimited when
-	 * non-"normal").
-	 */
-	<T extends DatabaseObject> T selectDatabaseObjectForIdentifier(Iterable<T> databaseObjects, String identifier);
-
-	/**
-	 * Convert the specified name to a database-appropriate SQL identifier.
-	 */
-	String convertNameToIdentifier(String name);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseIdentifierAdapter.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseIdentifierAdapter.java
deleted file mode 100644
index b840f6a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseIdentifierAdapter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * This interface allows clients of the Dali db package to plug in a custom
- * strategy for converting a database identifier to a database name and vice
- * versa.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface DatabaseIdentifierAdapter {
-
-	/**
-	 * Convert the specified "identifier" to a "name".
-	 */
-	String convertIdentifierToName(String identifier, DefaultCallback defaultCallback);
-
-	/**
-	 * Convert the specified "name" to an "identifier".
-	 */
-	String convertNameToIdentifier(String name, DefaultCallback defaultCallback);
-
-	/**
-	 * The client-provided finder is passed a "default" callback that can be
-	 * used if appropriate.
-	 */
-	interface DefaultCallback {
-
-		/**
-		 * Convert the specified "identifier" to a "name".
-		 */
-		String convertIdentifierToName(String identifier);
-
-		/**
-		 * Convert the specified "name" to an "identifier".
-		 */
-		String convertNameToIdentifier(String name);
-
-	}
-
-	/**
-	 * This adapter simply uses the passed in default callback.
-	 */
-	final class Default implements DatabaseIdentifierAdapter {
-		public static final DatabaseIdentifierAdapter INSTANCE = new Default();
-		public static DatabaseIdentifierAdapter instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		// simply use the default callback
-		public String convertIdentifierToName(String identifier, DefaultCallback defaultCallback) {
-			return defaultCallback.convertIdentifierToName(identifier);
-		}
-		// simply use the default callback
-		public String convertNameToIdentifier(String name, DefaultCallback defaultCallback) {
-			return defaultCallback.convertNameToIdentifier(name);
-		}
-		@Override
-		public String toString() {
-			return "DatabaseIdentifierAdapter.Default"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseObject.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseObject.java
deleted file mode 100644
index 97997dc..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseObject.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import java.util.Comparator;
-
-import org.eclipse.jpt.common.utility.internal.Transformer;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * Common behavior to all database objects
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface DatabaseObject {
-
-	/**
-	 * Return the database object's name.
-	 */
-	String getName();
-
-	/**
-	 * Return the database object's "identifier", which is the object's name
-	 * modified so it can be used in an SQL statement (e.g. if the name contains
-	 * special characters or is mixed case, it will be delimited, typically by
-	 * double-quotes).
-	 * Return null if the database object's identifier matches the specified
-	 * "default name".
-	 * <p>
-	 * This is used by the old entity generation code to determine whether
-	 * a generated annotation must explicitly identify a database object
-	 * (e.g. a table) or the specified default adequately identifies the database object
-	 * (taking into consideration case-sensitivity and special characters).
-	 */
-	String getIdentifier(String defaultName);
-
-	/**
-	 * Return the database object's "identifier", which is the object's name
-	 * modified so it can be used in an SQL statement (e.g. if the name contains
-	 * special characters or is mixed case, it will be delimited, typically by
-	 * double-quotes).
-	 */
-	String getIdentifier();
-
-	/**
-	 * Return the database object's database.
-	 */
-	Database getDatabase();
-
-	/**
-	 * Return the database object's connection profile.
-	 */
-	ConnectionProfile getConnectionProfile();
-
-
-	Comparator<DatabaseObject> DEFAULT_COMPARATOR =
-			new Comparator<DatabaseObject>() {
-				public int compare(DatabaseObject dbObject1, DatabaseObject dbObject2) {
-					return Collator.getInstance().compare(dbObject1.getName(), dbObject2.getName());
-				}
-				@Override
-				public String toString() {
-					return "DatabaseObject.DEFAULT_COMPARATOR"; //$NON-NLS-1$
-				}
-			};
-
-	Transformer<DatabaseObject, String> NAME_TRANSFORMER =
-			new Transformer<DatabaseObject, String>() {
-				public String transform(DatabaseObject dbObject) {
-					return dbObject.getName();
-				}
-				@Override
-				public String toString() {
-					return "DatabaseObject.NAME_TRANSFORMER"; //$NON-NLS-1$
-				}
-			};
-
-	Transformer<DatabaseObject, String> IDENTIFIER_TRANSFORMER =
-			new Transformer<DatabaseObject, String>() {
-				public String transform(DatabaseObject dbObject) {
-					return dbObject.getIdentifier();
-				}
-				@Override
-				public String toString() {
-					return "DatabaseObject.IDENTIFIER_TRANSFORMER"; //$NON-NLS-1$
-				}
-			};
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ForeignKey.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ForeignKey.java
deleted file mode 100644
index 9db0d8e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ForeignKey.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import java.util.Comparator;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * Database foreign key
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ForeignKey extends DatabaseObject {
-
-	// ********** tables **********
-
-	/**
-	 * Return the foreign key's "base" table.
-	 */
-	Table getBaseTable();
-
-	/**
-	 * Return the foreign key's "referenced" table.
-	 */
-	Table getReferencedTable();
-
-
-	// ********** column pairs **********
-
-	/**
-	 * Return the foreign key's column pairs.
-	 */
-	Iterable<ColumnPair> getColumnPairs();
-
-	/**
-	 * Return the size of the foreign key's column pairs.
-	 */
-	int getColumnPairsSize();
-
-	/**
-	 * Return the foreign key's single column pair. Throw an
-	 * {@link IllegalStateException} if the foreign key has more than one column pair.
-	 */
-	ColumnPair getColumnPair();
-
-	/**
-	 * Return the foreign key's "base" columns.
-	 */
-	Iterable<Column> getBaseColumns();
-
-	/**
-	 * Return the foreign key's "base" columns that are not part of the base
-	 * table's primary key. (The non-primary key base columns are not used to
-	 * generate basic attributes during entity generation.)
-	 */
-	Iterable<Column> getNonPrimaryKeyBaseColumns();
-
-	/**
-	 * Return the foreign key's "referenced" columns.
-	 */
-	Iterable<Column> getReferencedColumns();
-
-	/**
-	 * Return whether the foreign key references the primary key of the
-	 * "referenced" table and that primary key has only a single column.
-	 * This can be used when determining JPA defaults.
-	 */
-	boolean referencesSingleColumnPrimaryKey();
-
-
-	// ********** JPA support **********
-
-	/**
-	 * Return an appropriate name for an attribute that holds the entity
-	 * mapped to the foreign key's "referenced" table.
-	 */
-	String getAttributeName();
-
-	/**
-	 * If the name of the "base" column adheres to the JPA spec for a
-	 * default mapping (i.e. it ends with an underscore followed by the name
-	 * of the "referenced" column, and the "referenced" column is the single
-	 * primary key column of the "referenced" table), return the corresponding
-	 * default attribute name:<pre>
-	 *     ForeignKey(EMP.CUBICLE_ID => CUBICLE.ID) => "CUBICLE"
-	 * </pre>
-	 * Return a <code>null</code> if it does not adhere to the JPA spec:<pre>
-	 *     ForeignKey(EMP.CUBICLE_ID => CUBICLE.CUBICLE_ID) => null
-	 *     ForeignKey(EMP.CUBICLE => CUBICLE.ID) => null
-	 * </pre>
-	 */
-	String getDefaultAttributeName();
-
-	/**
-	 * Given the name of an attribute (field or property) that is mapped to the
-	 * foreign key,
-	 * build and return a string to be used as the value for the attribute's
-	 * <code>@javax.persistence.JoinColumn</code> annotation's <code>name</code> element.
-	 * Return <code>null</code> if the attribute
-	 * maps to the join column by default.
-	 * <p>
-	 * Precondition: The foreign key consists of a single column pair whose
-	 * referenced column is the single-column primary key of the foreign
-	 * key's referenced table.
-	 * <p>
-	 * This is used by the old entity generation code to determine whether
-	 * a generated annotation must explicitly identify the join column
-	 * or the calculated default adequately identifies the join column
-	 * (taking into consideration case-sensitivity and special characters).
-	 */
-	String getJoinColumnAnnotationIdentifier(String attributeName);
-
-	// ********** column pair interface **********
-
-	/**
-	 * Pair up the foreign key's column pairs, matching each "base" column with
-	 * the appropriate "referenced" column.
-	 * @see #columnPairs()
-	 */
-	interface ColumnPair {
-
-		/**
-		 * Return the column pair's "base" column.
-		 */
-		Column getBaseColumn();
-
-		/**
-		 * Return the column pair's "referenced" column.
-		 */
-		Column getReferencedColumn();
-
-		Comparator<ColumnPair> BASE_COLUMN_COMPARATOR =
-				new Comparator<ColumnPair>() {
-					public int compare(ColumnPair cp1, ColumnPair cp2) {
-						return Collator.getInstance().compare(cp1.getBaseColumn().getName(), cp2.getBaseColumn().getName());
-					}
-					@Override
-					public String toString() {
-						return "ForeignKey.ColumnPair.BASE_COLUMN_COMPARATOR"; //$NON-NLS-1$
-					}
-				};
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/JptJpaDbPlugin.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/JptJpaDbPlugin.java
deleted file mode 100644
index abc887e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/JptJpaDbPlugin.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.datatools.enablement.jdt.classpath.DriverClasspathContainer;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jpt.jpa.db.internal.DTPConnectionProfileFactory;
-import org.osgi.framework.BundleContext;
-
-/**
- * The JPT DB plug-in lifecycle implementation.
- * Globally available connection profile factory.
- * <p>
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class JptJpaDbPlugin extends Plugin {
-	private DTPConnectionProfileFactory connectionProfileFactory;
-
-	private static JptJpaDbPlugin INSTANCE;  // sorta-final
-
-	/**
-	 * Return the singleton JPT DB plug-in.
-	 */
-	public static JptJpaDbPlugin instance() {
-		return INSTANCE;
-	}
-
-	// ********** public static methods **********
-
-	public static ConnectionProfileFactory getConnectionProfileFactory() {
-		return INSTANCE.getConnectionProfileFactory_();
-	}
-
-	// ********** plug-in implementation **********
-
-	/**
-	 * The constructor
-	 */
-	public JptJpaDbPlugin() {
-		super();
-		if (INSTANCE != null) {
-			throw new IllegalStateException();
-		}
-		// this convention is *wack*...  ~bjv
-		INSTANCE = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		if (this.connectionProfileFactory != null) {
-			this.connectionProfileFactory.stop();
-			this.connectionProfileFactory = null;
-		}
-		INSTANCE = null;
-		super.stop(context);
-	}
-
-	private synchronized ConnectionProfileFactory getConnectionProfileFactory_() {
-		if (this.connectionProfileFactory == null) {
-			this.connectionProfileFactory = buildConnectionProfileFactory();
-	        this.connectionProfileFactory.start();			
-		}
-		return this.connectionProfileFactory;
-	}
-
-	private DTPConnectionProfileFactory buildConnectionProfileFactory() {
-		return DTPConnectionProfileFactory.instance();
-	}
-
-	/**
-	 * Creates a jar list container for the given DTP driver.
-	 */
-	public IClasspathContainer buildDriverClasspathContainerFor(String driverName) {
-		return new DriverClasspathContainer(driverName);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Schema.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Schema.java
deleted file mode 100644
index 92dd37f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Schema.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Database schema
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Schema extends DatabaseObject {
-
-	/**
-	 * Return the schema's container; either a catalog or a database.
-	 */
-	SchemaContainer getContainer();
-
-
-	// ********** tables **********
-
-	/**
-	 * Return the schema's tables.
-	 */
-	Iterable<Table> getTables();
-
-	/**
-	 * Return the number of tables the schema contains.
-	 */
-	int getTablesSize();
-
-	/**
-	 * Return the table with specified name. The name must be an exact match
-	 * of the table's name.
-	 * @see #getTableForIdentifier(String)
-	 */
-	 Table getTableNamed(String name);
-
-	/**
-	 * Return the schema's table identifiers, sorted by name.
-	 * @see #getTableForIdentifier(String)
-	 */
-	Iterable<String> getSortedTableIdentifiers();
-
-	/**
-	 * Return the table for the specified identifier. The identifier should
-	 * be an SQL identifier (i.e. quoted when case-sensitive or containing
-	 * special characters, unquoted otherwise).
-	 * @see #getTableNamed(String)
-	 * @see #getSortedTableIdentifiers()
-	 */
-	Table getTableForIdentifier(String identifier);
-
-
-	// ********** sequences **********
-
-	/**
-	 * Return the schema's sequences.
-	 */
-	Iterable<Sequence> getSequences();
-
-	/**
-	 * Return the number of sequences the schema contains.
-	 */
-	int getSequencesSize();
-
-	/**
-	 * Return the sequence with specified name. The name must be an exact match
-	 * of the sequence's name.
-	 * @see #getSequenceForIdentifier(String)
-	 */
-	Sequence getSequenceNamed(String name);
-
-	/**
-	 * Return the schema's sequence identifers, sorted by name.
-	 * @see #getSequenceForIdentifier(String)
-	 */
-	Iterable<String> getSortedSequenceIdentifiers();
-
-	/**
-	 * Return the sequence for the specified identifier. The identifier should
-	 * be an SQL identifier (i.e. quoted when case-sensitive or containing
-	 * special characters, unquoted otherwise).
-	 * @see #getSequenceNamed(String)
-	 * @see #getSortedSequenceIdentifiers()
-	 */
-	Sequence getSequenceForIdentifier(String identifier);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/SchemaContainer.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/SchemaContainer.java
deleted file mode 100644
index 98e939a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/SchemaContainer.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Schema "container" (i.e. Database or Catalog)
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface SchemaContainer extends DatabaseObject {
-
-	/**
-	 * Return the container's schemata.
-	 */
-	Iterable<Schema> getSchemata();
-
-	/**
-	 * Return the number of schemata in the container.
-	 */
-	int getSchemataSize();
-
-	/**
-	 * Return the container's schema names, sorted.
-	 * This is useful when the user is selecting a schema from a read-only
-	 * combo-box (e.g. in a wizard).
-	 * @see #getSchemaNamed(String)
-	 * @see #getSortedSchemaIdentifiers()
-	 */
-	Iterable<String> getSortedSchemaNames();
-
-	/**
-	 * Return the schema with specified name. The name must be an exact match
-	 * of the schema's name.
-	 * @see #getSortedSchemaNames()
-	 * @see #getSchemaForIdentifier(String)
-	 */
-	Schema getSchemaNamed(String name);
-
-	/**
-	 * Return the container's schema identifiers, sorted by name.
-	 * This is useful when the user is selecting an identifier that will be
-	 * placed in a text file (e.g. in a Java annotation).
-	 * @see #getSchemaForIdentifier(String)
-	 * @see #getSortedSchemaNames()
-	 */
-	Iterable<String> getSortedSchemaIdentifiers();
-
-	/**
-	 * Return the schema for the specified identifier. The identifier should
-	 * be an SQL identifier (i.e. quoted when case-sensitive or containing
-	 * special characters, unquoted otherwise).
-	 * @see #getSortedSchemaIdentifiers()
-	 * @see #getSchemaNamed(String)
-	 */
-	Schema getSchemaForIdentifier(String identifier);
-
-	/**
-	 * Return the container's "default" schema, as defined by the database vendor.
-	 * In most cases the default schema's name will match the user name.
-	 * Return null if the default schema does not exist (e.g. the container has
-	 * no schema whose name matches the user name).
-	 * @see #getDefaultSchemaIdentifier()
-	 */
-	Schema getDefaultSchema();
-
-	/**
-	 * Return the container's "default" schema identifier.
-	 * The container may or may not have a schema with a matching name.
-	 * @see #getDefaultSchema()
-	 */
-	String getDefaultSchemaIdentifier();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Sequence.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Sequence.java
deleted file mode 100644
index 9f78509..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Sequence.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Database sequence
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Sequence extends DatabaseObject {
-
-	/**
-	 * Return the sequence's schema.
-	 */
-	Schema getSchema();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Table.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Table.java
deleted file mode 100644
index 663c2f4..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Table.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db;
-
-/**
- * Database table
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Table extends DatabaseObject {
-
-	/**
-	 * Return the table's schema.
-	 */
-	Schema getSchema();
-
-
-	// ********** columns **********
-
-	/**
-	 * Return the table's columns.
-	 */
-	Iterable<Column> getColumns();
-
-	/**
-	 * Return the number of columns the table contains.
-	 */
-	int getColumnsSize();
-
-	/**
-	 * Return the column with specified name. The name must be an exact match
-	 * of the column's name.
-	 * @see #getColumnForIdentifier(String)
-	 */
-	Column getColumnNamed(String name);
-
-	/**
-	 * Return the table's column identifers, sorted by name.
-	 * @see #getColumnForIdentifier(String)
-	 */
-	Iterable<String> getSortedColumnIdentifiers();
-
-	/**
-	 * Return the column for the specified identifier. The identifier should
-	 * be an SQL identifier (i.e. quoted when case-sensitive or containing
-	 * special characters, unquoted otherwise).
-	 * @see #getColumnNamed(String)
-	 * @see #getSortedColumnIdentifiers()
-	 */
-	Column getColumnForIdentifier(String identifier);
-
-
-	// ********** primary key columns **********
-
-	/**
-	 * Return the table's primary key columns.
-	 */
-	Iterable<Column> getPrimaryKeyColumns();
-
-	/**
-	 * Return the number of primary key columns the table contains.
-	 */
-	int getPrimaryKeyColumnsSize();
-
-	/**
-	 * Return the table's single primary key column. Throw an
-	 * {@link IllegalStateException} if the table has more than one primary key column.
-	 */
-	Column getPrimaryKeyColumn();
-
-
-	// ********** foreign keys **********
-
-	/**
-	 * Return the table's foreign keys.
-	 */
-	Iterable<ForeignKey> getForeignKeys();
-
-	/**
-	 * Return the number of foreign keys the table contains.
-	 */
-	int getForeignKeysSize();
-
-
-	// ********** join table support **********
-
-	/**
-	 * Return whether the table is possibly a "join" table
-	 * (i.e. it contains only 2 foreign keys). Whether the table <em>actually</em> is
-	 * a "join" table is determined by the semantics of the database design.
-	 */
-	boolean isPossibleJoinTable();
-
-	/**
-	 * Assuming the table is a "join" table, return the foreign key to the
-	 * "owning" table.
-	 * @see #isPossibleJoinTable()
-	 */
-	ForeignKey getJoinTableOwningForeignKey();
-
-	/**
-	 * Assuming the table is a "join" table, return the foreign key to the
-	 * "non-owning" table.
-	 * @see #isPossibleJoinTable()
-	 */
-	ForeignKey getJoinTableNonOwningForeignKey();
-
-	/**
-	 * Assuming the table is a "join" table, return whether its name matches
-	 * the JPA default (i.e. <code>"OWNINGTABLE_NONOWNINGTABLE"</code>).
-	 * @see #isPossibleJoinTable()
-	 */
-	boolean joinTableNameIsDefault();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPCatalogWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPCatalogWrapper.java
deleted file mode 100644
index f7046b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPCatalogWrapper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.List;
-
-import org.eclipse.jpt.jpa.db.Catalog;
-
-/**
- * Wrap a DTP Catalog
- */
-final class DTPCatalogWrapper
-	extends DTPSchemaContainerWrapper
-	implements Catalog
-{
-	/** the wrapped DTP catalog */
-	private final org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog;
-
-
-	// ********** constructor **********
-
-	DTPCatalogWrapper(DTPDatabaseWrapper database, org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog) {
-		super(database, dtpCatalog);
-		this.dtpCatalog = dtpCatalog;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().catalogChanged(this);
-	}
-
-
-	// ********** DTPSchemaContainerWrapper implementation **********
-
-	@Override
-	@SuppressWarnings("unchecked")
-	List<org.eclipse.datatools.modelbase.sql.schema.Schema> getDTPSchemata() {
-		return this.dtpCatalog.getSchemas();
-	}
-
-	@Override
-	DTPSchemaWrapper getSchema(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		// try to short-circuit the search
-		return this.wraps(dtpSchema.getCatalog()) ?
-						this.getSchema_(dtpSchema) :
-						this.getDatabase().getSchemaFromCatalogs(dtpSchema);
-	}
-
-	@Override
-	DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		// try to short-circuit the search
-		return this.wraps(dtpTable.getSchema().getCatalog()) ?
-						this.getTable_(dtpTable) :
-						this.getDatabase().getTableFromCatalogs(dtpTable);
-	}
-
-	@Override
-	DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		// try to short-circuit the search
-		return this.wraps(dtpColumn.getTable().getSchema().getCatalog()) ?
-						this.getColumn_(dtpColumn) :
-						this.getDatabase().getColumnFromCatalogs(dtpColumn);
-	}
-
-
-	// ********** DatabaseObject implementation **********
-
-	public String getName() {
-		return this.dtpCatalog.getName();
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.schema.Catalog catalog) {
-		return this.dtpCatalog == catalog;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPColumnWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPColumnWrapper.java
deleted file mode 100644
index 75fb2b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPColumnWrapper.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
-import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
-import org.eclipse.jpt.common.utility.JavaType;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.internal.SimpleJavaType;
-import org.eclipse.jpt.jpa.db.Column;
-
-/**
- *  Wrap a DTP Column
- */
-final class DTPColumnWrapper
-	extends DTPDatabaseObjectWrapper
-	implements Column
-{
-	/** the wrapped DTP column */
-	private final org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn;
-
-
-	// ********** constructor **********
-
-	DTPColumnWrapper(DTPTableWrapper table, org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		super(table, dtpColumn);
-		this.dtpColumn = dtpColumn;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().columnChanged(this);
-	}
-
-
-	// ********** Column implementation **********
-
-	public String getName() {
-		return this.dtpColumn.getName();
-	}
-
-	public DTPTableWrapper getTable() {
-		return (DTPTableWrapper) this.getParent();
-	}
-
-	public boolean isPartOfPrimaryKey() {
-		return this.getTable().primaryKeyColumnsContains(this);
-	}
-
-	public boolean isPartOfForeignKey() {
-		return this.getTable().foreignKeyBaseColumnsContains(this);
-	}
-
-	public boolean isPartOfUniqueConstraint() {
-		return this.dtpColumn.isPartOfUniqueConstraint();
-	}
-
-	public boolean isNullable() {
-		return this.dtpColumn.isNullable();
-	}
-
-	public String getDataTypeName() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType == null) ? null : dataType.getName();
-	}
-
-	public boolean isNumeric() {
-		return this.dtpColumn.getDataType() instanceof NumericalDataType;
-	}	
-
-	public int getPrecision() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof NumericalDataType) ?
-						((NumericalDataType) dataType).getPrecision() :
-						-1;
-	}
-
-	public int getScale(){
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof ExactNumericDataType) ?
-						((ExactNumericDataType) dataType).getScale() :
-						-1;
-	}
-
-	public int getLength() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof CharacterStringDataType) ?
-						((CharacterStringDataType) dataType).getLength() :
-						-1;
-	}
-
-	public boolean isLOB() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof PredefinedDataType) ?
-						primitiveTypeIsLob(((PredefinedDataType) dataType).getPrimitiveType()) :
-						false;
-	}
-
-	public String getJavaTypeDeclaration() {
-		return this.getJavaType().declaration();
-	}
-
-	public JavaType getJavaType() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof PredefinedDataType) ?
-			convertToJPAJavaType(this.getJavaType((PredefinedDataType) dataType)) :
-			DEFAULT_JAVA_TYPE;
-	}
-
-	public String getPrimaryKeyJavaTypeDeclaration() {
-		return this.getPrimaryKeyJavaType().declaration();
-	}
-
-	public JavaType getPrimaryKeyJavaType() {
-		return convertToJPAPrimaryKeyJavaType(this.getJavaType());
-	}
-
-	private JavaType getJavaType(PredefinedDataType dataType) {
-		// this is just a bit hacky: moving from a type declaration to a class name to a type declaration...
-		String dtpJavaClassName = this.resolveDefinition(dataType).getJavaClassName();
-		return new SimpleJavaType(ReflectionTools.getClassNameForTypeDeclaration(dtpJavaClassName));
-	}
-
-	private PredefinedDataTypeDefinition resolveDefinition(PredefinedDataType dataType) {
-		return this.getDatabase().getDTPDefinition().getPredefinedDataTypeDefinition(dataType.getName());
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.tables.Column column) {
-		return this.dtpColumn == column;
-	}
-
-	@Override
-	void clear() {
-		// no state to clear
-	}
-
-
-	// ********** static methods **********
-
-	/**
-	 * The JDBC spec says JDBC drivers should be able to map BLOBs and CLOBs
-	 * directly, but the JPA spec does not allow them.
-	 */
-	private static JavaType convertToJPAJavaType(JavaType javaType) {
-		if (javaType.equals(BLOB_JAVA_TYPE)) {
-			return BYTE_ARRAY_JAVA_TYPE;
-		}
-		if (javaType.equals(CLOB_JAVA_TYPE)) {
-			return STRING_JAVA_TYPE;
-		}
-		return javaType;
-	}
-
-	/**
-	 * The JPA spec [2.1.4] says only the following types are allowed in
-	 * primary key fields:<ul>
-	 *     <li>[variable] primitives
-	 *     <li>[variable] primitive wrappers
-	 *     <li>{@link java.lang.String}
-	 *     <li>{@link java.util.Date}
-	 *     <li>{@link java.sql.Date}
-	 * </ul>
-	 */
-	private static JavaType convertToJPAPrimaryKeyJavaType(JavaType javaType) {
-		if (javaType.isVariablePrimitive()
-				|| javaType.isVariablePrimitiveWrapper()
-				|| javaType.equals(STRING_JAVA_TYPE)
-				|| javaType.equals(UTIL_DATE_JAVA_TYPE)
-				|| javaType.equals(SQL_DATE_JAVA_TYPE)) {
-			return javaType;
-		}
-		if (javaType.equals(BIG_DECIMAL_JAVA_TYPE)) {
-			return LONG_JAVA_TYPE;  // ??
-		}
-		if (javaType.equals(SQL_TIME_JAVA_TYPE)) {
-			return UTIL_DATE_JAVA_TYPE;  // ???
-		}
-		if (javaType.equals(SQL_TIMESTAMP_JAVA_TYPE)) {
-			return UTIL_DATE_JAVA_TYPE;  // ???
-		}
-		// all the other typical types are pretty much un-mappable - return String(?)
-		return STRING_JAVA_TYPE;
-	}
-
-	private static boolean primitiveTypeIsLob(PrimitiveType primitiveType) {
-		return (primitiveType == PrimitiveType.BINARY_LARGE_OBJECT_LITERAL)
-				|| (primitiveType == PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL)
-				|| (primitiveType == PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL);
-	}
-
-
-	// ***** some constants used when converting the column to a Java attribute
-	// TODO Object is the default?
-	private static final JavaType DEFAULT_JAVA_TYPE = new SimpleJavaType(java.lang.Object.class);
-
-	private static final JavaType BLOB_JAVA_TYPE = new SimpleJavaType(java.sql.Blob.class);
-	private static final JavaType BYTE_ARRAY_JAVA_TYPE = new SimpleJavaType(byte[].class);
-
-	private static final JavaType CLOB_JAVA_TYPE = new SimpleJavaType(java.sql.Clob.class);
-	private static final JavaType STRING_JAVA_TYPE = new SimpleJavaType(java.lang.String.class);
-
-	private static final JavaType UTIL_DATE_JAVA_TYPE = new SimpleJavaType(java.util.Date.class);
-	private static final JavaType SQL_DATE_JAVA_TYPE = new SimpleJavaType(java.sql.Date.class);
-	private static final JavaType SQL_TIME_JAVA_TYPE = new SimpleJavaType(java.sql.Time.class);
-	private static final JavaType SQL_TIMESTAMP_JAVA_TYPE = new SimpleJavaType(java.sql.Timestamp.class);
-
-	private static final JavaType BIG_DECIMAL_JAVA_TYPE = new SimpleJavaType(java.math.BigDecimal.class);
-	private static final JavaType LONG_JAVA_TYPE = new SimpleJavaType(long.class);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileFactory.java
deleted file mode 100644
index c4d86b7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileFactory.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IProfileListener1;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.ConnectionProfile;
-import org.eclipse.jpt.jpa.db.ConnectionProfileFactory;
-import org.eclipse.jpt.jpa.db.ConnectionProfileListener;
-import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter;
-
-/**
- * Wrap the DTP ProfileManager in yet another singleton.
- */
-public final class DTPConnectionProfileFactory
-	implements ConnectionProfileFactory
-{
-	private ProfileManager dtpProfileManager;
-
-	private LocalProfileListener profileListener;
-
-
-	// ********** singleton **********
-
-	private static final DTPConnectionProfileFactory INSTANCE = new DTPConnectionProfileFactory();
-
-	public static DTPConnectionProfileFactory instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * 'private' to ensure singleton
-	 */
-	private DTPConnectionProfileFactory() {
-		super();
-	}
-
-
-	// ********** lifecycle **********
-
-	/**
-	 * called by plug-in
-	 */
-	public synchronized void start() {
-		this.dtpProfileManager = ProfileManager.getInstance();
-		this.profileListener = new LocalProfileListener();
-		this.dtpProfileManager.addProfileListener(this.profileListener);
-	}
-
-	/**
-	 * called by plug-in
-	 */
-	public synchronized void stop() {
-		this.dtpProfileManager.removeProfileListener(this.profileListener);
-		this.profileListener = null;
-		this.dtpProfileManager = null;
-	}
-
-
-	// ********** connection profiles **********
-
-	public synchronized ConnectionProfile buildConnectionProfile(String name, DatabaseIdentifierAdapter adapter) {
-		for (IConnectionProfile dtpProfile : this.dtpProfileManager.getProfiles()) {
-			if (dtpProfile.getName().equals(name)) {
-				return new DTPConnectionProfileWrapper(dtpProfile, adapter);
-			}
-		}
-		return null;
-	}
-
-	public ConnectionProfile buildConnectionProfile(String name) {
-		return this.buildConnectionProfile(name, DatabaseIdentifierAdapter.Default.instance());
-	}
-
-	public Iterable<String> getConnectionProfileNames() {
-		return new TransformationIterable<IConnectionProfile, String>(this.getDTPConnectionProfiles()) {
-			@Override
-			protected String transform(IConnectionProfile dtpProfile) {
-				 return dtpProfile.getName();
-			}
-		};
-	}
-
-	private synchronized Iterable<IConnectionProfile> getDTPConnectionProfiles() {
-		return new ArrayIterable<IConnectionProfile>(this.dtpProfileManager.getProfiles());
-	}
-
-
-	// ********** listeners **********
-
-	public void addConnectionProfileListener(ConnectionProfileListener listener) {
-		this.profileListener.addConnectionProfileListener(listener);
-	}
-
-	public void removeConnectionProfileListener(ConnectionProfileListener listener) {
-		this.profileListener.removeConnectionProfileListener(listener);
-	}
-
-
-	// ********** listener **********
-
-	/**
-	 * Forward events to the factory's listeners.
-	 */
-	private static class LocalProfileListener implements IProfileListener1 {
-		private ListenerList<ConnectionProfileListener> listenerList = new ListenerList<ConnectionProfileListener>(ConnectionProfileListener.class);
-
-		LocalProfileListener() {
-			super();
-		}
-
-		void addConnectionProfileListener(ConnectionProfileListener listener) {
-			this.listenerList.add(listener);
-		}
-
-		void removeConnectionProfileListener(ConnectionProfileListener listener) {
-			this.listenerList.remove(listener);
-		}
-
-		// ********** IProfileListener implementation **********
-
-		public void profileAdded(IConnectionProfile dtpProfile) {
-			String name = dtpProfile.getName();
-			for (ConnectionProfileListener listener : this.listenerList.getListeners()) {
-				listener.connectionProfileAdded(name);
-			}
-		}
-
-		public void profileChanged(IConnectionProfile dtpProfile, String oldName, String oldDescription, Boolean oldAutoConnect) {
-			String newName = dtpProfile.getName();
-			if ( ! newName.equals(oldName)) {
-				for (ConnectionProfileListener listener : this.listenerList.getListeners()) {
-					listener.connectionProfileRenamed(oldName, newName);
-				}
-			}
-		}
-
-		public void profileChanged(IConnectionProfile dtpProfile) {
-			// this method shouldn't be called on IProfileListener1
-			throw new UnsupportedOperationException();
-		}
-
-		public void profileDeleted(IConnectionProfile dtpProfile) {
-			String name = dtpProfile.getName();
-			for (ConnectionProfileListener listener : this.listenerList.getListeners()) {
-				listener.connectionProfileRemoved(name);
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileWrapper.java
deleted file mode 100644
index 52f84c5..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileWrapper.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.datatools.connectivity.ConnectEvent;
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IManagedConnection;
-import org.eclipse.datatools.connectivity.IManagedConnectionOfflineListener;
-import org.eclipse.datatools.connectivity.drivers.DriverManager;
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo;
-import org.eclipse.datatools.sqltools.core.DatabaseIdentifier;
-import org.eclipse.datatools.sqltools.core.profile.ProfileUtil;
-import org.eclipse.jpt.common.utility.internal.ListenerList;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.jpa.db.ConnectionListener;
-import org.eclipse.jpt.jpa.db.ConnectionProfile;
-import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter;
-
-/**
- *  Wrap a DTP ConnectionProfile
- */
-final class DTPConnectionProfileWrapper
-	implements DTPDatabaseObject, ConnectionProfile
-{
-	/** the wrapped DTP connection profile */
-	private final IConnectionProfile dtpConnectionProfile;
-
-	/** adapter supplied by the client (determines identifier delimiters, etc.) */
-	private final DatabaseIdentifierAdapter identifierAdapter;
-
-	/** callback passed to the identifier adapter */
-	private final DatabaseIdentifierAdapter.DefaultCallback identifierAdapterCallback;
-
-	/** the DTP managed connection we listen to */
-	private final IManagedConnection dtpManagedConnection;
-
-	/**
-	 * forward events from the DTP managed connection above;
-	 * we listen and propagate events iff we have listeners ourselves
-	 */
-	private final LocalConnectionListener connectionListener;
-
-	/** lazy-initialized, and deleted at disconnect */
-	private DTPDatabaseWrapper database;
-
-
-	// ********** constants **********
-
-	private static final String LIVE_DTP_CONNECTION_TYPE = "java.sql.Connection";  //$NON-NLS-1$
-
-	private static final String OFFLINE_DTP_CONNECTION_TYPE = ConnectionInfo.class.getName();
-
-	private static final String DATABASE_PRODUCT_PROP_ID = "org.eclipse.datatools.connectivity.server.version";  //$NON-NLS-1$
-
-
-	// ********** constructor **********
-
-	DTPConnectionProfileWrapper(IConnectionProfile dtpConnectionProfile, DatabaseIdentifierAdapter adapter) {
-		super();
-		this.dtpConnectionProfile = dtpConnectionProfile;
-		this.identifierAdapter = adapter;
-		this.identifierAdapterCallback = new IdentifierAdapterCallback();
-		this.dtpManagedConnection = this.buildDTPManagedConnection();
-		this.connectionListener = new LocalConnectionListener();
-		// don't listen to the managed connection yet
-	}
-
-	private IManagedConnection buildDTPManagedConnection() {
-		String connectionType = this.dtpConnectionProfile.supportsWorkOfflineMode() ?
-				OFFLINE_DTP_CONNECTION_TYPE : LIVE_DTP_CONNECTION_TYPE;
-		return this.dtpConnectionProfile.getManagedConnection(connectionType);
-	}
-
-
-	// ********** DatabaseObject implementation **********
-
-	public String getName() {
-		return this.dtpConnectionProfile.getName();
-	}
-
-	public String getIdentifier(String javaIdentifier) {
-		// connection profiles do not have "identifiers"
-		throw new UnsupportedOperationException();
-	}
-
-	public String getIdentifier() {
-		// connection profiles do not have "identifiers"
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** DTPDatabaseObject implementation **********
-
-	public DTPConnectionProfileWrapper getConnectionProfile() {
-		return this;
-	}
-
-	public synchronized DTPDatabaseWrapper getDatabase() {
-		if (this.database == null) {
-			this.database = this.buildDatabase();
-		}
-		return this.database;
-	}
-
-
-	// ********** ConnectionProfile implementation **********
-
-	// ***** properties
-	public String getProviderID() {
-		return this.dtpConnectionProfile.getProviderId();
-	}
-
-	public String getInstanceID() {
-		return this.dtpConnectionProfile.getInstanceID();
-	}
-
-	public String getDatabaseName() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID);
-	}
-
-	public String getDatabaseProduct() {
-		return this.getProperty(DATABASE_PRODUCT_PROP_ID);
-	}
-
-	public String getDatabaseVendor() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID);
-	}
-
-	public String getDatabaseVersion() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID);
-	}
-
-	public String getDriverClassName() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID);
-	}
-
-	public String getURL() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID);
-	}
-
-	/**
-	 * Returns the user name.
-	 * Allows user name composed by more than one word.
-	 * If the user name contains a keyword, it returns the first word only.
-	 */
-	public String getUserName() {
-		String userName = this.getProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID);
-		userName = userName.trim(); 
-		String[] names =  userName.split("\\s+");	//$NON-NLS-1$
-		if(names.length == 3) { // 208946 handle username like "sys as sysdba" on Oracle
-		    if(this.nameIsKeyword(names[1])) {
-		    	return names[0];
-		    }
-		}
-		return userName;
-	}
-
-	public String getUserPassword() {
-		return this.getProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID);
-	}
-
-	public String getDriverDefinitionID() {
-		return this.getProperty(DRIVER_DEFINITION_PROP_ID);
-	}
-
-	public String getDriverJarList() {
-		return DriverManager.getInstance().getDriverInstanceByID(this.getDriverDefinitionID()).getJarList();
-	}
-
-	public String getDriverName() {
-		return DriverManager.getInstance().getDriverInstanceByID(this.getDriverDefinitionID()).getName();
-	}
-
-	// ***** connection
-	public boolean isActive() {
-		return this.isConnected() || this.isWorkingOffline();
-	}
-
-	public boolean isInactive() {
-		return ! this.isActive();
-	}
-
-	public boolean isConnected() {
-		return this.dtpManagedConnection.isConnected()
-				&& ! this.dtpManagedConnection.isWorkingOffline();
-	}
-
-	public boolean isDisconnected() {
-		return ! this.isConnected();
-	}
-
-	public void connect() {
-		if (this.isDisconnected()) {
-			this.checkStatus(this.dtpConnectionProfile.connect());
-		}
-	}
-	
-	public void disconnect() {
-		this.checkStatus(this.dtpConnectionProfile.disconnect());
-	}
-
-	// ***** off-line support
-	public boolean isWorkingOffline() {
-		return this.dtpManagedConnection.isWorkingOffline();
-	}
-
-	public boolean supportsWorkOfflineMode() {
-		return this.dtpConnectionProfile.supportsWorkOfflineMode();
-	}
-
-	public IStatus saveWorkOfflineData() {
-		return this.dtpConnectionProfile.saveWorkOfflineData();
-	}
-	
-	public boolean canWorkOffline() {
-		return this.dtpConnectionProfile.canWorkOffline();
-	}
-
-	public IStatus workOffline() {
-		return this.dtpConnectionProfile.workOffline();
-	}
-	
-	// ***** listeners
-	public synchronized void addConnectionListener(ConnectionListener listener) {
-		if (this.hasNoListeners()) {  // first listener added
-			this.startListening();
-		}
-		this.connectionListener.addConnectionListener(listener);
-	}
-
-	private void startListening() {
-		this.dtpManagedConnection.addConnectionListener(this.connectionListener);
-		if (this.database != null) {  // don't trigger database creation
-			if (this.isConnected()) {  // DTP does not change when off-line
-				this.database.startListening();
-			}
-		}
-	}
-
-	public synchronized void removeConnectionListener(ConnectionListener listener) {
-		this.connectionListener.removeConnectionListener(listener);
-		if (this.hasNoListeners()) {  // last listener removed
-			this.stopListening();
-		}
-	}
-
-	private void stopListening() {
-		if (this.database != null) {  // don't trigger database creation
-			if (this.isConnected()) {  // DTP does not change when off-line
-				this.database.stopListening();
-			}
-		}
-		this.dtpManagedConnection.removeConnectionListener(this.connectionListener);
-	}
-
-	boolean hasNoListeners() {
-		return this.connectionListener.hasNoListeners();
-	}
-
-	boolean hasAnyListeners() {
-		return this.connectionListener.hasAnyListeners();
-	}
-
-
-	// ********** internal methods **********
-
-	private void checkStatus(IStatus status) {
-		if (status.isOK()) {
-			return;
-		}
-		if (status.isMultiStatus()) {
-			for (IStatus child : status.getChildren()) {
-				this.checkStatus(child);  // recurse, looking for the first error
-			}
-		}
-		throw new RuntimeException(status.getMessage(), status.getException());
-	}
-
-	private DTPDatabaseWrapper buildDatabase() {
-		if (this.isInactive()) {
-			return null;
-		}
-
-		if (this.isWorkingOffline()) {
-			ConnectionInfo connectionInfo = (ConnectionInfo) this.dtpManagedConnection.getConnection().getRawConnection();
-			return new DTPDatabaseWrapper(this, connectionInfo.getSharedDatabase());
-		}
-
-		// TODO see DTP bug 202306
-		// pass connect=true in to ProfileUtil.getDatabase()
-		// there is a bug mentioned in a comment: 
-		//     "during the profile connected event notification, 
-		//     IManagedConnection is connected while IConnectionProfile is not"
-		// so, some hackery here to handle hackery there
-		return new DTPDatabaseWrapper(this, ProfileUtil.getDatabase(new DatabaseIdentifier(this.getName(), this.getDatabaseName()), true));
-	}
-
-	synchronized void clearDatabase() {
-		if (this.database != null) {
-			if (this.isConnected()) {  // DTP does not change when off-line
-				this.database.stopListening();
-			}
-			this.database = null;
-		}
-	}
-
-	/**
-	 * This is called whenever we need to convert an identifier to a name
-	 * (e.g. {@link org.eclipse.jpt.jpa.db.Table#getColumnForIdentifier(String)}).
-	 * We channel all the calls to here and then we delegate to the
-	 * client-supplied "database identifier adapter".
-	 */
-	String convertIdentifierToName(String identifier) {
-		return this.identifierAdapter.convertIdentifierToName(identifier, this.identifierAdapterCallback);
-	}
-
-	/**
-	 * The default "database identifier adapter" calls back to here so we can delegate to
-	 * the database, which contains all the information necessary to properly
-	 * convert identifiers.
-	 */
-	String convertIdentifierToName_(String identifier) {
-		// the database should not be null here - call its internal method
-		return this.database.convertIdentifierToName_(identifier);
-	}
-
-	/**
-	 * This is called whenever we need to convert a name to an identifier
-	 * (e.g. {@link org.eclipse.jpt.jpa.db.Table#getColumnForIdentifier(String)}).
-	 * We channel all the calls to here and then we delegate to the
-	 * client-supplied "database identifier adapter".
-	 */
-	String convertNameToIdentifier(String name) {
-		return this.identifierAdapter.convertNameToIdentifier(name, this.identifierAdapterCallback);
-	}
-
-	/**
-	 * The default "database identifier adapter" calls back to here so we can delegate to
-	 * the database, which contains all the information necessary to properly
-	 * convert names.
-	 */
-	String convertNameToIdentifier_(String name) {
-		// the database should not be null here - call its internal method
-		return this.database.convertNameToIdentifier_(name);
-	}
-
-	void databaseChanged(DTPDatabaseWrapper db) {
-		this.connectionListener.databaseChanged(db);
-	}
-
-	void catalogChanged(DTPCatalogWrapper catalog) {
-		this.connectionListener.catalogChanged(catalog);
-	}
-
-	void schemaChanged(DTPSchemaWrapper schema) {
-		this.connectionListener.schemaChanged(schema);
-	}
-
-	void sequenceChanged(DTPSequenceWrapper sequence) {
-		this.connectionListener.sequenceChanged(sequence);
-	}
-
-	void tableChanged(DTPTableWrapper table) {
-		this.connectionListener.tableChanged(table);
-	}
-
-	void columnChanged(DTPColumnWrapper column) {
-		this.connectionListener.columnChanged(column);
-	}
-
-	void foreignKeyChanged(DTPForeignKeyWrapper foreignKey) {
-		this.connectionListener.foreignKeyChanged(foreignKey);
-	}
-
-	private String getProperty(String propertyName) {
-		return this.dtpConnectionProfile.getBaseProperties().getProperty(propertyName);
-	}
-
-	private boolean nameIsKeyword(String name) {
-		return name.equalsIgnoreCase("as");  //$NON-NLS-1$
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getName());
-	}
-
-
-	// ********** DTP connection listener **********
-
-	/**
-	 * This listener translates and forwards {@link org.eclipse.datatools.connectivity.IManagedConnectionListener} and
-	 * {@link IManagedConnectionOfflineListener} events to {@link ConnectionListener}s.
-	 */
-	class LocalConnectionListener implements IManagedConnectionOfflineListener {
-		private ListenerList<ConnectionListener> listenerList = new ListenerList<ConnectionListener>(ConnectionListener.class);
-
-		LocalConnectionListener() {
-			super();
-		}
-
-		void addConnectionListener(ConnectionListener listener) {
-			this.listenerList.add(listener);
-		}
-
-		void removeConnectionListener(ConnectionListener listener) {
-			this.listenerList.remove(listener);
-		}
-
-		boolean hasNoListeners() {
-			return this.listenerList.isEmpty();
-		}
-
-		boolean hasAnyListeners() {
-			return ! this.listenerList.isEmpty();
-		}
-
-
-		// ********** IManagedConnectionListener implementation **********
-
-		// off-line or inactive => live
-		public void opened(ConnectEvent event) {
-			// do not build the database here - it is built on-demand
-			// forward event to listeners
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.opened(DTPConnectionProfileWrapper.this);
-			}
-		}
-
-		/**
-		 * This method is never called from the base DTP code.
-		 * Perhaps DTP extenders call it....
-		 * @see ManagedConnection#fireModifiedEvent(Object)
-		 *     which is never called...
-		 */
-		public void modified(ConnectEvent event) {
-			// forward event to listeners
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.modified(DTPConnectionProfileWrapper.this);
-			}
-		}
-
-		public boolean okToClose(ConnectEvent event) {
-			// forward event to listeners
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				if ( ! listener.okToClose(DTPConnectionProfileWrapper.this)) {
-					return false;
-				}
-			}
-			return true;
-		}
-
-		public void aboutToClose(ConnectEvent event) {
-			// forward event to listeners
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.aboutToClose(DTPConnectionProfileWrapper.this);
-			}
-		}
-
-		// live or off-line => inactive
-		public void closed(ConnectEvent event) {
-			// clear the database
-			DTPConnectionProfileWrapper.this.clearDatabase();
-			// forward event to listeners
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.closed(DTPConnectionProfileWrapper.this);
-			}
-		}
-
-
-		// ********** IManagedConnectionOfflineListener implementation **********
-
-		// live => off-line
-		public boolean okToDetach(ConnectEvent event) {
-			// convert the event to an "ok to close" event;
-			// we are "closing" the live connection
-			return this.okToClose(event);
-		}
-		
-		// live => off-line
-		public void aboutToDetach(ConnectEvent event) {
-			// convert the event to a "close" event;
-			// we are "closing" the live connection
-			this.closed(event);
-		}
-
-		// inactive or live => off-line
-		public void workingOffline(ConnectEvent event) {
-			// convert the event to an "open" event;
-			// we are "opening" the off-line connection
-			this.opened(event);
-		}
-
-		// off-line => live
-		public void aboutToAttach(ConnectEvent event) {
-			// convert the event to an "close" event;
-			// we are "closing" the off-line connection
-			this.closed(event);
-		}
-
-
-		// ********** internal methods **********
-
-		void databaseChanged(DTPDatabaseWrapper db) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.databaseChanged(DTPConnectionProfileWrapper.this, db);
-			}
-		}
-
-		void catalogChanged(DTPCatalogWrapper catalog) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.catalogChanged(DTPConnectionProfileWrapper.this, catalog);
-			}
-		}
-
-		void schemaChanged(DTPSchemaWrapper schema) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.schemaChanged(DTPConnectionProfileWrapper.this, schema);
-			}
-		}
-
-		void sequenceChanged(DTPSequenceWrapper sequence) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.sequenceChanged(DTPConnectionProfileWrapper.this, sequence);
-			}
-		}
-
-		void tableChanged(DTPTableWrapper table) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.tableChanged(DTPConnectionProfileWrapper.this, table);
-			}
-		}
-
-		void columnChanged(DTPColumnWrapper column) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.columnChanged(DTPConnectionProfileWrapper.this, column);
-			}
-		}
-
-		void foreignKeyChanged(DTPForeignKeyWrapper foreignKey) {
-			for (ConnectionListener listener : this.listenerList.getListeners()) {
-				listener.foreignKeyChanged(DTPConnectionProfileWrapper.this, foreignKey);
-			}
-		}
-
-	}
-
-
-	// ********** default DatabaseFinder **********
-
-	class IdentifierAdapterCallback implements DatabaseIdentifierAdapter.DefaultCallback {
-		public String convertIdentifierToName(String identifier) {
-			// call back to the internal method
-			return DTPConnectionProfileWrapper.this.convertIdentifierToName_(identifier);
-		}
-		public String convertNameToIdentifier(String name) {
-			// call back to the internal method
-			return DTPConnectionProfileWrapper.this.convertNameToIdentifier_(name);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObject.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObject.java
deleted file mode 100644
index a9e22e8..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObject.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-
-/**
- * DTP database object
- */
-public interface DTPDatabaseObject extends DatabaseObject {
-
-	/**
-	 * covariant override
-	 */
-	DTPConnectionProfileWrapper getConnectionProfile();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObjectWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObjectWrapper.java
deleted file mode 100644
index fc7992e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObjectWrapper.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-
-/**
- *  DTP Catalog Object Wrapper base class
- */
-abstract class DTPDatabaseObjectWrapper
-	implements DTPDatabaseObject
-{
-	/** we need a way to get to the connection profile */
-	private final DTPDatabaseObject parent;
-
-	/** listen for the "catalog object" being refreshed */
-	private final ICatalogObjectListener catalogObjectListener;
-
-	/** listen for this DTP catalog object to refresh */
-	final ICatalogObject catalogObject;
-
-
-	// ********** construction/initialization **********
-
-	DTPDatabaseObjectWrapper(DTPDatabaseObject parent, Object dtpObject) {
-		super();
-		this.parent = parent;
-		if (this.getConnectionProfile().isConnected()) {
-			// we only listen to "live" connections (as opposed to "off-line" connections);
-			// and the model is rebuilt when the connection connects or disconnects
-			this.catalogObject = (ICatalogObject) dtpObject;
-			this.catalogObjectListener = this.buildCatalogObjectListener();
-			if (this.getConnectionProfile().hasAnyListeners()) {
-				this.startListening();
-			}
-		} else {
-			this.catalogObject = null;
-			this.catalogObjectListener = null;
-		}
-	}
-
-	private ICatalogObjectListener buildCatalogObjectListener() {
-		return new ICatalogObjectListener() {
-			public void notifyChanged(ICatalogObject dmElement, int eventType) {
-				if (dmElement == DTPDatabaseObjectWrapper.this.catalogObject) {
-					// 'eventType' doesn't seem to be very useful, so drop it
-					DTPDatabaseObjectWrapper.this.catalogObjectChanged();
-				}
-			}
-		};
-	}
-
-	// typically, notify the connection profile something has changed
-	void catalogObjectChanged() {
-		this.clear();
-	}
-
-	/**
-	 * The DTP object has changed, clear the wrapper's state so it will be
-	 * synchronized on-demand.
-	 */
-	abstract void clear();
-
-
-
-	// ********** queries **********
-
-	DTPDatabaseObject getParent() {
-		return this.parent;
-	}
-
-	public DTPConnectionProfileWrapper getConnectionProfile() {
-		return this.parent.getConnectionProfile();
-	}
-
-	public DTPDatabaseWrapper getDatabase() {
-		return this.getConnectionProfile().getDatabase();
-	}
-
-	/**
-	 * Return the database object identified by the specified identifier. If
-	 * the identifier is "delimited" (typically with double-quotes), it will be
-	 * used without any folding. If the name is "regular" (i.e. not delimited),
-	 * it will be folded to the appropriate case (typically uppercase).
-	 * This is called by whenever we need to find a component by identifier
-	 * (e.g. {{@link org.eclipse.jpt.jpa.db.Table#getColumnForIdentifier(String)}).
-	 */
-	<T extends DatabaseObject> T selectDatabaseObjectForIdentifier(Iterable<T> databaseObjects, String identifier) {
-		return this.selectDatabaseObjectNamed(databaseObjects, this.convertIdentifierToName(identifier));
-	}
-
-	private String convertIdentifierToName(String identifier) {
-		return this.getConnectionProfile().convertIdentifierToName(identifier);
-	}
-
-	/**
-	 * Convenience method.
-	 */
-	<T extends DatabaseObject> T selectDatabaseObjectNamed(Iterable<T> databaseObjects, String name) {
-		for (T dbObject : databaseObjects) {
-			if (dbObject.getName().equals(name)) {
-				return dbObject;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Examples:<ul>
-	 * <li>Oracle etc.<ul><code>
-	 *     <li>Table(FOO) vs. "Foo" => null
-	 *     <li>Table(BAR) vs. "Foo" => "BAR"
-	 *     <li>Table(Foo) vs. "Foo" => "\"Foo\""
-	 *     <li>Table(Bar) vs. "Foo" => "\"Bar\""
-	 * </code></ul>
-	 * <li>PostgreSQL etc.<ul><code>
-	 *     <li>Table(foo) vs. "Foo" => null
-	 *     <li>Table(bar) vs. "Foo" => "bar"
-	 *     <li>Table(Foo) vs. "Foo" => "\"Foo\""
-	 *     <li>Table(Bar) vs. "Foo" => "\"Bar\""
-	 * </code></ul>
-	 * <li>SQL Server etc.<ul><code>
-	 *     <li>Table(Foo) vs. "Foo" => null
-	 *     <li>Table(foo) vs. "Foo" => "foo"
-	 *     <li>Table(bar) vs. "Foo" => "bar"
-	 *     <li>Table(Bar) vs. "Foo" => "Bar"
-	 * </code></ul>
-	 * </ul>
-	 */
-	public String getIdentifier(String defaultName) {
-		return this.getDatabase().convertNameToIdentifier(this.getName(), defaultName);
-	}
-
-	/**
-	 * Examples:<ul>
-	 * <li>Oracle etc.<ul><code>
-	 *     <li>Table(FOO) => "FOO"
-	 *     <li>Table(Foo) => "\"Foo\""
-	 *     <li>Table(foo) => "\"foo\""
-	 *     <li>Table(foo++) => "\"foo++\""
-	 *     <li>Table(f"o) => "\"f\"\"o\"" (i.e. "f""o")
-	 * </code></ul>
-	 * <li>PostgreSQL etc.<ul><code>
-	 *     <li>Table(FOO) => "\"FOO\""
-	 *     <li>Table(Foo) => "\"Foo\""
-	 *     <li>Table(foo) => "foo"
-	 *     <li>Table(foo++) => "\"foo++\""
-	 *     <li>Table(f"o) => "\"f\"\"o\"" (i.e. "f""o")
-	 * </code></ul>
-	 * <li>SQL Server etc.<ul><code>
-	 *     <li>Table(FOO) => "FOO"
-	 *     <li>Table(Foo) => "Foo"
-	 *     <li>Table(foo) => "foo"
-	 *     <li>Table(foo++) => "\"foo++\""
-	 *     <li>Table(f"o) => "\"f\"\"o\"" (i.e. "f""o")
-	 * </code></ul>
-	 * </ul>
-	 */
-	public String getIdentifier() {
-		return this.convertNameToIdentifier(this.getName());
-	}
-
-	String convertNameToIdentifier(String name) {
-		return this.getConnectionProfile().convertNameToIdentifier(name);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getName());
-	}
-
-
-	// ********** listening to DTP database object **********
-
-	// this should only be called when the connection profile is "live" and has listeners
-	void startListening() {
-		this.checkListener();
-		RefreshManager.getInstance().AddListener(this.catalogObject, this.catalogObjectListener);
-	}
-
-	// this should only be called when the connection profile is "live" and has no listeners
-	void stopListening() {
-		this.checkListener();
-        RefreshManager.getInstance().removeListener(this.catalogObject, this.catalogObjectListener);
-	}
-
-	private void checkListener() {
-		if (this.catalogObjectListener == null) {
-			throw new IllegalStateException("the catalog listener is null");  //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseWrapper.java
deleted file mode 100644
index d17e0cd..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseWrapper.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
-import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.Catalog;
-import org.eclipse.jpt.jpa.db.Database;
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-import org.eclipse.jpt.jpa.db.internal.vendor.Vendor;
-import org.eclipse.jpt.jpa.db.internal.vendor.VendorRepository;
-
-/**
- * Wrap a DTP Database.
- * <p>
- * Catalogs vs. Schemata:<br>
- * Typically, if a DTP database does not support "catalogs",
- * o.e.datatools.modelbase.sql.schema.Database#getCatalogs() will return a
- * single catalog without a name (actually, it's an empty string). This catalog
- * will contain all the database's schemata. We try to ignore this catalog and
- * return the schemata from the database directly.
- * <p>
- * Catalog Note 1:<br>
- * As of Jan 2009, the DTP MySQL driver is not consistent with this pattern.
- * A DTP MySQL database has *no* catalogs; it holds a single schema
- * directly, and that schema has the same name as the database. See bug 249013.
- * <p>
- * Catalog Note 2:<br>
- * As of Jan 2009, the PostgreSQL JDBC driver complicates this pattern a bit.
- * Even though PostgreSQL does not support "catalogs", its JDBC driver
- * returns a single catalog that has the same name as the database specified
- * in the JDBC connection URL. The DTP PostgreSQL driver simply replicates this
- * behavior. Unfortunately, this catalog can be unnamed; i.e. its name is an
- * empty string....
- * <p>
- * (Yet Another) Note:<br>
- * We use "name" when dealing with the unmodified name of a database object
- * as supplied by the database itself (i.e. it is not delimited and it is always
- * case-sensitive).
- * We use "identifier" when dealing with a string representation of a database
- * object name (i.e. it may be delimited and, depending on the vendor, it may
- * be case-insensitive).
- */
-final class DTPDatabaseWrapper
-	extends DTPSchemaContainerWrapper
-	implements Database
-{
-	/** the wrapped DTP database */
-	private final org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase;
-
-	/** vendor-specific behavior */
-	private final Vendor vendor;
-
-	/** lazy-initialized, sorted */
-	private DTPCatalogWrapper[] catalogs;
-
-
-	// ********** constructor **********
-
-	DTPDatabaseWrapper(DTPConnectionProfileWrapper connectionProfile, org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase) {
-		super(connectionProfile, dtpDatabase);
-		this.dtpDatabase = dtpDatabase;
-		this.vendor = VendorRepository.instance().getVendor(this.getVendorName());
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	/* TODO
-	 * We might want to listen to the "virtual" catalog; but that's probably
-	 * not necessary since there is no easy way for the user to refresh it
-	 * (i.e. it is not displayed in the DTP UI).
-	 */
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().databaseChanged(this);
-	}
-
-	@Override
-	public DTPDatabaseWrapper getDatabase() {
-		return this;
-	}
-
-
-	// ********** DTPSchemaContainerWrapper implementation **********
-
-	@Override
-	List<org.eclipse.datatools.modelbase.sql.schema.Schema> getDTPSchemata() {
-		return this.vendor.getSchemas(this.dtpDatabase);
-	}
-
-	@Override
-	DTPSchemaWrapper getSchema(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		return this.getSchema_(dtpSchema);
-	}
-
-	DTPSchemaWrapper getSchemaFromCatalogs(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		return this.getCatalog(dtpSchema.getCatalog()).getSchema_(dtpSchema);
-	}
-
-	/**
-	 * this is only called from a schema when the database is the schema
-	 * container, so we know we don't have any catalogs
-	 */
-	@Override
-	DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		return this.getTable_(dtpTable);
-	}
-
-	/**
-	 * this is only called from a catalog, so we know we have catalogs;
-	 * i.e. the search has to descend through catalogs, then to schemata
-	 */
-	DTPTableWrapper getTableFromCatalogs(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		return this.getCatalog(dtpTable.getSchema().getCatalog()).getTable_(dtpTable);
-	}
-
-	/**
-	 * this is only called from a schema when the database is the schema
-	 * container, so we know we don't have any catalogs
-	 */
-	@Override
-	DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.getColumn_(dtpColumn);
-	}
-
-	/**
-	 * this is only called from a catalog, so we know we have catalogs;
-	 * i.e. the search has to descend through catalogs, then to schemata
-	 */
-	DTPColumnWrapper getColumnFromCatalogs(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.getCatalog(dtpColumn.getTable().getSchema().getCatalog()).getColumn_(dtpColumn);
-	}
-
-
-	// ********** DatabaseObject implementation **********
-
-	public String getName() {
-		return this.dtpDatabase.getName();
-	}
-
-
-	// ********** Database implementation **********
-
-	public String getVendorName() {
-		return this.dtpDatabase.getVendor();
-	}
-
-	public String getVersion() {
-		return this.dtpDatabase.getVersion();
-	}
-
-	// override to make method public since it's in the Database interface
-	@Override
-	public <T extends DatabaseObject> T selectDatabaseObjectForIdentifier(Iterable<T> databaseObjects, String identifier) {
-		return super.selectDatabaseObjectForIdentifier(databaseObjects, identifier);
-	}
-
-	// ***** catalogs
-
-	public boolean supportsCatalogs() {
-		return this.vendor.supportsCatalogs(this.dtpDatabase);
-	}
-
-	public Iterable<Catalog> getCatalogs() {
-		return new ArrayIterable<Catalog>(this.getCatalogArray());
-	}
-
-	private Iterable<DTPCatalogWrapper> getCatalogWrappers() {
-		return new ArrayIterable<DTPCatalogWrapper>(this.getCatalogArray());
-	}
-
-	private synchronized DTPCatalogWrapper[] getCatalogArray() {
-		if (this.catalogs == null) {
-			this.catalogs = this.buildCatalogArray();
-		}
-		return this.catalogs;
-	}
-
-	private DTPCatalogWrapper[] buildCatalogArray() {
-		List<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.getDTPCatalogs();
-		DTPCatalogWrapper[] result = new DTPCatalogWrapper[dtpCatalogs.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = new DTPCatalogWrapper(this, dtpCatalogs.get(i));
-		}
-		return ArrayTools.sort(result, DEFAULT_COMPARATOR);
-	}
-
-	private List<org.eclipse.datatools.modelbase.sql.schema.Catalog> getDTPCatalogs() {
-		return this.vendor.getCatalogs(this.dtpDatabase);
-	}
-
-	public int getCatalogsSize() {
-		return this.getCatalogArray().length;
-	}
-
-	/**
-	 * return the catalog for the specified DTP catalog
-	 */
-	DTPCatalogWrapper getCatalog(org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog) {
-		for (DTPCatalogWrapper catalog : this.getCatalogArray()) {
-			if (catalog.wraps(dtpCatalog)) {
-				return catalog;
-			}
-		}
-		throw new IllegalArgumentException("invalid DTP catalog: " + dtpCatalog);  //$NON-NLS-1$
-	}
-
-	public Iterable<String> getSortedCatalogNames() {
-		// the catalogs are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getCatalogWrappers(), NAME_TRANSFORMER);
-	}
-
-	public DTPCatalogWrapper getCatalogNamed(String name) {
-		return this.selectDatabaseObjectNamed(this.getCatalogWrappers(), name);
-	}
-
-	public Iterable<String> getSortedCatalogIdentifiers() {
-		// the catalogs are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getCatalogWrappers(), IDENTIFIER_TRANSFORMER);
-	}
-
-	public DTPCatalogWrapper getCatalogForIdentifier(String identifier) {
-		return this.selectDatabaseObjectForIdentifier(this.getCatalogWrappers(), identifier);
-	}
-
-	public synchronized DTPCatalogWrapper getDefaultCatalog() {
-		return this.getCatalogForNames(this.getDefaultCatalogNames());
-	}
-
-	private Iterable<String> getDefaultCatalogNames() {
-		return this.vendor.getDefaultCatalogNames(this.dtpDatabase, this.getConnectionProfile().getUserName());
-	}
-
-	/**
-	 * Return the first catalog found.
-	 */
-	private DTPCatalogWrapper getCatalogForNames(Iterable<String> names) {
-		for (String name : names) {
-			DTPCatalogWrapper catalog = this.getCatalogNamed(name);
-			if (catalog != null) {
-				return catalog;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * If we find a default catalog, return its identifier;
-	 * otherwise, return the last name on the list of default names.
-	 * (Some databases have multiple possible default names.)
-	 * Return null if the database does not support catalogs.
-	 */
-	public synchronized String getDefaultCatalogIdentifier() {
-		Iterable<String> names = this.getDefaultCatalogNames();
-		DTPCatalogWrapper catalog = this.getCatalogForNames(names);
-		if (catalog != null) {
-			return catalog.getIdentifier();
-		}
-		Iterator<String> stream = names.iterator();
-		return stream.hasNext() ? this.convertNameToIdentifier(CollectionTools.last(stream)) : null;
-	}
-
-	// ***** schemata
-
-	Iterable<String> getDefaultSchemaNames() {
-		return this.vendor.getDefaultSchemaNames(this.dtpDatabase, this.getConnectionProfile().getUserName());
-	}
-
-
-	// ********** names vs. identifiers **********
-
-	// override to make method public since it's in the Database interface
-	@Override
-	public String convertNameToIdentifier(String name) {
-		return super.convertNameToIdentifier(name);
-	}
-
-	/**
-	 * Delegate to the vendor.
-	 */
-	String convertNameToIdentifier_(String name) {
-		return this.vendor.convertNameToIdentifier(name);
-	}
-
-	/**
-	 * Delegate to the vendor.
-	 */
-	String convertIdentifierToName_(String identifier) {
-		return this.vendor.convertIdentifierToName(identifier);
-	}
-
-	/**
-	 * Convert the specified name to an identifier. Return null if the resulting
-	 * identifier matches the specified default name.
-	 * <p>
-	 * This is used by the old entity generation code to determine whether
-	 * a generated annotation must explicitly identify a database object
-	 * (e.g. a table) or the specified default adequately identifies the
-	 * specified database object (taking into consideration case-sensitivity
-	 * and special characters).
-	 */
-	// TODO add to database identifier adapter? currently not used...
-	String convertNameToIdentifier(String name, String defaultName) {
-		return this.vendor.convertNameToIdentifier(name, defaultName);
-	}
-
-
-	// ********** internal methods **********
-
-	DatabaseDefinition getDTPDefinition() {
-		return RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.dtpDatabase);
-	}
-
-
-	// ********** listening **********
-
-	@Override
-	synchronized void startListening() {
-		if (this.catalogs != null) {
-			this.startCatalogs();
-		}
-		super.startListening();
-	}
-
-	private void startCatalogs() {
-		for (DTPCatalogWrapper catalog : this.catalogs) {
-			catalog.startListening();
-		}
-	}
-
-	@Override
-	synchronized void stopListening() {
-		if (this.catalogs != null) {
-			this.stopCatalogs();
-		}
-		super.stopListening();
-	}
-
-	private void stopCatalogs() {
-		for (DTPCatalogWrapper catalog : this.catalogs) {
-			catalog.stopListening();
-		}
-	}
-
-
-	// ********** clear **********
-
-	@Override
-	synchronized void clear() {
-		if (this.catalogs != null) {
-			this.clearCatalogs();
-		}
-		super.clear();
-	}
-
-	private void clearCatalogs() {
-		this.stopCatalogs();
-		for (DTPCatalogWrapper catalog : this.catalogs) {
-			catalog.clear();
-		}
-		this.catalogs = null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPForeignKeyWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPForeignKeyWrapper.java
deleted file mode 100644
index bdf834f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPForeignKeyWrapper.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-
-/**
- *  Wrap a DTP ForeignKey
- */
-final class DTPForeignKeyWrapper
-	extends DTPDatabaseObjectWrapper
-	implements ForeignKey
-{
-	/** the wrapped DTP foreign key */
-	private final org.eclipse.datatools.modelbase.sql.constraints.ForeignKey dtpForeignKey;
-
-	/** lazy-initialized */
-	private DTPTableWrapper referencedTable;
-
-	/** lazy-initialized */
-	private LocalColumnPair[] columnPairs;
-
-	/** lazy-initialized - but it can be 'null' so we use a flag */
-	private String defaultAttributeName;
-	private boolean defaultAttributeNameCalculated = false;
-
-
-	// ********** constructor **********
-
-	DTPForeignKeyWrapper(DTPTableWrapper baseTable, org.eclipse.datatools.modelbase.sql.constraints.ForeignKey dtpForeignKey) {
-		super(baseTable, dtpForeignKey);
-		this.dtpForeignKey = dtpForeignKey;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().foreignKeyChanged(this);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getName() + ": " + Arrays.asList(this.getColumnPairArray()));  //$NON-NLS-1$
-	}
-
-
-	// ********** ForeignKey implementation **********
-
-	public String getName() {
-		return this.dtpForeignKey.getName();
-	}
-
-	public DTPTableWrapper getBaseTable() {
-		return (DTPTableWrapper) this.getParent();
-	}
-
-	public synchronized DTPTableWrapper getReferencedTable() {
-		if (this.referencedTable == null) {
-			this.referencedTable = this.getBaseTable().getTable(this.dtpForeignKey.getUniqueConstraint().getBaseTable());
-		}
-		return this.referencedTable;
-	}
-
-	public boolean referencesSingleColumnPrimaryKey() {
-		if (this.getColumnPairsSize() != 1) {
-			return false;
-		}
-		if (this.getReferencedTable().getPrimaryKeyColumnsSize() != 1) {
-			return false;
-		}
-		return this.getColumnPair().getReferencedColumn() == this.getReferencedTable().getPrimaryKeyColumn();
-	}
-
-	// ***** column pairs
-
-	public Iterable<ColumnPair> getColumnPairs() {
-		return new ArrayIterable<ColumnPair>(this.getColumnPairArray());
-	}
-
-	public LocalColumnPair getColumnPair() {
-		LocalColumnPair[] pairs = this.getColumnPairArray();
-		if (pairs.length != 1) {
-			throw new IllegalStateException("multiple column pairs: " + pairs.length);  //$NON-NLS-1$
-		}
-		return pairs[0];
-	}
-
-	private Iterable<LocalColumnPair> getLocalColumnPairs() {
-		return new ArrayIterable<LocalColumnPair>(this.getColumnPairArray());
-	}
-
-	private synchronized LocalColumnPair[] getColumnPairArray() {
-		if (this.columnPairs == null) {
-			this.columnPairs = this.buildColumnPairArray();
-		}
-		return this.columnPairs;
-	}
-
-	private LocalColumnPair[] buildColumnPairArray() {
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> baseColumns = this.getDTPBaseColumns();
-		int size = baseColumns.size();
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> refColumns = this.getDTPReferenceColumns();
-		if (refColumns.size() != size) {
-			throw new IllegalStateException(this.getBaseTable().getName() + '.' + this.getName() +
-								" - mismatched sizes: " + size + " vs. " + refColumns.size());  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		LocalColumnPair[] result = new LocalColumnPair[baseColumns.size()];
-		for (int i = baseColumns.size(); i-- > 0; ) {
-			result[i] = new LocalColumnPair(
-								this.getBaseTable().getColumn(baseColumns.get(i)),
-								this.getBaseTable().getColumn(refColumns.get(i))
-						);
-		}
-		return ArrayTools.sort(result, ColumnPair.BASE_COLUMN_COMPARATOR);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> getDTPBaseColumns() {
-		return this.dtpForeignKey.getMembers();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> getDTPReferenceColumns() {
-		return this.dtpForeignKey.getUniqueConstraint().getMembers();
-	}
-
-	public int getColumnPairsSize() {
-		return this.getColumnPairArray().length;
-	}
-
-	public Iterable<Column> getBaseColumns() {
-		return new TransformationIterable<LocalColumnPair, Column>(this.getLocalColumnPairs()) {
-			@Override
-			protected Column transform(LocalColumnPair pair) {
-				return pair.getBaseColumn();
-			}
-		};
-	}
-
-	boolean baseColumnsContains(Column column) {
-		return CollectionTools.contains(this.getBaseColumns(), column);
-	}
-
-	public Iterable<Column> getNonPrimaryKeyBaseColumns() {
-		return new FilteringIterable<Column>(this.getBaseColumns()) {
-			@Override
-			protected boolean accept(Column column) {
-				return ! column.isPartOfPrimaryKey();
-			}
-		};
-	}
-
-	public Iterable<Column> getReferencedColumns() {
-		return new TransformationIterable<LocalColumnPair, Column>(this.getLocalColumnPairs()) {
-			@Override
-			protected Column transform(LocalColumnPair columnPair) {
-				return columnPair.getReferencedColumn();
-			}
-		};
-	}
-
-	// ***** attribute name
-
-	public String getAttributeName() {
-		String defaultName = this.getDefaultAttributeName();
-		return (defaultName != null) ? defaultName : this.getNonDefaultAttributeName();
-	}
-
-	public synchronized String getDefaultAttributeName() {
-		if ( ! this.defaultAttributeNameCalculated) {
-			this.defaultAttributeNameCalculated = true;
-			this.defaultAttributeName = this.buildDefaultAttributeName();
-		}
-		return this.defaultAttributeName;
-	}
-
-	private String buildDefaultAttributeName() {
-		if ( ! this.referencesSingleColumnPrimaryKey()) {
-			return null;
-		}
-		LocalColumnPair columnPair = this.getColumnPair();
-		String baseColName = columnPair.getBaseColumn().getName();
-		String refColName = columnPair.getReferencedColumn().getName();
-		if (baseColName.length() <= (refColName.length() + 1)) {
-			return null;
-		}
-		if ( ! baseColName.endsWith(refColName)) {
-			return null;
-		}
-		int _index = baseColName.length() - refColName.length() - 1;
-		if (baseColName.charAt(_index) != '_') {
-			return null;
-		}
-		return baseColName.substring(0, _index);
-	}
-
-	/**
-	 * If this is a simple (single-column) foreign key, use the name of the
-	 * single base column to build a name. If this is a compound foreign key,
-	 * return the name of the referenced table.
-	 */
-	// TODO if there is only one FK to a given table, use the table's name instead of the column's name?
-	private String getNonDefaultAttributeName() {
-		return (this.getColumnPairsSize() == 1) ?
-						this.getNonDefaultAttributeNameFromBaseColumn() :
-						this.getReferencedTable().getName();
-	}
-
-	/**
-	 * The underscore check is helpful when the referenced column is <em>not</em> the
-	 * primary key of the referenced table (i.e. it has only a <em>unique</em> constraint).
-	 * <pre>
-	 *     ForeignKey(EMP.CUBICLE_ID => CUBICLE.ID) => "CUBICLE"
-	 *     ForeignKey(EMP.CUBICLEID  => CUBICLE.ID) => "CUBICLE"
-	 *     ForeignKey(EMP.CUBICLE_PK => CUBICLE.ID) => "CUBICLE_PK"
-	 * </pre>
-	 */
-	private String getNonDefaultAttributeNameFromBaseColumn() {
-		LocalColumnPair columnPair = this.getColumnPair();
-		String baseColName = columnPair.getBaseColumn().getName();
-		String refColName = columnPair.getReferencedColumn().getName();
-		int len = baseColName.length();
-		int refLen = refColName.length();
-		if ((len > refLen) && baseColName.endsWith(refColName)) {
-			len = len - refLen;
-			if ((len > 1) && baseColName.charAt(len - 1) == '_') {
-				len = len - 1;
-			}
-		}
-		return baseColName.substring(0, len);
-	}
-
-	/**
-	 * Examples:<ul>
-	 * <li>Oracle etc.<ul><code>
-	 *     <li>ForeignKey(FOO_ID => ID) vs. "foo" => null
-	 *     <li>ForeignKey(FOO_ID => FOO_ID) vs. "foo" => "FOO_ID"
-	 *     <li>ForeignKey(FOO => ID) vs. "foo" => "FOO"
-	 *     <li>ForeignKey(Foo_ID => ID) vs. "foo" => "\"Foo_ID\""
-	 * </code></ul>
-	 * <li>PostgreSQL etc.<ul><code>
-	 *     <li>ForeignKey(foo_id => id) vs. "foo" => null
-	 *     <li>ForeignKey(foo_id => foo_id) vs. "foo" => "foo_id"
-	 *     <li>ForeignKey(foo => id) vs. "foo" => "foo"
-	 *     <li>ForeignKey(Foo_ID => ID) vs. "foo" => "\"Foo_ID\""
-	 * </code></ul>
-	 * <li>SQL Server etc.<ul><code>
-	 *     <li>ForeignKey(foo_ID => ID) vs. "foo" => null
-	 *     <li>ForeignKey(FOO_ID => FOO_ID) vs. "foo" => "FOO_ID"
-	 *     <li>ForeignKey(FOO => ID) vs. "foo" => "FOO"
-	 *     <li>ForeignKey(Foo_ID => ID) vs. "foo" => "Foo_ID"
-	 * </code></ul>
-	 * </ul>
-	 */
-	public String getJoinColumnAnnotationIdentifier(String attributeName) {
-		String baseColumnName = this.getColumnPair().getBaseColumn().getName();
-		String defaultBaseColumnName = attributeName + '_' + this.getReferencedTable().getPrimaryKeyColumn().getName();
-		return this.getDatabase().convertNameToIdentifier(baseColumnName, defaultBaseColumnName);
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.constraints.ForeignKey foreignKey) {
-		return this.dtpForeignKey == foreignKey;
-	}
-
-	@Override
-	synchronized void clear() {
-		// the foreign key does not "contain" any other objects,
-		// so we don't need to forward the #clear()
-		this.defaultAttributeNameCalculated = false;
-		this.defaultAttributeName = null;
-		this.columnPairs =  null;
-		this.referencedTable = null;
-	}
-
-
-	// ********** column pair implementation **********
-
-	static class LocalColumnPair implements ColumnPair {
-		private final DTPColumnWrapper baseColumn;
-		private final DTPColumnWrapper referencedColumn;
-
-		LocalColumnPair(DTPColumnWrapper baseColumn, DTPColumnWrapper referencedColumn) {
-			super();
-			if ((baseColumn == null) || (referencedColumn == null)) {
-				throw new NullPointerException();
-			}
-			this.baseColumn = baseColumn;
-			this.referencedColumn = referencedColumn;
-		}
-
-		public DTPColumnWrapper getBaseColumn() {
-			return this.baseColumn;
-		}
-
-		public DTPColumnWrapper getReferencedColumn() {
-			return this.referencedColumn;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.baseColumn.getName() + "=>" + this.referencedColumn.getName());  //$NON-NLS-1$
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaContainerWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaContainerWrapper.java
deleted file mode 100644
index 6e6f9d0..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaContainerWrapper.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.SchemaContainer;
-
-/**
- * Coalesce behavior for a schema container (i.e. database or catalog).
- */
-abstract class DTPSchemaContainerWrapper
-	extends DTPDatabaseObjectWrapper
-	implements SchemaContainer
-{
-	/** lazy-initialized */
-	private DTPSchemaWrapper[] schemata;
-
-
-	// ********** constructor **********
-
-	DTPSchemaContainerWrapper(DTPDatabaseObject parent, Object dtpSchemaContainer) {
-		super(parent, dtpSchemaContainer);
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-	}
-
-
-	// ********** abstract methods **********
-
-	/**
-	 * return the schema container's DTP schemata
-	 */
-	abstract List<org.eclipse.datatools.modelbase.sql.schema.Schema> getDTPSchemata();
-
-	/**
-	 * return the schema for the specified DTP schema
-	 */
-	abstract DTPSchemaWrapper getSchema(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema);
-
-	/**
-	 * assume the schema container (database or catalog) contains
-	 * the specified schema
-	 */
-	DTPSchemaWrapper getSchema_(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		for (DTPSchemaWrapper schema : this.getSchemaArray()) {
-			if (schema.wraps(dtpSchema)) {
-				return schema;
-			}
-		}
-		throw new IllegalArgumentException("invalid DTP schema: " + dtpSchema);  //$NON-NLS-1$
-	}
-
-	/**
-	 * return the table for the specified DTP table;
-	 * this is only called from a schema (to its container)
-	 */
-	abstract DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable);
-
-	/**
-	 * assume the schema container contains the specified table
-	 */
-	DTPTableWrapper getTable_(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		return this.getSchema_(dtpTable.getSchema()).getTable_(dtpTable);
-	}
-
-	/**
-	 * return the column for the specified DTP column;
-	 * this is only called from a schema (to its container)
-	 */
-	abstract DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn);
-
-	/**
-	 * assume the schema container contains the specified column
-	 */
-	DTPColumnWrapper getColumn_(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.getTable_(dtpColumn.getTable()).getColumn_(dtpColumn);
-	}
-
-
-	// ********** schemata **********
-
-	public Iterable<Schema> getSchemata() {
-		return new ArrayIterable<Schema>(this.getSchemaArray());
-	}
-
-	Iterable<DTPSchemaWrapper> getSchemaWrappers() {
-		return new ArrayIterable<DTPSchemaWrapper>(this.getSchemaArray());
-	}
-
-	synchronized DTPSchemaWrapper[] getSchemaArray() {
-		if (this.schemata == null) {
-			this.schemata = this.buildSchemaArray();
-		}
-		return this.schemata;
-	}
-
-	private DTPSchemaWrapper[] buildSchemaArray() {
-		List<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.getDTPSchemata();
-		DTPSchemaWrapper[] result = new DTPSchemaWrapper[dtpSchemata.size()];
-		for (int i = result.length; i-- > 0; ) {
-			result[i] = new DTPSchemaWrapper(this, dtpSchemata.get(i));
-		}
-		return ArrayTools.sort(result, DEFAULT_COMPARATOR);
-	}
-
-	public int getSchemataSize() {
-		return this.getSchemaArray().length;
-	}
-
-	public Iterable<String> getSortedSchemaNames() {
-		// the schemata are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getSchemaWrappers(), NAME_TRANSFORMER);
-	}
-
-	public DTPSchemaWrapper getSchemaNamed(String name) {
-		return this.selectDatabaseObjectNamed(this.getSchemaWrappers(), name);
-	}
-
-	public Iterable<String> getSortedSchemaIdentifiers() {
-		// the schemata are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getSchemaWrappers(), IDENTIFIER_TRANSFORMER);
-	}
-
-	public DTPSchemaWrapper getSchemaForIdentifier(String identifier) {
-		return this.selectDatabaseObjectForIdentifier(this.getSchemaWrappers(), identifier);
-	}
-
-	public DTPSchemaWrapper getDefaultSchema() {
-		return this.getSchemaForNames(this.getDatabase().getDefaultSchemaNames());
-	}
-
-	/**
-	 * Return the first schema found.
-	 */
-	DTPSchemaWrapper getSchemaForNames(Iterable<String> names) {
-		for (String name : names) {
-			DTPSchemaWrapper schema = this.getSchemaNamed(name);
-			if (schema != null) {
-				return schema;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * If we find a default schema, return its identifier;
-	 * otherwise, return the last name on the list of default names.
-	 * (Some containers have multiple possible default names.)
-	 */
-	public synchronized String getDefaultSchemaIdentifier() {
-		Iterable<String> names = this.getDatabase().getDefaultSchemaNames();
-		DTPSchemaWrapper schema = this.getSchemaForNames(names);
-		// assume 'names' is non-empty (!)
-		return (schema != null) ?
-				schema.getIdentifier() :
-				this.convertNameToIdentifier(CollectionTools.last(names));
-	}
-
-
-	// ********** listening **********
-
-	@Override
-	synchronized void startListening() {
-		if (this.schemata != null) {
-			this.startSchemata();
-		}
-		super.startListening();
-	}
-
-	private void startSchemata() {
-		for (DTPSchemaWrapper schema : this.schemata) {
-			schema.startListening();
-		}
-	}
-
-	@Override
-	synchronized void stopListening() {
-		if (this.schemata != null) {
-			this.stopSchemata();
-		}
-		super.stopListening();
-	}
-
-	private void stopSchemata() {
-		for (DTPSchemaWrapper schema : this.schemata) {
-			schema.stopListening();
-		}
-	}
-
-
-	// ********** clear **********
-
-	@Override
-	synchronized void clear() {
-		if (this.schemata != null) {
-			this.clearSchemata();
-		}
-	}
-
-	private void clearSchemata() {
-		this.stopSchemata();
-		for (DTPSchemaWrapper schema : this.schemata) {
-			schema.clear();
-		}
-		this.schemata = null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaWrapper.java
deleted file mode 100644
index 4123483..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaWrapper.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Sequence;
-import org.eclipse.jpt.jpa.db.Table;
-
-/**
- *  Wrap a DTP Schema
- */
-final class DTPSchemaWrapper
-	extends DTPDatabaseObjectWrapper
-	implements Schema
-{
-	/** the wrapped DTP schema */
-	private final org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema;
-
-	/** lazy-initialized */
-	private DTPTableWrapper[] tables;
-
-	/** lazy-initialized */
-	private DTPSequenceWrapper[] sequences;
-
-	
-	// ********** constants **********
-	
-	/** used for adopter product customization */
-	private static final String PERSISTENT_AND_VIEW_TABLES_ONLY = "supportPersistentAndViewTablesOnly"; //$NON-NLS-1$
-
-
-	// ********** constructor **********
-
-	DTPSchemaWrapper(DTPSchemaContainerWrapper container, org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		super(container, dtpSchema);
-		this.dtpSchema = dtpSchema;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().schemaChanged(this);
-	}
-
-
-	// ********** Schema implementation **********
-
-	public String getName() {
-		return this.dtpSchema.getName();
-	}
-
-	public DTPSchemaContainerWrapper getContainer() {
-		return (DTPSchemaContainerWrapper) this.getParent();
-	}
-
-	// ***** tables
-
-	public Iterable<Table> getTables() {
-		return new ArrayIterable<Table>(this.getTableArray());
-	}
-
-	private Iterable<DTPTableWrapper> getTableWrappers() {
-		return new ArrayIterable<DTPTableWrapper>(this.getTableArray());
-	}
-
-	private synchronized DTPTableWrapper[] getTableArray() {
-		if (this.tables == null) {
-			this.tables = this.buildTableArray();
-		}
-		return this.tables;
-	}
-
-	private DTPTableWrapper[] buildTableArray() {
-		List<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables = this.getDTPTables();
-		DTPTableWrapper[] result = new DTPTableWrapper[dtpTables.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = new DTPTableWrapper(this, dtpTables.get(i));
-		}
-		return ArrayTools.sort(result, DEFAULT_COMPARATOR);
-	}
-
-	private List<org.eclipse.datatools.modelbase.sql.tables.Table> getDTPTables() {
-		List<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables = this.getDTPTables_();
-		return this.hack() ? this.hack(dtpTables) : dtpTables;
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Table> getDTPTables_() {
-		return this.dtpSchema.getTables();
-	}
-
-	private boolean hack() {
-		// the product is null during junit testing
-		IProduct product = Platform.getProduct();
-		String hack = (product == null) ? null : product.getProperty(PERSISTENT_AND_VIEW_TABLES_ONLY);
-		return (hack != null) && hack.equals("true"); //$NON-NLS-1$
-	}
-
-	// provides a mechanism for DTP extenders that support synonyms but don't want to have them appear
-	// in Dali to filter out these table types from Dali 
-	private List<org.eclipse.datatools.modelbase.sql.tables.Table> hack(List<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables) {
-		List<org.eclipse.datatools.modelbase.sql.tables.Table> result = new ArrayList<org.eclipse.datatools.modelbase.sql.tables.Table>();
-		for (org.eclipse.datatools.modelbase.sql.tables.Table dtpTable : dtpTables) {
-			if (this.hack(dtpTable)) {
-				result.add(dtpTable);
-			}
-		}
-		return result;
-	}
-
-	private boolean hack(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		return SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(dtpTable.eClass()) ||
-					SQLTablesPackage.eINSTANCE.getViewTable().isSuperTypeOf(dtpTable.eClass());
-	}
-
-	public int getTablesSize() {
-		return this.getTableArray().length;
-	}
-
-	/**
-	 * return the table for the specified DTP table
-	 */
-	DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		// try to short-circuit the search
-		return this.wraps(dtpTable.getSchema()) ?
-						this.getTable_(dtpTable) :
-						this.getContainer().getTable(dtpTable);
-	}
-
-	/**
-	 * assume the schema contains the specified table
-	 */
-	DTPTableWrapper getTable_(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		for (DTPTableWrapper table : this.getTableArray()) {
-			if (table.wraps(dtpTable)) {
-				return table;
-			}
-		}
-		throw new IllegalArgumentException("invalid DTP table: " + dtpTable);  //$NON-NLS-1$
-	}
-
-	public DTPTableWrapper getTableNamed(String name) {
-		return this.selectDatabaseObjectNamed(this.getTableWrappers(), name);
-	}
-
-	public Iterable<String> getSortedTableIdentifiers() {
-		// the tables are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getTableWrappers(), IDENTIFIER_TRANSFORMER);
-	}
-
-	public DTPTableWrapper getTableForIdentifier(String identifier) {
-		return this.selectDatabaseObjectForIdentifier(this.getTableWrappers(), identifier);
-	}
-
-	// ***** sequences
-
-	public Iterable<Sequence> getSequences() {
-		return new ArrayIterable<Sequence>(this.getSequenceArray());
-	}
-
-	private Iterable<DTPSequenceWrapper> getSequenceWrappers() {
-		return new ArrayIterable<DTPSequenceWrapper>(this.getSequenceArray());
-	}
-
-	private synchronized DTPSequenceWrapper[] getSequenceArray() {
-		if (this.sequences == null) {
-			this.sequences = this.buildSequenceArray();
-		}
-		return this.sequences;
-	}
-
-	private DTPSequenceWrapper[] buildSequenceArray() {
-		List<org.eclipse.datatools.modelbase.sql.schema.Sequence> dtpSequences = this.getDTPSequences();
-		DTPSequenceWrapper[] result = new DTPSequenceWrapper[dtpSequences.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = new DTPSequenceWrapper(this, dtpSequences.get(i));
-		}
-		return ArrayTools.sort(result, DEFAULT_COMPARATOR);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.schema.Sequence> getDTPSequences() {
-		return this.dtpSchema.getSequences();
-	}
-
-	public int getSequencesSize() {
-		return this.getSequenceArray().length;
-	}
-
-	public DTPSequenceWrapper getSequenceNamed(String name) {
-		return this.selectDatabaseObjectNamed(this.getSequenceWrappers(), name);
-	}
-
-	public Iterable<String> getSortedSequenceIdentifiers() {
-		// the sequences are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getSequenceWrappers(), IDENTIFIER_TRANSFORMER);
-	}
-
-	public DTPSequenceWrapper getSequenceForIdentifier(String identifier) {
-		return this.selectDatabaseObjectForIdentifier(this.getSequenceWrappers(), identifier);
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.schema.Schema schema) {
-		return this.dtpSchema == schema;
-	}
-
-	/**
-	 * return the column for the specified DTP column
-	 */
-	DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		// try to short-circuit the search
-		return this.wraps(dtpColumn.getTable().getSchema()) ?
-						this.getColumn_(dtpColumn) :
-						this.getContainer().getColumn(dtpColumn);
-	}
-
-	/**
-	 * assume the schema contains the specified column
-	 */
-	DTPColumnWrapper getColumn_(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.getTable_(dtpColumn.getTable()).getColumn_(dtpColumn);
-	}
-
-
-	// ********** listening **********
-
-	@Override
-	synchronized void startListening() {
-		if (this.sequences != null) {
-			this.startSequences();
-		}
-		if (this.tables != null) {
-			this.startTables();
-		}
-		super.startListening();
-	}
-
-	private void startSequences() {
-		for (DTPSequenceWrapper sequence : this.sequences) {
-			sequence.startListening();
-		}
-	}
-
-	private void startTables() {
-		for (DTPTableWrapper table : this.tables) {
-			table.startListening();
-		}
-	}
-
-	@Override
-	synchronized void stopListening() {
-		if (this.sequences != null) {
-			this.stopSequences();
-		}
-		if (this.tables != null) {
-			this.stopTables();
-		}
-		super.stopListening();
-	}
-
-	private void stopSequences() {
-		for (DTPSequenceWrapper sequence : this.sequences) {
-			sequence.stopListening();
-		}
-	}
-
-	private void stopTables() {
-		for (DTPTableWrapper table : this.tables) {
-			table.stopListening();
-		}
-	}
-
-
-	// ********** clear **********
-
-	@Override
-	synchronized void clear() {
-		if (this.sequences != null) {
-			this.clearSequences();
-		}
-		if (this.tables != null) {
-			this.clearTables();
-		}
-	}
-
-	private void clearSequences() {
-		this.stopSequences();
-		for (DTPSequenceWrapper sequence : this.sequences) {
-			sequence.clear();
-		}
-		this.sequences = null;
-	}
-
-	private void clearTables() {
-		this.stopTables();
-		for (DTPTableWrapper table : this.tables) {
-			table.clear();
-		}
-		this.tables = null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSequenceWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSequenceWrapper.java
deleted file mode 100644
index 9385c22..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSequenceWrapper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import org.eclipse.jpt.jpa.db.Sequence;
-
-/**
- *  Wrap a DTP Sequence
- */
-final class DTPSequenceWrapper
-	extends DTPDatabaseObjectWrapper
-	implements Sequence
-{
-	/** the wrapped DTP sequence */
-	private final org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence;
-
-
-	// ********** constructor **********
-
-	DTPSequenceWrapper(DTPSchemaWrapper schema, org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence) {
-		super(schema, dtpSequence);
-		this.dtpSequence = dtpSequence;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().sequenceChanged(this);
-	}
-
-
-	// ********** Sequence implementation **********
-
-	public String getName() {
-		return this.dtpSequence.getName();
-	}
-
-	public DTPSchemaWrapper getSchema() {
-		return (DTPSchemaWrapper) this.getParent();
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.schema.Sequence sequence) {
-		return this.dtpSequence == sequence;
-	}
-
-	@Override
-	void clear() {
-		// no state to clear
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPTableWrapper.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPTableWrapper.java
deleted file mode 100644
index 683c33b..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPTableWrapper.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal;
-
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
-import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.DatabaseObject;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Table;
-
-/**
- *  Wrap a DTP Table
- */
-final class DTPTableWrapper
-	extends DTPDatabaseObjectWrapper
-	implements Table
-{
-	/** the wrapped DTP table */
-	private final org.eclipse.datatools.modelbase.sql.tables.Table dtpTable;
-
-	/** lazy-initialized */
-	private DTPColumnWrapper[] columns;
-
-	/** lazy-initialized */
-	private DTPColumnWrapper[] primaryKeyColumns;
-
-	/** lazy-initialized */
-	private DTPForeignKeyWrapper[] foreignKeys;
-
-
-	private static final DTPColumnWrapper[] EMPTY_COLUMNS = new DTPColumnWrapper[0];
-	private static final DTPForeignKeyWrapper[] EMPTY_FOREIGN_KEYS = new DTPForeignKeyWrapper[0];
-
-
-	// ********** constructor **********
-
-	DTPTableWrapper(DTPSchemaWrapper schema, org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		super(schema, dtpTable);
-		this.dtpTable = dtpTable;
-	}
-
-
-	// ********** DTPWrapper implementation **********
-
-	@Override
-	synchronized void catalogObjectChanged() {
-		super.catalogObjectChanged();
-		this.getConnectionProfile().tableChanged(this);
-	}
-
-
-	// ********** Table implementation **********
-
-	public String getName() {
-		return this.dtpTable.getName();
-	}
-
-	public DTPSchemaWrapper getSchema() {
-		return (DTPSchemaWrapper) this.getParent();
-	}
-
-	// ***** columns
-
-	public Iterable<Column> getColumns() {
-		return new ArrayIterable<Column>(this.getColumnArray());
-	}
-
-	private Iterable<DTPColumnWrapper> getColumnWrappers() {
-		return new ArrayIterable<DTPColumnWrapper>(this.getColumnArray());
-	}
-
-	private synchronized DTPColumnWrapper[] getColumnArray() {
-		if (this.columns == null) {
-			this.columns = this.buildColumnArray();
-		}
-		return this.columns;
-	}
-
-	private DTPColumnWrapper[] buildColumnArray() {
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> dtpColumns = this.getDTPColumns();
-		DTPColumnWrapper[] result = new DTPColumnWrapper[dtpColumns.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = new DTPColumnWrapper(this, dtpColumns.get(i));
-		}
-		return ArrayTools.sort(result, DEFAULT_COMPARATOR);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> getDTPColumns() {
-		return this.dtpTable.getColumns();
-	}
-
-	public int getColumnsSize() {
-		return this.getColumnArray().length;
-	}
-
-	public DTPColumnWrapper getColumnNamed(String name) {
-		return this.selectDatabaseObjectNamed(this.getColumnWrappers(), name);
-	}
-
-	/**
-	 * return the column for the specified DTP column
-	 */
-	DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		// try to short-circuit the search
-		return this.wraps(dtpColumn.getTable()) ?
-						this.getColumn_(dtpColumn) :
-						this.getSchema().getColumn(dtpColumn);
-	}
-
-	/**
-	 * assume the table contains the specified column
-	 */
-	DTPColumnWrapper getColumn_(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		for (DTPColumnWrapper column : this.getColumnArray()) {
-			if (column.wraps(dtpColumn)) {
-				return column;
-			}
-		}
-		throw new IllegalArgumentException("invalid DTP column: " + dtpColumn);  //$NON-NLS-1$
-	}
-
-	public Iterable<String> getSortedColumnIdentifiers() {
-		// the columns are already sorted
-		return new TransformationIterable<DatabaseObject, String>(this.getColumnWrappers(), IDENTIFIER_TRANSFORMER);
-	}
-
-	public DTPColumnWrapper getColumnForIdentifier(String identifier) {
-		return this.selectDatabaseObjectForIdentifier(this.getColumnWrappers(), identifier);
-	}
-
-	// ***** primaryKeyColumns
-
-	public Iterable<Column> getPrimaryKeyColumns() {
-		return new ArrayIterable<Column>(this.getPrimaryKeyColumnArray());
-	}
-
-	public DTPColumnWrapper getPrimaryKeyColumn() {
-		DTPColumnWrapper[] pkColumns = this.getPrimaryKeyColumnArray();
-		if (pkColumns.length != 1) {
-			throw new IllegalStateException("multiple primary key columns: " + pkColumns.length);  //$NON-NLS-1$
-		}
-		return pkColumns[0];
-	}
-
-	private synchronized DTPColumnWrapper[] getPrimaryKeyColumnArray() {
-		if (this.primaryKeyColumns == null) {
-			this.primaryKeyColumns = this.buildPrimaryKeyColumnArray();
-		}
-		return this.primaryKeyColumns;
-	}
-
-	private DTPColumnWrapper[] buildPrimaryKeyColumnArray() {
-		if ( ! (this.dtpTable instanceof BaseTable)) {
-			return EMPTY_COLUMNS;
-		}
-		PrimaryKey pk = ((BaseTable) this.dtpTable).getPrimaryKey();
-		if (pk == null) {
-			// no PK was defined
-			return EMPTY_COLUMNS;
-		}
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> pkColumns = this.getColumns(pk);
-		DTPColumnWrapper[] result = new DTPColumnWrapper[pkColumns.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = this.getColumn(pkColumns.get(i));
-		}
-		return result;
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> getColumns(PrimaryKey pk) {
-		return pk.getMembers();
-	}
-
-	public int getPrimaryKeyColumnsSize() {
-		return this.getPrimaryKeyColumnArray().length;
-	}
-
-	boolean primaryKeyColumnsContains(Column column) {
-		return ArrayTools.contains(this.getPrimaryKeyColumnArray(), column);
-	}
-
-	// ***** foreignKeys
-
-	public Iterable<ForeignKey> getForeignKeys() {
-		return new ArrayIterable<ForeignKey>(this.getForeignKeyArray());
-	}
-
-	private synchronized DTPForeignKeyWrapper[] getForeignKeyArray() {
-		if (this.foreignKeys == null) {
-			this.foreignKeys = this.buildForeignKeyArray();
-		}
-		return this.foreignKeys;
-	}
-
-	private DTPForeignKeyWrapper[] buildForeignKeyArray() {
-		if ( ! (this.dtpTable instanceof BaseTable)) {
-			return EMPTY_FOREIGN_KEYS;
-		}
-		List<org.eclipse.datatools.modelbase.sql.constraints.ForeignKey> dtpForeignKeys = this.getDTPForeignKeys();
-		DTPForeignKeyWrapper[] result = new DTPForeignKeyWrapper[dtpForeignKeys.size()];
-		for (int i = result.length; i-- > 0;) {
-			result[i] = new DTPForeignKeyWrapper(this, dtpForeignKeys.get(i));
-		}
-		return result;
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.constraints.ForeignKey> getDTPForeignKeys() {
-		return ((BaseTable) this.dtpTable).getForeignKeys();
-	}
-
-	public int getForeignKeysSize() {
-		return this.getForeignKeyArray().length;
-	}
-
-	/**
-	 * return whether the specified column is a base column for at least one
-	 * of the the table's foreign keys
-	 */
-	boolean foreignKeyBaseColumnsContains(Column column) {
-		for (DTPForeignKeyWrapper fkWrapper : this.getForeignKeyArray()) {
-			if (fkWrapper.baseColumnsContains(column)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// ***** join table
-
-	public boolean isPossibleJoinTable() {
-		if (this.getForeignKeyArray().length != 2) {
-			return false;  // the table must have exactly 2 foreign keys
-		}
-		for (Column column : this.getColumns()) {
-			if ( ! this.foreignKeyBaseColumnsContains(column)) {
-				return false;  // all the table's columns must belong to one (or both) of the 2 foreign keys
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * If the table name is <code>FOO_BAR</code>
-	 * and it joins tables <code>FOO</code> and <code>BAR</code>,
-	 * return the foreign key to <code>FOO</code>;
-	 * if the table name is <code>BAR_FOO</code>
-	 * and it joins tables <code>FOO</code> and <code>BAR</code>,
-	 * return the foreign key to <code>BAR</code>;
-	 * otherwise simply return the first foreign key in the array.
-	 */
-	public ForeignKey getJoinTableOwningForeignKey() {
-		ForeignKey fk0 = this.getForeignKeyArray()[0];
-		String name0 = fk0.getReferencedTable().getName();
-
-		ForeignKey fk1 = this.getForeignKeyArray()[1];
-		String name1 = fk1.getReferencedTable().getName();
-
-		return this.getName().equals(name1 + '_' + name0) ? fk1 : fk0;
-	}
-
-	public ForeignKey getJoinTableNonOwningForeignKey() {
-		ForeignKey fk0 = this.getForeignKeyArray()[0];
-		ForeignKey fk1 = this.getForeignKeyArray()[1];
-		ForeignKey ofk = this.getJoinTableOwningForeignKey();
-		return (ofk == fk0) ? fk1 : fk0;
-	}
-
-	/**
-	 * Hmmm....
-	 * We might want to go to the platform to allow a vendor-specific
-	 * comparison here;
-	 * but, since all the names are coming directly from the database
-	 * (i.e. there are no conversions to Java identifiers etc.), it seems
-	 * like we can just compare them directly and ignore case-sensitivity
-	 * issues....  ~bjv
-	 */
-	public boolean joinTableNameIsDefault() {
-		return this.getName().equals(this.buildDefaultJoinTableName());
-	}
-
-	private String buildDefaultJoinTableName() {
-		return this.getJoinTableOwningTable().getName()
-					+ '_'
-					+ this.getJoinTableNonOwningTable().getName();
-	}
-
-	private Table getJoinTableOwningTable() {
-		return this.getJoinTableOwningForeignKey().getReferencedTable();
-	}
-
-	private Table getJoinTableNonOwningTable() {
-		return this.getJoinTableNonOwningForeignKey().getReferencedTable();
-	}
-
-
-	// ********** internal methods **********
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.tables.Table table) {
-		return this.dtpTable == table;
-	}
-
-	/**
-	 * return the table for the specified DTP table
-	 */
-	DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table table) {
-		// try to short-circuit the search
-		return this.wraps(table) ? this : this.getSchema().getTable(table);
-	}
-
-
-	// ********** listening **********
-
-	@Override
-	synchronized void startListening() {
-		if (this.foreignKeys != null) {
-			this.startForeignKeys();
-		}
-		if (this.columns != null) {
-			this.startColumns();
-		}
-		super.startListening();
-	}
-
-	private void startForeignKeys() {
-		for (DTPForeignKeyWrapper foreignKey : this.foreignKeys) {
-			foreignKey.startListening();
-		}
-	}
-
-	private void startColumns() {
-		for (DTPColumnWrapper column : this.columns) {
-			column.startListening();
-		}
-	}
-
-	@Override
-	synchronized void stopListening() {
-		if (this.foreignKeys != null) {
-			this.stopForeignKeys();
-		}
-		if (this.columns != null) {
-			this.stopColumns();
-		}
-		super.stopListening();
-	}
-
-	private void stopForeignKeys() {
-		for (DTPForeignKeyWrapper foreignKey : this.foreignKeys) {
-			foreignKey.stopListening();
-		}
-	}
-
-	private void stopColumns() {
-		for (DTPColumnWrapper column : this.columns) {
-			column.stopListening();
-		}
-	}
-
-
-	// ********** clear **********
-
-	@Override
-	synchronized void clear() {
-		if (this.foreignKeys != null) {
-			this.clearForeignKeys();
-		}
-
-		// the table does not "contain" the pk columns, so no need to forward #clear()
-		this.primaryKeyColumns = null;
-
-		if (this.columns != null) {
-			this.clearColumns();
-		}
-	}
-
-	private void clearForeignKeys() {
-		this.stopForeignKeys();
-		for (DTPForeignKeyWrapper foreignKey : this.foreignKeys) {
-			foreignKey.clear();
-		}
-    	this.foreignKeys = null;
-	}
-
-	private void clearColumns() {
-		this.stopColumns();
-		for (DTPColumnWrapper column : this.columns) {
-			column.clear();
-		}
-    	this.columns = null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/AbstractVendor.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/AbstractVendor.java
deleted file mode 100644
index 01eb6fd..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/AbstractVendor.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-import org.eclipse.jpt.common.utility.internal.ArrayTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Consolidate the behavior common to the typical vendors.
- * 
- * @see UnrecognizedVendor
- */
-abstract class AbstractVendor
-	implements Vendor
-{
-	AbstractVendor() {
-		super();
-	}
-
-	public abstract String getDTPVendorName();
-
-
-	// ********** catalog and schema support **********
-
-	abstract CatalogStrategy getCatalogStrategy();
-
-	public boolean supportsCatalogs(Database database) {
-		return this.getCatalogStrategy().supportsCatalogs(database);
-	}
-
-	public List<Catalog> getCatalogs(Database database) {
-		return this.getCatalogStrategy().getCatalogs(database);
-	}
-
-	public List<Schema> getSchemas(Database database) {
-		try {
-			return this.getCatalogStrategy().getSchemas(database);
-		} catch (Exception ex) {
-			throw new RuntimeException("vendor: " + this, ex); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Typically, the name of the default catalog is the user name.
-	 */
-	public final Iterable<String> getDefaultCatalogNames(Database database, String userName) {
-		if ( ! this.supportsCatalogs(database)) {
-			return Collections.emptyList();
-		}
-		ArrayList<String> names = new ArrayList<String>();
-		this.addDefaultCatalogNamesTo(database, userName, names);
-		return names;
-	}
-
-	/**
-	 * See comment at
-	 * {@link #addDefaultSchemaNamesTo(Database, String, ArrayList)}.
-	 */
-	void addDefaultCatalogNamesTo(@SuppressWarnings("unused") Database database, String userName, ArrayList<String> names) {
-		names.add(this.convertIdentifierToName(userName));
-	}
-
-	/**
-	 * Typically, the name of the default schema is the user name.
-	 */
-	public final Iterable<String> getDefaultSchemaNames(Database database, String userName) {
-		ArrayList<String> names = new ArrayList<String>();
-		this.addDefaultSchemaNamesTo(database, userName, names);
-		return names;
-	}
-
-	/**
-	 * The user name passed in here was retrieved from DTP.
-	 * DTP stores the user name that was passed to it during the connection
-	 * to the database. As a result, this user name is an <em>identifier</em>
-	 * not a <em>name</em>.
-	 * If the user name were retrieved from the JDBC connection it would probably
-	 * be a <em>name</em>. For example, you can connect to an Oracle database with the
-	 * user name "scott", but that identifer is folded to the actual user name
-	 * "SCOTT". DTP stores the original string "scott", while the Oracle JDBC
-	 * driver stores the folded string "SCOTT".
-	 */
-	void addDefaultSchemaNamesTo(@SuppressWarnings("unused") Database database, String userName, ArrayList<String> names) {
-		names.add(this.convertIdentifierToName(userName));
-	}
-
-
-	// ********** folding strategy used to convert names and identifiers **********
-
-	/**
-	 * The SQL spec says a <em>regular</em> (non-delimited) identifier should be
-	 * folded to uppercase; but some databases do otherwise (e.g. Sybase).
-	 */
-	abstract FoldingStrategy getFoldingStrategy();
-
-
-	// ********** name -> identifier **********
-
-	public String convertNameToIdentifier(String name, String defaultName) {
-		return this.nameRequiresDelimiters(name) ?
-						this.delimitName(name) :
-						this.regularNamesMatch(name, defaultName) ? null : name;
-	}
-
-	public String convertNameToIdentifier(String name) {
-		return this.nameRequiresDelimiters(name) ? this.delimitName(name) : name;
-	}
-
-	/**
-	 * Return whether the specified database object name must be delimited
-	 * when used in an SQL statement.
-	 * If the name has any "special" characters (as opposed to letters,
-	 * digits, and other allowed characters [e.g. underscores]), it requires
-	 * delimiters.
-	 * If the name is mixed case and the database folds undelimited names
-	 * (to either uppercase or lowercase), it requires delimiters.
-	 */
-	boolean nameRequiresDelimiters(String name) {
-		return (name.length() == 0)  //  an empty string must be delimited(?)
-					|| this.nameContainsAnySpecialCharacters(name)
-					|| this.nameIsNotFolded(name);
-	}
-
-	/**
-	 * Return whether the specified name contains any "special" characters
-	 * that require the name to be delimited.
-	 * Pre-condition: the specified name is not empty
-	 */
-	boolean nameContainsAnySpecialCharacters(String name) {
-		char[] string = name.toCharArray();
-		if (this.characterIsNonRegularNameStart(string[0])) {
-			return true;
-		}
-		for (int i = string.length; i-- > 1; ) {  // note: stop at 1
-			if (this.characterIsNonRegularNamePart(string[i])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified character is "non-regular" for the first
-	 * character of a name.
-	 * Typically, databases are more restrictive about what characters can
-	 * be used to <em>start</em> an identifier (as opposed to the characters
-	 * allowed for the remainder of the identifier).
-	 */
-	boolean characterIsNonRegularNameStart(char c) {
-		return ! this.characterIsRegularNameStart(c);
-	}
-
-	/**
-	 * Return whether the specified character is <em>regular</em> for the first
-	 * character of a name.
-	 * The first character of an identifier can be:<ul>
-	 * <li>a letter
-	 * <li>any of the extended, vendor-specific, <em>regular</em> start characters
-	 * </ul>
-	 */
-	boolean characterIsRegularNameStart(char c) {
-		// all vendors allow a letter
-		return Character.isLetter(c)
-				|| this.characterIsExtendedRegularNameStart(c);
-	}
-
-	boolean characterIsExtendedRegularNameStart(char c) {
-		return arrayContains(this.getExtendedRegularNameStartCharacters(), c);
-	}
-
-	/**
-	 * Return the <em>regular</em> characters, beyond letters, for the
-	 * first character of a name.
-	 * Return null if there are no "extended" characters.
-	 */
-	char[] getExtendedRegularNameStartCharacters() {
-		return null;
-	}
-
-	/**
-	 * Return whether the specified character is "non-regular" for the second
-	 * and subsequent characters of a name.
-	 */
-	boolean characterIsNonRegularNamePart(char c) {
-		return ! this.characterIsRegularNamePart(c);
-	}
-
-	/**
-	 * Return whether the specified character is <em>regular</em> for the second and
-	 * subsequent characters of a name.
-	 * The second and subsequent characters of a <em>regular</em> name can be:<ul>
-	 * <li>a letter
-	 * <li>a digit
-	 * <li>an underscore
-	 * <li>any of the extended, vendor-specific, <em>regular</em> start characters
-	 * <li>any of the extended, vendor-specific, <em>regular</em> part characters
-	 * </ul>
-	 */
-	boolean characterIsRegularNamePart(char c) {
-		// all vendors allow a letter or digit
-		return Character.isLetterOrDigit(c) ||
-				(c == '_') ||
-				this.characterIsExtendedRegularNameStart(c) ||
-				this.characterIsExtendedRegularNamePart(c);
-	}
-
-	boolean characterIsExtendedRegularNamePart(char c) {
-		return arrayContains(this.getExtendedRegularNamePartCharacters(), c);
-	}
-
-	/**
-	 * Return the <em>regular</em> characters, beyond letters and digits and the
-	 * <em>regular</em> first characters, for the second and subsequent characters
-	 * of an identifier. Return <code>null</code> if there are no additional characters.
-	 */
-	char[] getExtendedRegularNamePartCharacters() {
-		return null;
-	}
-
-	/**
-	 * Return whether the specified name is not folded to the database's
-	 * case, requiring it to be delimited.
-	 */
-	boolean nameIsNotFolded(String name) {
-		return ! this.getFoldingStrategy().nameIsFolded(name);
-	}
-
-	/**
-	 * Return whether the specified <em>regular</em> names match.
-	 */
-	boolean regularNamesMatch(String name1, String name2) {
-		return this.regularIdentifiersAreCaseSensitive() ?
-						name1.equals(name2) :
-						name1.equalsIgnoreCase(name2);
-	}
-
-	/**
-	 * Typically, <em>regular</em> identifiers are case-insensitive.
-	 */
-	boolean regularIdentifiersAreCaseSensitive() {
-		return this.getFoldingStrategy().regularIdentifiersAreCaseSensitive();
-	}
-
-	/**
-	 * Wrap the specified name in delimiters (typically double-quotes),
-	 * converting it to an identifier.
-	 */
-	String delimitName(String name) {
-		return StringTools.quote(name);
-	}
-
-
-	// ********** identifier -> name **********
-
-	// not sure how to handle an empty string:
-	// both "" and "\"\"" are converted to "" ...
-	// convert "" to 'null' since empty strings must be delimited?
-	public String convertIdentifierToName(String identifier) {
-		return (identifier == null) ?
-					null :
-					this.identifierIsDelimited(identifier) ?
-							StringTools.undelimit(identifier) :
-							this.getFoldingStrategy().fold(identifier);
-	}
-
-	/**
-	 * Return whether the specified identifier is <em>delimited</em>.
-	 * The SQL-92 spec says identifiers should be delimited by
-	 * double-quotes; but some databases allow otherwise (e.g. Sybase).
-	 */
-	boolean identifierIsDelimited(String identifier) {
-		return StringTools.stringIsQuoted(identifier);
-	}
-
-
-	// ********** misc **********
-
-	@Override
-	public String toString() {
-		return this.getDTPVendorName();
-	}
-
-	/**
-	 * static convenience method - array null check
-	 */
-	static boolean arrayContains(char[] array, char c) {
-		return (array != null) && ArrayTools.contains(array, c);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/CatalogStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/CatalogStrategy.java
deleted file mode 100644
index 5b1ca33..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/CatalogStrategy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Handle the variety of catalog (and schema) configurations generated by DTP.
- */
-interface CatalogStrategy {
-
-	/**
-	 * Return whether the DTP database has real catalogs.
-	 */
-	boolean supportsCatalogs(Database database);
-
-	/**
-	 * Return the specified database's catalogs.
-	 */
-	List<Catalog> getCatalogs(Database database);
-
-	/**
-	 * Return the specified database's schemas.
-	 */
-	List<Schema> getSchemas(Database database);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/DB2.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/DB2.java
deleted file mode 100644
index 03b6821..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/DB2.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-class DB2
-	extends AbstractVendor
-{
-	private final String dtpVendorName;
-
-	private static final Vendor UDB = new DB2("DB2 UDB"); //$NON-NLS-1$
-	private static final Vendor UDB_I_SERIES = new DB2("DB2 UDB iSeries"); //$NON-NLS-1$
-	private static final Vendor UDB_Z_SERIES = new DB2("DB2 UDB zSeries"); //$NON-NLS-1$
-
-	static Vendor udb() {
-		return UDB;
-	}
-
-	static Vendor udbISeries() {
-		return UDB_I_SERIES;
-	}
-
-	static Vendor udbZSeries() {
-		return UDB_Z_SERIES;
-	}
-
-	/**
-	 * Ensure only static instances.
-	 */
-	private DB2(String dtpVendorName) {
-		super();
-		this.dtpVendorName = dtpVendorName;
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return this.dtpVendorName;
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return UnknownCatalogStrategy.instance();  // not verified yet...
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Derby.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Derby.java
deleted file mode 100644
index 34264ae..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Derby.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-
-class Derby
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new Derby();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private Derby() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "Derby"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return FauxCatalogStrategy.instance();
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(this.buildDefaultSchemaName(userName));
-	}
-
-	/**
-	 * The default user name on Derby is "APP" when the user connects without
-	 * a user name.
-	 */
-	private String buildDefaultSchemaName(String userName) {
-		return ((userName != null) && (userName.length() != 0)) ?
-				this.convertIdentifierToName(userName) :
-				DEFAULT_USER_NAME;
-	}
-	private static final String DEFAULT_USER_NAME = "APP";  //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FauxCatalogStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FauxCatalogStrategy.java
deleted file mode 100644
index 0e116e1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FauxCatalogStrategy.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Catalog strategy for DTP databases that build a "virtual" catalog (that has
- * no name) because the underlying JDBC driver does not return any catalogs
- * (e.g. Oracle).
- * @see java.sql.DatabaseMetaData#getCatalogs()
- */
-class FauxCatalogStrategy
-	implements CatalogStrategy
-{
-	// singleton
-	private static final CatalogStrategy INSTANCE = new FauxCatalogStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static CatalogStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private FauxCatalogStrategy() {
-		super();
-	}
-
-	public boolean supportsCatalogs(Database database) {
-		return false;
-	}
-
-	public List<Catalog> getCatalogs(Database database) {
-		return Collections.emptyList();
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Schema> getSchemas(Database database) {
-		// 308947 - hack to support old IBM DTP/RDB extension for Oracle
-		List<Catalog> catalogs = database.getCatalogs();
-		// if there are no catalogs, the database must hold the schemata directly
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return database.getSchemas();
-		}
-
-		// normal logic:
-		return this.getFauxCatalog(database.getCatalogs()).getSchemas();
-	}
-
-	private Catalog getFauxCatalog(List<Catalog> catalogs) {
-		if (catalogs == null) {
-			throw new IllegalStateException();
-		}
-		if (catalogs.size() != 1) {
-			throw new IllegalStateException("not a single catalog: " + catalogs.size()); //$NON-NLS-1$
-		}
-
-		Catalog catalog = catalogs.get(0);
-		if (catalog.getName().length() != 0) {
-			throw new IllegalStateException("illegal name: " + catalog.getName()); //$NON-NLS-1$
-		}
-		return catalog;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FoldingStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FoldingStrategy.java
deleted file mode 100644
index 4ec3e2c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/FoldingStrategy.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-/**
- * Handle database-specific identifier-folding issues.
- */
-interface FoldingStrategy {
-
-	/**
-	 * Fold the specified name.
-	 */
-	String fold(String name);
-
-	/**
-	 * Return whether the specified database object name is already folded,
-	 * meaning, if it has no special characters, it requires no delimiters.
-	 */
-	boolean nameIsFolded(String name);
-
-	/**
-	 * Return whether the database is case-sensitive when using "regular"
-	 * (i.e. non-delimited) identifiers.
-	 */
-	boolean regularIdentifiersAreCaseSensitive();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/HSQLDB.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/HSQLDB.java
deleted file mode 100644
index 49ab2f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/HSQLDB.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-
-class HSQLDB
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new HSQLDB();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private HSQLDB() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "HSQLDB"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return UnknownCatalogStrategy.instance();  // not verified yet...
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(PUBLIC_SCHEMA_NAME);
-	}
-	private static final String PUBLIC_SCHEMA_NAME = "PUBLIC";  //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Informix.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Informix.java
deleted file mode 100644
index 851a6d6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Informix.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-class Informix
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new Informix();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private Informix() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "Informix"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return UnknownCatalogStrategy.instance();  // not verified yet...
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return LowerCaseFoldingStrategy.instance();
-	}
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '_' };
-
-	@Override
-	char[] getExtendedRegularNamePartCharacters() {
-		return EXTENDED_REGULAR_NAME_PART_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_PART_CHARACTERS = new char[] { '$' };
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/LowerCaseFoldingStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/LowerCaseFoldingStrategy.java
deleted file mode 100644
index edb457c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/LowerCaseFoldingStrategy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Fold "normal" identifiers to lower case.
- * Ignore the case of "normal" identifiers.
- */
-class LowerCaseFoldingStrategy
-	implements FoldingStrategy
-{
-
-	// singleton
-	private static final FoldingStrategy INSTANCE = new LowerCaseFoldingStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static FoldingStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private LowerCaseFoldingStrategy() {
-		super();
-	}
-
-	public String fold(String name) {
-		return name.toLowerCase();
-	}
-
-	public boolean nameIsFolded(String name) {
-		return StringTools.stringIsLowercase(name);
-	}
-
-	public boolean regularIdentifiersAreCaseSensitive() {
-		return false;
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MaxDB.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MaxDB.java
deleted file mode 100644
index 74df1f5..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MaxDB.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-class MaxDB
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new MaxDB();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private MaxDB() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "MaxDB"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return UnknownCatalogStrategy.instance();  // not verified yet...
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '#', '@', '$' };
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MySQL.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MySQL.java
deleted file mode 100644
index 9e58e6f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/MySQL.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-class MySQL
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new MySQL();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private MySQL() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "MySql"; //$NON-NLS-1$
-	}
-
-	/**
-	 * The DTP model for MySQL has a database that contains no catalogs;
-	 * but, instead, directly holds a single schema with the same name as
-	 * the database. (This is hard-coded in MySqlCatalogDatabase.getSchemas().)
-	 * Although you can qualify identifiers with a database name
-	 * in MySQL, only the database specified at login seems to be available
-	 * in the DTP model....
-	 * 
-	 * NB: In MySQL DDL, SCHEMA is a synonym for DATABASE; but the JDBC
-	 * method DatabaseMetaData.getSchemas() returns an empty list,
-	 * while getCatalogs() returns a list of the available databases.
-	 * You can also use the JDBC method Connection.setCatalog(String) to
-	 * set the default database.
-	 */
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return NoCatalogStrategy.instance();
-	}
-
-	/**
-	 * MySQL is a bit unusual, so we force exact matches.
-	 * (e.g. MySQL folds database and table names to lowercase on Windows
-	 * by default; but that default can be changed by the
-	 * 'lower_case_table_names' system variable. This is because databases are
-	 * stored as directories and tables are stored as files in the underlying
-	 * O/S; and the case-sensitivity of the names is determined by the behavior
-	 * of filenames on the O/S. Then, to complicate things,
-	 * none of the other identifiers, like index and column names, are folded;
-	 * but they are case-insensitive, unless delimited. See
-	 * http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html.)
-	 */
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return NonFoldingStrategy.instance();
-	}
-
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(database.getName());
-	}
-
-	/**
-	 * MySQL is the only vendor that allows a digit.
-	 * Although, the name cannnot be *all* digits.
-	 */
-	@Override
-	boolean characterIsRegularNameStart(char c) {
-		return Character.isDigit(c) || super.characterIsRegularNameStart(c);
-	}
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '_', '$' };
-
-	/**
-	 * By default, MySQL delimits identifiers with backticks (`); but it
-	 * can also be configured to use double-quotes.
-	 */
-	@Override
-	boolean identifierIsDelimited(String identifier) {
-		return StringTools.stringIsDelimited(identifier, BACKTICK)
-					|| super.identifierIsDelimited(identifier);
-	}
-	private static final char BACKTICK = '`';
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NoCatalogStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NoCatalogStrategy.java
deleted file mode 100644
index f3afa4f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NoCatalogStrategy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Catalog strategy for DTP databases that do not have catalogs
- * (e.g. MySQL see bug 249013).
- */
-class NoCatalogStrategy
-	implements CatalogStrategy
-{
-	// singleton
-	private static final CatalogStrategy INSTANCE = new NoCatalogStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static CatalogStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private NoCatalogStrategy() {
-		super();
-	}
-
-	public boolean supportsCatalogs(Database database) {
-		return false;
-	}
-
-	public List<Catalog> getCatalogs(Database database) {
-		return Collections.emptyList();
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Schema> getSchemas(Database database) {
-		return database.getSchemas();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NonFoldingStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NonFoldingStrategy.java
deleted file mode 100644
index 723adfe..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/NonFoldingStrategy.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-
-/**
- * Do not fold "normal" identifiers.
- * Respect the case of "normal" identifiers.
- */
-class NonFoldingStrategy
-	implements FoldingStrategy
-{
-
-	// singleton
-	private static final FoldingStrategy INSTANCE = new NonFoldingStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static FoldingStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private NonFoldingStrategy() {
-		super();
-	}
-
-	/**
-	 * Since identifiers are not folded to upper- or lower-case, the name is
-	 * already "folded".
-	 */
-	public String fold(String name) {
-		return name;
-	}
-
-	/**
-	 * Since identifiers are not folded to upper- or lower-case, the name is
-	 * already "folded".
-	 * (Non-folding databases do not require delimiters around mixed-case
-	 * "normal" identifiers.)
-	 */
-	public boolean nameIsFolded(String name) {
-		return true;
-	}
-
-	public boolean regularIdentifiersAreCaseSensitive() {
-		return true;
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Oracle.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Oracle.java
deleted file mode 100644
index 1328ae1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Oracle.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-class Oracle
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new Oracle();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private Oracle() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "Oracle"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return FauxCatalogStrategy.instance();
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-	@Override
-	char[] getExtendedRegularNamePartCharacters() {
-		return EXTENDED_REGULAR_NAME_PART_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_PART_CHARACTERS = new char[] { '$', '#' };
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/PostgreSQL.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/PostgreSQL.java
deleted file mode 100644
index 8581bcd..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/PostgreSQL.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-
-class PostgreSQL
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new PostgreSQL();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private PostgreSQL() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "postgres"; //$NON-NLS-1$
-	}
-
-	/**
-	 * The PostgreSQL JDBC driver returns a single catalog from the call to
-	 * DatabaseMetaData.getCatalogs() that has the same name as the
-	 * database initially specified by the connection (in the JDBC URL).
-	 * DTP uses this configuration unmodified. Unfortunately, the DTP
-	 * database's name is not the same as the PostgreSQL database's
-	 * name.
-	 */
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return SimpleCatalogStrategy.instance();
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return LowerCaseFoldingStrategy.instance();
-	}
-
-	/**
-	 * The PostgreSQL database holds a single catalog that has the same name as
-	 * the database.
-	 */
-	@Override
-	void addDefaultCatalogNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(this.buildDefaultCatalogName(database));
-	}
-
-	private String buildDefaultCatalogName(Database database) {
-		return ((Catalog) database.getCatalogs().get(0)).getName();
-	}
-
-	/**
-	 * PostgreSQL has a "schema search path". The default is:
-	 *     "$user",public
-	 * If the "$user" schema is not found, use the "public" schema.
-	 */
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		super.addDefaultSchemaNamesTo(database, userName, names);
-		names.add(PUBLIC_SCHEMA_NAME);
-	}
-	private static final String PUBLIC_SCHEMA_NAME = "public";  //$NON-NLS-1$
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '_' };
-
-	@Override
-	char[] getExtendedRegularNamePartCharacters() {
-		return EXTENDED_REGULAR_NAME_PART_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_PART_CHARACTERS = new char[] { '$' };
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SQLServer.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SQLServer.java
deleted file mode 100644
index 70114ef..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SQLServer.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-class SQLServer
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new SQLServer();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private SQLServer() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "SQL Server"; //$NON-NLS-1$
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return SimpleCatalogStrategy.instance();
-	}
-
-	/**
-	 * By default, SQL Server identifiers are case-sensitive, even without
-	 * delimiters. This can depend on the collation setting....
-	 */
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return NonFoldingStrategy.instance();
-	}
-
-	/**
-	 * SQL Server will use the user-requested database; if that database is not
-	 * found, it will default to 'master'.
-	 */
-	@Override
-	void addDefaultCatalogNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(database.getName());
-		names.add(MASTER_CATALOG_IDENTIFIER);
-	}
-	private static final String MASTER_CATALOG_IDENTIFIER = "master";  //$NON-NLS-1$
-
-	/**
-	 * The default schema on SQL Server for any database (catalog) is 'dbo'.
-	 */
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(DEFAULT_SCHEMA_NAME);
-	}
-	private static final String DEFAULT_SCHEMA_NAME = "dbo";  //$NON-NLS-1$
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '_', '@', '#' };
-
-	@Override
-	char[] getExtendedRegularNamePartCharacters() {
-		return EXTENDED_REGULAR_NAME_PART_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_PART_CHARACTERS = new char[] { '$' };
-
-	/**
-	 * By default, SQL Server delimits identifiers with brackets ([]); but it
-	 * can also be configured to use double-quotes.
-	 */
-	@Override
-	boolean identifierIsDelimited(String identifier) {
-		return StringTools.stringIsBracketed(identifier)
-					|| super.identifierIsDelimited(identifier);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SimpleCatalogStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SimpleCatalogStrategy.java
deleted file mode 100644
index 4bde8b3..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/SimpleCatalogStrategy.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Catalog strategy for DTP databases that simply model the catalogs returned
- * by the underlying JDBC driver (e.g. Sybase).
- * @see java.sql.DatabaseMetaData#getCatalogs()
- */
-class SimpleCatalogStrategy
-	implements CatalogStrategy
-{
-	// singleton
-	private static final CatalogStrategy INSTANCE = new SimpleCatalogStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static CatalogStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private SimpleCatalogStrategy() {
-		super();
-	}
-
-	@SuppressWarnings("unchecked")
-	public boolean supportsCatalogs(Database database) {
-		// Bug 327572 - Unfortunately DTP allows for optional support of catalogs in extensions
-		List<Catalog> catalogs = database.getCatalogs();
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return false;
-		}
-		
-		// normal logic:
-		return true;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Catalog> getCatalogs(Database database) {
-		List<Catalog> catalogs = database.getCatalogs();
-		// Bug 327572 - Unfortunately DTP allows for optional support of catalogs in extensions
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return Collections.emptyList();
-		}
-		
-		// normal logic:
-		return catalogs;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Schema> getSchemas(Database database) {
-		List<Catalog> catalogs = database.getCatalogs();
-		// Bug 327572 - Unfortunately DTP allows for optional support of catalogs in extensions
-		// if there are no catalogs, the database must hold the schemata directly
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return database.getSchemas();
-		}
-		
-		// normal logic:
-		return Collections.emptyList();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Sybase.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Sybase.java
deleted file mode 100644
index f0ee113..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Sybase.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-class Sybase
-	extends AbstractVendor
-{
-	private final String dtpVendorName;
-
-	static final Vendor ASA = new Sybase("Sybase_ASA"); //$NON-NLS-1$
-	static final Vendor ASE = new Sybase("Sybase_ASE"); //$NON-NLS-1$
-
-	static Vendor asa() {
-		return ASA;
-	}
-
-	static Vendor ase() {
-		return ASE;
-	}
-
-	/**
-	 * Ensure only static instances.
-	 */
-	private Sybase(String dtpVendorName) {
-		super();
-		this.dtpVendorName = dtpVendorName;
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return this.dtpVendorName;
-	}
-
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return SimpleCatalogStrategy.instance();
-	}
-
-	/**
-	 * By default, Sybase identifiers are case-sensitive, even without
-	 * delimiters. This can depend on the collation setting....
-	 */
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return NonFoldingStrategy.instance();
-	}
-
-	/**
-	 * Sybase will use the user-requested database; if that database is not
-	 * found, it will default to 'master'.
-	 */
-	@Override
-	void addDefaultCatalogNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(database.getName());
-		names.add(MASTER_CATALOG_NAME);
-	}
-	private static final String MASTER_CATALOG_NAME = "master";  //$NON-NLS-1$
-
-	/**
-	 * The typical default schema on Sybase for any database (catalog) is
-	 * 'dbo'.
-	 * 
-	 * Actually, the default schema is more like a search path:
-	 * The server looks for a schema object (e.g. a table) first in the user's
-	 * schema, then it looks for the schema object in the database owner's
-	 * schema (dbo). As a result, it's really not possible to specify
-	 * the "default" schema without knowing the schema object we are
-	 * looking for.
-	 * 
-	 * (Note: the current 'user' is not the same thing as the current
-	 * 'login' - see sp_adduser and sp_addlogin; so we probably can't
-	 * use ConnectionProfile#getUserName().)
-	 */
-	@Override
-	void addDefaultSchemaNamesTo(Database database, String userName, ArrayList<String> names) {
-		names.add(DEFAULT_SCHEMA_NAME);
-	}
-	private static final String DEFAULT_SCHEMA_NAME = "dbo";  //$NON-NLS-1$
-
-	@Override
-	char[] getExtendedRegularNameStartCharacters() {
-		return EXTENDED_REGULAR_NAME_START_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_START_CHARACTERS = new char[] { '_', '@' };
-
-	@Override
-	char[] getExtendedRegularNamePartCharacters() {
-		return EXTENDED_REGULAR_NAME_PART_CHARACTERS;
-	}
-	private static final char[] EXTENDED_REGULAR_NAME_PART_CHARACTERS = new char[] { '$', '¥', '£', '#' };
-
-	/**
-	 * By default, Sybase delimits identifiers with brackets ([]); but it
-	 * can also be configured to use double-quotes.
-	 */
-	@Override
-	boolean identifierIsDelimited(String identifier) {
-		return StringTools.stringIsBracketed(identifier)
-					|| super.identifierIsDelimited(identifier);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnknownCatalogStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnknownCatalogStrategy.java
deleted file mode 100644
index f2f9ef2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnknownCatalogStrategy.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Catalog strategy for unknown DTP databases.
- * @see java.sql.DatabaseMetaData#getCatalogs()
- */
-class UnknownCatalogStrategy
-	implements CatalogStrategy
-{
-	// singleton
-	private static final CatalogStrategy INSTANCE = new UnknownCatalogStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static CatalogStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private UnknownCatalogStrategy() {
-		super();
-	}
-
-	@SuppressWarnings("unchecked")
-	public boolean supportsCatalogs(Database database) {
-		List<Catalog> catalogs = database.getCatalogs();
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return false;
-		}
-
-		return this.getFauxCatalog(catalogs) == null;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Catalog> getCatalogs(Database database) {
-		List<Catalog> catalogs = database.getCatalogs();
-		// if there are no catalogs, the database must hold the schemata directly
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return Collections.emptyList();
-		}
-
-		Catalog fauxCatalog = this.getFauxCatalog(catalogs);
-		return (fauxCatalog == null) ? catalogs : Collections.<Catalog>emptyList();
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<Schema> getSchemas(Database database) {
-		List<Catalog> catalogs = database.getCatalogs();
-		// if there are no catalogs, the database must hold the schemata directly
-		if ((catalogs == null) || catalogs.isEmpty()) {
-			return database.getSchemas();
-		}
-
-		Catalog fauxCatalog = this.getFauxCatalog(catalogs);
-		return (fauxCatalog != null) ? fauxCatalog.getSchemas() : Collections.emptyList();
-	}
-
-	private Catalog getFauxCatalog(List<Catalog> catalogs) {
-		if (catalogs.size() == 1) {
-			Catalog catalog = catalogs.get(0);
-			if (catalog.getName().equals("")) { //$NON-NLS-1$
-				return catalog;
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnrecognizedVendor.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnrecognizedVendor.java
deleted file mode 100644
index 0d1cf28..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UnrecognizedVendor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-/**
- * 
- */
-class UnrecognizedVendor
-	extends AbstractVendor
-{
-	// singleton
-	private static final Vendor INSTANCE = new UnrecognizedVendor();
-
-	/**
-	 * Return the singleton.
-	 */
-	static Vendor instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private UnrecognizedVendor() {
-		super();
-	}
-
-	@Override
-	public String getDTPVendorName() {
-		return "Unrecognized Vendor"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Not sure what to do here....
-	 * Assume the DTP database is organized into one or more catalogs and
-	 * the schemata are contained by those catalogs. This appears to be the
-	 * default way DTP builds models these days (i.e. a database with at
-	 * least one catalog, instead of the database holding schemata
-	 * directly).
-	 */
-	@Override
-	CatalogStrategy getCatalogStrategy() {
-		return UnknownCatalogStrategy.instance();
-	}
-
-	@Override
-	FoldingStrategy getFoldingStrategy() {
-		return UpperCaseFoldingStrategy.instance();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UpperCaseFoldingStrategy.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UpperCaseFoldingStrategy.java
deleted file mode 100644
index 360afe9..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/UpperCaseFoldingStrategy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Fold "normal" identifiers to upper case.
- * Ignore the case of "normal" identifiers.
- */
-class UpperCaseFoldingStrategy
-	implements FoldingStrategy
-{
-
-	// singleton
-	private static final FoldingStrategy INSTANCE = new UpperCaseFoldingStrategy();
-
-	/**
-	 * Return the singleton.
-	 */
-	static FoldingStrategy instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private UpperCaseFoldingStrategy() {
-		super();
-	}
-
-	public String fold(String name) {
-		return name.toUpperCase();
-	}
-
-	public boolean nameIsFolded(String name) {
-		return StringTools.stringIsUppercase(name);
-	}
-
-	public boolean regularIdentifiersAreCaseSensitive() {
-		return false;
-	}
-
-	@Override
-	public String toString() {
-		return this.getClass().getSimpleName();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Vendor.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Vendor.java
deleted file mode 100644
index c14c90a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/Vendor.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.List;
-
-import org.eclipse.datatools.modelbase.sql.schema.Catalog;
-import org.eclipse.datatools.modelbase.sql.schema.Database;
-import org.eclipse.datatools.modelbase.sql.schema.Schema;
-
-/**
- * Delegate vendor-specific behavior to implementations of this interface:<ul>
- *   <li>catalog support
- *   <li>default catalog and schema
- *   <li>converting names to identifiers and vice-versa
- * </ul>
- * <strong>NB:</strong><br>
- * We use <em>name</em> when dealing with the unmodified name of a database object
- * as supplied by the database itself (i.e. it is not delimited and it is always
- * case-sensitive).
- * <br>
- * We use <em>identifier</em> when dealing with a string representation of a database
- * object name (i.e. it may be delimited and, depending on the vendor, it may
- * be case-insensitive).
- */
-public interface Vendor {
-
-	/**
-	 * This must match the DTP vendor name.
-	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getVendor()
-	 */
-	String getDTPVendorName();
-
-	/**
-	 * Return whether the vendor supports "real" catalogs (e.g. Sybase).
-	 */
-	boolean supportsCatalogs(Database database);
-
-	/**
-	 * Return the specified database's catalogs.
-	 */
-	List<Catalog> getCatalogs(Database database);
-
-	/**
-	 * Return the specified database's default catalog names for the
-	 * specified user. The first name in the list that identifies a catalog
-	 * that exists is "the" default.
-	 */
-	Iterable<String> getDefaultCatalogNames(Database database, String userName);
-
-	/**
-	 * Return the specified database's schemas.
-	 */
-	List<Schema> getSchemas(Database database);
-
-	/**
-	 * Return the specified database's default schema names for the
-	 * specified user. The first name in the list that identifies a schema
-	 * that exists is "the" default.
-	 */
-	Iterable<String> getDefaultSchemaNames(Database database, String userName);
-
-	/**
-	 * Convert the specified database object name to a vendor identifier.
-	 * Return <code>null</code> if the identifier matches the specified default name.
-	 */
-	String convertNameToIdentifier(String name, String defaultName);
-
-	/**
-	 * Convert the specified database object name to a vendor identifier.
-	 */
-	String convertNameToIdentifier(String name);
-
-	/**
-	 * Convert the specified database object identifier to a vendor name.
-	 */
-	String convertIdentifierToName(String identifier);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/VendorRepository.java b/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/VendorRepository.java
deleted file mode 100644
index 317d117..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/vendor/VendorRepository.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.internal.vendor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-public class VendorRepository {
-	private final Vendor[] vendors;
-
-	// singleton
-	private static final VendorRepository INSTANCE = new VendorRepository();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static VendorRepository instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private VendorRepository() {
-		super();
-		this.vendors = this.buildVendors();
-	}
-
-	private Vendor[] buildVendors() {
-		ArrayList<Vendor> list = new ArrayList<Vendor>();
-		this.addVendorsTo(list);
-		return list.toArray(new Vendor[list.size()]);
-	}
-
-	private void addVendorsTo(ArrayList<Vendor> list) {
-		this.addVendorTo(DB2.udb(), list);
-		this.addVendorTo(DB2.udbISeries(), list);
-		this.addVendorTo(DB2.udbZSeries(), list);
-		this.addVendorTo(Derby.instance(), list);
-		this.addVendorTo(HSQLDB.instance(), list);
-		this.addVendorTo(Informix.instance(), list);
-		this.addVendorTo(MaxDB.instance(), list);
-		this.addVendorTo(MySQL.instance(), list);
-		this.addVendorTo(Oracle.instance(), list);
-		this.addVendorTo(PostgreSQL.instance(), list);
-		this.addVendorTo(SQLServer.instance(), list);
-		this.addVendorTo(Sybase.asa(), list);
-		this.addVendorTo(Sybase.ase(), list);
-	}
-
-	private void addVendorTo(Vendor vendor, ArrayList<Vendor> list) {
-		String name = vendor.getDTPVendorName();
-		for (Iterator<Vendor> stream = list.iterator(); stream.hasNext(); ) {
-			if (stream.next().getDTPVendorName().equals(name)) {
-				throw new IllegalArgumentException("Duplicate vendor: " + name); //$NON-NLS-1$
-			}
-		}
-		list.add(vendor);
-	}
-
-	public Vendor getVendor(String dtpVendorName) {
-		for (int i = this.vendors.length; i-- > 0;) {
-			Vendor vendor = this.vendors[i];
-			if (vendor.getDTPVendorName().equals(dtpVendorName)) {
-				return vendor;
-			}
-		}
-		return UnrecognizedVendor.instance();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.project b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.project
deleted file mode 100644
index 1cd07b0..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.eclipselink.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 0d1a75f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.eclipselink.branding;singleton:=true
-Bundle-Version: 2.4.0.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.html b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.html
deleted file mode 100644
index ca606b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June 06, 2007</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.ini b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.ini
deleted file mode 100644
index 7d88b9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.ini
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=icons/WTP_icon_x32_v2.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
-# optional
-tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.mappings b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.properties b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.properties
deleted file mode 100644
index af0e36f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools - EclipseLink Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Oracle contributors and others 2006, 2009.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/build.properties
deleted file mode 100644
index 4e089bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               icons/,\
-               plugin.properties,\
-               component.xml
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/component.xml b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/component.xml
deleted file mode 100644
index 5ab146d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/component.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jpa.eclipselink.branding">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt.jpa.eclipselink.branding" fragment="false"/>
-<plugin id="org.eclipse.jpt.common.eclipselink.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.eclipselink.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.jpa.eclipselink.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/icons/WTP_icon_x32_v2.png b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/icons/WTP_icon_x32_v2.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/icons/WTP_icon_x32_v2.png
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/plugin.properties
deleted file mode 100644
index 33c60d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.classpath b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.classpath
deleted file mode 100644
index 06892d1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry exported="true" kind="lib" path="lib/persistence.jar" sourcepath="org.eclipse.jpt.jpa.eclipselink.core.ddlgensrc.zip"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.project b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.project
deleted file mode 100644
index 084aa66..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.eclipselink.core.ddlgen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 11155f4..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:26:54 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8041bc2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Apr 30 17:24:41 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/META-INF/MANIFEST.MF
deleted file mode 100644
index 8085661..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.eclipselink.core.ddlgen;singleton:=true
-Bundle-Version: 2.0.0.qualifier
-Bundle-ClassPath: lib/persistence.jar
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.jpt.jpa.eclipselink.core;bundle-version="[2.0.0,3.0.0)"
-Export-Package: javax.persistence,
- javax.persistence.spi,
- org.eclipse.jpt.jpa.eclipselink.core.ddlgen
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/about.html b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/about.html
deleted file mode 100644
index 071f586..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/about.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H2>About This Content</H2>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-<h3>Third Party Content</h3>
-<p>The Content includes items that have been sourced from third parties as set 
-  out below. If you did not receive this Content directly from the Eclipse Foundation, 
-  the following is provided for informational purposes only, and you should look 
-  to the Redistributor&#8217;s license for terms and conditions of use.</p>
-
-<h4><a name="JPA" id="JPA"></a>Java Persistence API (JPA) v1.0</h4>
-
-<blockquote>
-  <p>The Java Persistence API (JPA) which is distributed under <a href="https://glassfish.dev.java.net/public/CDDLv1.0.html">CDDL 
-    v1.0</a> is required by the Dali Java Persistence Tools Project in order 
-    to support this standard.</p>
-</blockquote>
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/build.properties
deleted file mode 100644
index b73ac1c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               lib/persistence.jar,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/lib/persistence.jar b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/lib/persistence.jar
deleted file mode 100644
index 1a1b232..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/lib/persistence.jar
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/plugin.properties
deleted file mode 100644
index a2f8480..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Jpa EclipseLink Support - DDL Generation
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/src/org/eclipse/jpt/jpa/eclipselink/core/ddlgen/Main.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/src/org/eclipse/jpt/jpa/eclipselink/core/ddlgen/Main.java
deleted file mode 100644
index 85db5f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/src/org/eclipse/jpt/jpa/eclipselink/core/ddlgen/Main.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.jpa.eclipselink.core.ddlgen;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Map.Entry;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-
-import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.schema.generation.SchemaGeneration;
-
-/** 
- * This class creates a EclipseLink <code>EntityManagerFactory</code>, 
- * and executes the DDL generator with the command set in the properties: 
- *     <code>eclipselink.ddl-generation.output-mode</code> 
- *     <code>eclipselink.application-location</code>
- * 
- * Current command-line arguments:
- *     [-pu puName] - persistence unit name
- *     [-p propertiesFilePath] - properties for EclipseLink EntityManager
- *  
- *  Example of a properties file:
- *  	eclipselink.jdbc.bind-parameters=false
- *  	eclipselink.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
- *  	eclipselink.jdbc.url=jdbc\:derby\:c\:/derbydb/testdb;create\=true
- *  	eclipselink.jdbc.user=tran
- *  	eclipselink.jdbc.password=
- *  	eclipselink.logging.level=FINEST
- *  	eclipselink.logging.timestamp=false
- *  	eclipselink.logging.thread=false
- *  	eclipselink.logging.session=false
- *  	eclipselink.logging.exceptions=true
- *  	eclipselink.orm.throw.exceptions=true
- *  	eclipselink.ddl-generation.output-mode=database
- *  	eclipselink.ddl-generation=drop-and-create-tables
- *  	eclipselink.application-location=c\:/_Projects_/ExampleDDL
- */
-public class Main
-{
-	protected EntityManagerFactory emf;
-	private Map<String, String> eclipseLinkProperties;
-	private String createDDLFileName;
-	private String dropDDLFileName;
-	private String appLocation;
-	private String eclipseLinkPropertiesPath;
-	private boolean isDebugMode;
-	
-	// ********** constructors **********
-	
-	public static void main(String[] args) {
-		new Main().execute(args);
-	}
-
-	private Main() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	protected void execute(String[] args) {
-		this.initializeWith(args);
-		
-		this.emf = Persistence.createEntityManagerFactory(this.getPUName(args), this.eclipseLinkProperties);
-		this.perform();
-		this.closeEntityManagerFactory();
-		
-		this.dispose();
-		return;
-	}
-	
-	protected void perform() {
-		// create an EM to generate schema.
-		this.emf.createEntityManager().close();
-	}
-	
-	protected void closeEntityManagerFactory() {
-		this.emf.close();
-	}
-	
-	private void initializeWith(String[] args) {
-
-		this.eclipseLinkPropertiesPath = this.getEclipseLinkPropertiesPath(args);
-		this.eclipseLinkProperties = this.getProperties(this.eclipseLinkPropertiesPath);
-		
-		this.createDDLFileName = this.getConfigPropertyAsString( 
-						SchemaGeneration.ECLIPSELINK_CREATE_FILE_NAME, 
-						this.eclipseLinkProperties,  
-						SchemaGeneration.DEFAULT_SCHEMA_GENERATION_CREATE_FILE_NAME);
-
-		this.dropDDLFileName = this.getConfigPropertyAsString(
-						SchemaGeneration.ECLIPSELINK_DROP_FILE_NAME, 
-						this.eclipseLinkProperties,  
-						SchemaGeneration.DEFAULT_SCHEMA_GENERATION_DROP_FILE_NAME); 
-		
-		this.appLocation = this.eclipseLinkProperties.get(
-						SchemaGeneration.ECLIPSELINK_APPLICATION_LOCATION);
-
-		this.isDebugMode = this.getDebugMode(args);
-	}
-	
-	private void dispose() {
-
-		if( ! this.isDebugMode) {
-			new File(this.appLocation + "/" + this.createDDLFileName).delete(); //$NON-NLS-1$
-			new File(this.appLocation + "/" + this.dropDDLFileName).delete(); //$NON-NLS-1$
-			new File(this.eclipseLinkPropertiesPath).delete();
-		}
-	}
-	
-	private Map<String, String> getProperties(String eclipseLinkPropertiesPath) {
-		
-		Set<Entry<Object, Object>> propertiesSet = null;
-		try {
-			propertiesSet = this.loadEclipseLinkProperties(eclipseLinkPropertiesPath);
-		}
-		catch (IOException e) {
-			throw new RuntimeException("Missing: " + eclipseLinkPropertiesPath, e); //$NON-NLS-1$
-		}
-		
-		Map<String, String> properties = new HashMap<String, String>();
-		for(Entry<Object, Object> property : propertiesSet) {
-			properties.put((String)property.getKey(), (String)property.getValue());
-		}
-		return properties;
-	}
-
-    private Set<Entry<Object, Object>> loadEclipseLinkProperties(String eclipseLinkPropertiesPath) throws IOException {
-		
-        FileInputStream stream = new FileInputStream(eclipseLinkPropertiesPath);
-        
-        Properties properties = new Properties();
-        properties.load(stream);
-        
-        return properties.entrySet();
-	}
-
-	// ********** argument queries **********
-    
-	private String getPUName(String[] args) {
-
-		return this.getArgumentValue("-pu", args); //$NON-NLS-1$
-	}
-	
-	private String getEclipseLinkPropertiesPath(String[] args) {
-
-		return this.getArgumentValue("-p", args); //$NON-NLS-1$
-	}
-
-	private boolean getDebugMode(String[] args) {
-
-		return this.argumentExists("-debug", args); //$NON-NLS-1$
-	}
-	
-	private String getArgumentValue(String argument, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argument)) {
-				int j = i + 1;
-				if (j < args.length) {
-					return args[j];
-				}
-			}
-		}
-		return null;
-	}
-	
-	private boolean argumentExists(String argument, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argument)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// ****** utility methods *******
-	
-    /**
-     * Check the provided map for an object with the given key.  If that object is not available, check the
-     * System properties.  If it is not available from either location, return the default value.
-     * @param propertyKey 
-     * @param map 
-     * @param defaultValue 
-     * @return 
-     */
-    protected String getConfigPropertyAsString(String propertyKey, Map<String, String> overrides, String defaultValue){
-    	String value = this.getConfigPropertyAsString(propertyKey, overrides);
-        if (value == null){
-            value = defaultValue;
-        }
-        return value;
-    }
-    
-    protected String getConfigPropertyAsString(String propertyKey, Map<String, String> overrides){
-        String value = null;
-        if (overrides != null){
-            value = overrides.get(propertyKey);
-        }
-        if (value == null){
-            value = System.getProperty(propertyKey);
-        }
-        return value;
-    }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/.classpath b/jpa/plugins/org.eclipse.jpt.jpa.gen/.classpath
deleted file mode 100644
index 8f25741..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="property_files"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/.cvsignore b/jpa/plugins/org.eclipse.jpt.jpa.gen/.cvsignore
deleted file mode 100644
index a196dd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
-javaCompiler...args.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/.project b/jpa/plugins/org.eclipse.jpt.jpa.gen/.project
deleted file mode 100644
index 3e6e8c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.gen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 1f15ff2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:12:07 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3e1d50a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:28:54 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF
deleted file mode 100644
index 26e63b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.gen
-Bundle-Version: 2.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.jpa.gen.internal;x-friends:="org.eclipse.jpt.jpa.ui",
- org.eclipse.jpt.jpa.gen.internal.util;x-friends:="org.eclipse.jpt.jpa.ui"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.jpa.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
- org.apache.commons.collections;bundle-version="3.2.0",
- org.apache.commons.lang;bundle-version="2.1.0",
- org.apache.oro;bundle-version="2.0.8",
- org.apache.velocity;bundle-version="1.5.0",
- org.jdom;bundle-version="1.0.0",
- org.eclipse.wst.common.emf;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/about.html b/jpa/plugins/org.eclipse.jpt.jpa.gen/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/build.properties b/jpa/plugins/org.eclipse.jpt.jpa.gen/build.properties
deleted file mode 100644
index 4fe875d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/,\
-               property_files/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties,\
-               templates/
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/component.xml b/jpa/plugins/org.eclipse.jpt.jpa.gen/component.xml
deleted file mode 100644
index ff5a350..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2007, 2010 Oracle. All rights reserved.
-  This program and the accompanying materials are made available under the
-  terms of the Eclipse Public License v1.0, which accompanies this distribution
-  and is available at http://www.eclipse.org/legal/epl-v10.html.
-
-  Contributors:
-    Oracle - initial API and implementation
- -->
-
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.jpa.gen"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.jpa.gen" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/plugin.properties b/jpa/plugins/org.eclipse.jpt.jpa.gen/plugin.properties
deleted file mode 100644
index 9537a25..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Entity Gen
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/property_files/jpt_gen.properties b/jpa/plugins/org.eclipse.jpt.jpa.gen/property_files/jpt_gen.properties
deleted file mode 100644
index db907a2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/property_files/jpt_gen.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-################################################################################
-# Copyright (c) 2008, 2009 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-PackageGenerator_taskName=Generate Entities
-GenScope_taskName=Build Database Model
-EntityGenerator_taskName=Generate Entity: {0}
-Error_Generating_Entities = Error Generating Entities
-
-Delete_Folder_Error = "The directory {0} could not be deleted."
-Delete_File_Error = "The file {0} could not be deleted."
-File_Read_Only_Error= "The file {0} could not be modified because write access is denied.\nPlease make sure that the file is not marked as readonly in the file system."
-
-Templates_notFound = Unable to find JPA entities generation templates in plugin
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/Association.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/Association.java
deleted file mode 100644
index 889b4a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/Association.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.util.List;
-
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.gen.internal.util.StringUtil;
-
-/**
- * Represents an ORM association.
- * There are two types of associations:
- * <ul><li>simple association: An association between two database tables.
- * The <em>referrer</code> table is the one containing the foreign key
- * , the <em>referenced</code> table is the other party.<br>
- * 
- * <li>many to many association: An association between two tables joined by 
- * a <em>join table</em>.
- * In the example AUTHOR, BOOK, AUTHOR_BOOK, The referrer and referenced are 
- * AUTHOR and  BOOK, and the join table is AUTHOR_BOOK.
- * </ul>
- * 
- */
-public class Association implements java.io.Serializable
-{
-	private final static long serialVersionUID = 2;
-
-	public static final String MANY_TO_ONE = "many-to-one";
-	public static final String MANY_TO_MANY = "many-to-many";
-	public static final String ONE_TO_ONE = "one-to-one";
-	public static final String ONE_TO_MANY = "one-to-many";
-	
-	public static final String BI_DI = "bi-di";
-	public static final String NORMAL_DI = "normal-di"; //referrer->referenced
-	public static final String OPPOSITE_DI = "opposite-di"; //referenced->referrer
-	
-	private transient ORMGenCustomizer mCustomizer;
-	private String mReferrerTableName;
-	private String mReferencedTableName;
-	private String mJoinTableName;
-
-	private List<String> mReferrerColNames; /*String objects*/
-	private List<String> mReferencedColNames; /*String objects*/
-	private List<String> mReferrerJoinColNames; /*String objects*/
-	private List<String> mReferencedJoinColNames; /*String objects*/
-
-	private transient List<ORMGenColumn> mReferrerCols; /*ORMGenColumn objects*/
-	private transient List<ORMGenColumn> mReferencedCols; /*ORMGenColumn objects*/
-	private transient List<ORMGenColumn> mReferrerJoinCols; /*ORMGenColumn objects*/
-	private transient List<ORMGenColumn> mReferencedJoinCols; /*ORMGenColumn objects*/
-	
-	private String mCardinality;
-	private String mDirectionality;
-	private byte mFlags = GENERATED;
-	
-	private AssociationRole mReferrerRole;
-	private AssociationRole mReferencedRole;
-
-	private transient ForeignKey mForeignKey;	
-	
-	/*constants for mFlags*/
-	/*whether the association should be generated*/
-	private static final byte GENERATED = 1 << 0;
-	/*whether the association is custom (i.e is not auto computed from foreign keys relationships).*/
-	private static final byte CUSTOM = 1 << 1;
-	
-	/**
-	 * The simple association constructor.
-	 * The 2 tables are joined when the values of each column in
-	 * referrerColNames match its corresponding column in referencedColNames.
-	 * 
-	 * @param referrerTableName The "foreign key" table.
-	 * @param referrerColNames The column names in the referrer table.
-	 * @param referencedTableName The "primary key" table.
-	 * @param referencedColNames The column names in the referenced table.
-	 */
-	public Association(ORMGenCustomizer customizer, String referrerTableName, List<String> referrerColNames
-			, String referencedTableName, List<String> referencedColNames)  {
-		super();
-		
-		mCustomizer = customizer;
-		mReferrerTableName = referrerTableName;
-		mReferencedTableName = referencedTableName;
-		mReferrerColNames = referrerColNames;
-		mReferencedColNames = referencedColNames;
-		
-		mCardinality = MANY_TO_ONE;
-		mDirectionality = BI_DI;
-		
-		setCustom(true);
-	}
-	/**
-	 * The many to many constructor.
-	 * The 2 tables are joined when the values of each column in
-	 * referrerColNames match its corresponding column in referrerJoinColNames
-	 * , and each column in referencedColNames match its corresponding column in referencedJoinColNames.
-	 *
-	 */
-	public Association(ORMGenCustomizer customizer, String referrerTableName, List<String> referrerColNames
-			, String referencedTableName, List<String> referencedColNames
-			, String joinTableName, List<String> referrerJoinColNames, List<String> referencedJoinColNames) {
-		super();
-		
-		mCustomizer = customizer;
-		mReferrerTableName = referrerTableName;
-		mReferencedTableName = referencedTableName;
-		mReferrerColNames = referrerColNames;
-		mReferencedColNames = referencedColNames;
-		mJoinTableName = joinTableName;
-		mReferrerJoinColNames = referrerJoinColNames;
-		mReferencedJoinColNames = referencedJoinColNames;
-		
-		mCardinality = MANY_TO_MANY;	
-		mDirectionality = BI_DI;
-		
-		setCustom(true);
-	}
-	/**
-	 * Empty constructor needed by the deserialization (should not be used otherwise).
-	 */
-	public Association() {
-	}
-	/**
-	 * Computes the cardinality basedon the forign key definitions.
-	 */
-	public void computeCardinality()  {
-		/*by default the association is many-to-one unless the foreign key 
-		 * is also the primary key, in which case it is a one-to-one.*/
-		mCardinality = MANY_TO_ONE;
-		
-		List<ORMGenColumn> referrerCols = getReferrerColumns();
-		List<ORMGenColumn> pkCols = getReferrerTable().getPrimaryKeyColumns();
-		if (pkCols.size() == referrerCols.size()) {
-			boolean isFkPk = true;
-			for (int i = 0, n = pkCols.size(); i < n; ++i) {
-				if (!((ORMGenColumn)pkCols.get(i)).getName().equals(((ORMGenColumn)referrerCols.get(i)).getName())) {
-					isFkPk = false;
-					break;
-				}
-			}
-			if (isFkPk) {
-				mCardinality = ONE_TO_ONE;
-			}
-		}
-		
-		setCustom(false);
-	}
-	/**
-	 * Called after the asscociations are deserialized to attach 
-	 * the customizer object.
-	 */
-	protected void restore(ORMGenCustomizer customizer) {
-		mCustomizer = customizer;
-		
-		if (mReferrerRole != null) {
-			mReferrerRole.restore(this);
-		}
-		if (mReferencedRole != null) {
-			mReferencedRole.restore(this);
-		}
-	}
-	public ORMGenTable getReferrerTable()  {
-		return mCustomizer.getTable(mReferrerTableName);
-	}
-	public String getReferrerTableName() {
-		return mReferrerTableName;
-	}
-	public ORMGenTable getReferencedTable()  {
-		return mCustomizer.getTable(mReferencedTableName);
-	}
-	public String getReferencedTableName() {
-		return mReferencedTableName;
-	}
-	public ORMGenTable getJoinTable()  {
-		return mCustomizer.getTable(mJoinTableName);
-	}
-	public String getJoinTableName() {
-		return mJoinTableName;
-	}
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects for the referrer
-	 * columns.
-	 */
-	public List<ORMGenColumn> getReferrerColumns() {
-		if (mReferrerCols == null) {
-			ORMGenTable referrerTable = getReferrerTable();
-			mReferrerCols = referrerTable.getColumnsByNames(mReferrerColNames);
-		}
-		return mReferrerCols;
-	}
-	public List<String> getReferrerColumnNames() {
-		return mReferrerColNames;
-	}
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects for the referenced
-	 * columns.
-	 */
-	public List<ORMGenColumn> getReferencedColumns() {
-		if (mReferencedCols == null) {
-			mReferencedCols = getReferencedTable().getColumnsByNames(mReferencedColNames);
-		}
-		return mReferencedCols;
-	}
-	public List<String> getReferencedColumnNames() {
-		return mReferencedColNames;
-	}
-	public List<ORMGenColumn> getReferrerJoinColumns() {
-		if (mReferrerJoinCols == null) {
-			mReferrerJoinCols = getJoinTable().getColumnsByNames(mReferrerJoinColNames);
-		}
-		return mReferrerJoinCols;
-	}
-	public List<String> getReferrerJoinColumnNames() {
-		return mReferrerJoinColNames;
-	}
-	public List<ORMGenColumn> getReferencedJoinColumns()  {
-		if (mReferencedJoinCols == null) {
-			mReferencedJoinCols = getJoinTable().getColumnsByNames(mReferencedJoinColNames);
-		}
-		return mReferencedJoinCols;
-	}
-	public List<String> getReferencedJoinColumnNames() {
-		return mReferencedJoinColNames;
-	}
-	/**
-	 * Returns the association cardinality, one of {@link #MANY_TO_ONE}|{@link #MANY_TO_MANY}
-	 * |{@link #ONE_TO_ONE}|{@link #ONE_TO_MANY}
-	 */
-	public String getCardinality() {
-		return mCardinality;
-	}
-	public void setCardinality(String cardinality) {
-		assert(cardinality.equals(MANY_TO_ONE) || cardinality.equals(MANY_TO_MANY) || cardinality.equals(ONE_TO_ONE) || cardinality.equals(ONE_TO_MANY));
-		mCardinality = cardinality;
-	}
-	/**
-	 * Returns the association directionality, one of {@link #BI_DI}|{@link #NORMAL_DI}
-	 * |{@link #OPPOSITE_DI}
-	 */
-	public String getDirectionality() {
-		return mDirectionality;
-	}
-	public void setDirectionality(String dir) {
-		assert(dir.equals(BI_DI) || dir.equals(NORMAL_DI) || dir.equals(OPPOSITE_DI));
-		if (!dir.equals(mDirectionality)) {
-			mDirectionality = dir;
-			
-			if (dir.equals(NORMAL_DI)) {
-				mReferencedRole = null;
-			} else if (dir.equals(OPPOSITE_DI)) {
-				mReferrerRole = null;
-			}
-		}
-	}
-	
-	/**
-	 * Tests whether this association is bidirectional.
-	 * This is a shortcut for <code>getDirectionality().equals(BI_DI)</code>.
-	 */
-	public boolean isBidirectional() {
-		return mDirectionality.equals(BI_DI);
-	}
-	/**
-	 * Returns true of this association should be generated. 
-	 */
-	public boolean isGenerated() {
-		return (mFlags & GENERATED) != 0;
-	}
-	public void setGenerated(boolean generated) {
-		if (generated != isGenerated()) {
-			if (generated) {
-				mFlags |= GENERATED;
-			} else {
-				mFlags &= ~GENERATED;
-			}
-			mReferrerRole = mReferencedRole = null;
-		}
-	}
-	/**
-	 * Returns true of this association is custom (i.e is not auto computed from foreign keys relationships). 
-	 */
-	public boolean isCustom() {
-		return (mFlags & CUSTOM) != 0;
-	}
-	public void setCustom(boolean custom) {
-		if (custom) {
-			mFlags |= CUSTOM;
-		} else {
-			mFlags &= ~CUSTOM;
-		}
-	}
-	/**
-	 * Returns the association role for the referrer side, or null 
-	 * if none (i.e if the directionality does not include it).
-	 */
-	public AssociationRole getReferrerRole() {
-		if (mReferrerRole == null && isGenerated()) {
-			if (!getDirectionality().equals(OPPOSITE_DI)) { //BI_DI or NORMAL_DI
-				mReferrerRole = new AssociationRole(this, true/*isReferrerEnd*/);
-			}
-		}
-		return mReferrerRole;
-	}
-	/**
-	 * Returns the association role for the referenced side, or null 
-	 * if none (i.e if the directionality does not include it).
-	 */
-	public AssociationRole getReferencedRole() {
-		if (mReferencedRole == null && isGenerated()) {
-			if (!getDirectionality().equals(Association.NORMAL_DI)) { //BI_DI or OPPOSITE_DI
-				mReferencedRole = new AssociationRole(this, false/*isReferrerEnd*/);
-			}
-		}
-		return mReferencedRole;
-	}
-	/**
-	 * Tests whether this association is valid (valid table and column names).
-	 */
-	protected boolean isValid(){
-		if (!isValidTableAndColumns(mReferrerTableName, mReferrerColNames)
-				|| !isValidTableAndColumns(mReferencedTableName, mReferencedColNames)) {
-			return false;
-		}
-		if (mJoinTableName != null) {
-			if (!isValidTableAndColumns(mJoinTableName, mReferrerJoinColNames)
-					|| !isValidTableAndColumns(mJoinTableName, mReferencedJoinColNames)) {
-				return false;
-			}			
-		}
-		return true;
-	}
-	private boolean isValidTableAndColumns(String tableName, List<String> columnNames) {
-		ORMGenTable table = mCustomizer.getTable(tableName);
-		if (table == null) {
-			return false;
-		}
-		for (int i = 0, n = columnNames.size(); i < n; ++i) {
-			String colName = (String)columnNames.get(i);
-			if (table.getColumnByName(colName) == null) {
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	public void setForeignKey(ForeignKey foreignKey) {
-		this.mForeignKey = foreignKey;
-		
-	}
-	public ForeignKey getForeignKey(){
-		return this.mForeignKey;
-	};	
-	public boolean equals(Object obj) {
-		if( this == obj )
-			return true;
-		if( obj instanceof Association ){
-			Association association2 = (Association)obj;
-			if (!this.getReferrerTableName().equals(association2.getReferrerTableName())
-					|| !this.getReferencedTableName().equals(association2.getReferencedTableName())
-					|| !StringUtil.equalObjects(this.getJoinTableName(), association2.getJoinTableName())
-					|| !this.getReferrerColumnNames().equals(association2.getReferrerColumnNames())
-					|| !this.getReferencedColumnNames().equals(association2.getReferencedColumnNames())
-					) {
-				return false;
-			}					
-			/*the 2 association have the same referrer, referenced and join table*/
-			//If MTO or OTM association
-			if (this.getJoinTableName() == null) {
-				return true;
-			}
-			if (this.getReferrerJoinColumnNames().equals(association2.getReferrerJoinColumnNames())
-					&& this.getReferencedJoinColumnNames().equals(association2.getReferencedJoinColumnNames())) {
-				return true;
-			}
-		}
-		return false;
-	}	
-	public String toString(){
-		return mReferrerTableName + " " + mCardinality + " " + mReferencedTableName ;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/AssociationRole.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/AssociationRole.java
deleted file mode 100644
index a9d7344..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/AssociationRole.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Represents an association role (the referrer or referenced role).
- * 
- */
-public class AssociationRole implements java.io.Serializable
-{
-	private transient Association mAssociation; //transient: see restore
-	private boolean mIsReferrerRole;
-	private String mPropertyName;
-	private String mCascade;
-	
-	private final static long serialVersionUID = 1;
-		
-	AssociationRole(Association association, boolean isReferrerRole) {
-		super();
-		
-		mAssociation = association;
-		mIsReferrerRole = isReferrerRole;
-	}
-	
-	/**
-	 * Empty constructor needed by the deserialization (should not be used otherwise).
-	 */
-	public AssociationRole() {
-	}
-	
-	/**
-	 * Called after the asscociations are deserialized to attach 
-	 * the customizer object.
-	 */
-	protected void restore(Association association) {
-		mAssociation = association;
-	}
-	
-	public Association getAssociation() {
-		return mAssociation;
-	}
-	
-	public boolean isReferrerRole() {
-		return mIsReferrerRole;
-	}
-	
-	/**
-	 * Returns the opposite role or null if the association 
-	 * is not bi directional.
-	 */
-	public AssociationRole getOppositeRole() {
-		Association association = getAssociation();
-		if (!association.getDirectionality().equals(Association.BI_DI)) {
-			return null;
-		}
-		if (isReferrerRole()) {
-			return association.getReferencedRole();
-		} else {
-			return association.getReferrerRole();
-		}
-	}
-	
-	/**
-	 * Returns the association cardinality, one of {@link #MANY_TO_ONE}|{@link #MANY_TO_MANY}
-	 * |{@link #ONE_TO_ONE}|{@link #ONE_TO_MANY}
-	 */
-	public String getCardinality() {
-		String type = mAssociation.getCardinality();
-		if (!mIsReferrerRole) {
-			if (type.equals(Association.ONE_TO_MANY)) {
-				type = Association.MANY_TO_ONE;
-			} else if (type.equals(Association.MANY_TO_ONE)) {
-				type = Association.ONE_TO_MANY;
-			}
-		}
-		return type;
-	}
-	
-	public ORMGenTable getReferrerTable() {
-		if (mIsReferrerRole) {
-			return mAssociation.getReferrerTable();
-		} else {
-			return mAssociation.getReferencedTable();
-		}
-	}
-	
-	public List<ORMGenColumn> getReferrerColumns(){
-		if (mIsReferrerRole) {
-			return mAssociation.getReferrerColumns();
-		} else {
-			return mAssociation.getReferencedColumns();
-		}
-	}
-	
-	/**
-	 * Returns the referenced column corresponding to a referrer column.
-	 */
-	public ORMGenColumn getReferencedColumn(String referrerColumn)  {
-		boolean hasJoinTable = mAssociation.getJoinTable() != null;
-		List<ORMGenColumn> referrerColumns = getReferrerColumns();
-		for (int i = 0, n = referrerColumns.size(); i < n; ++i) {
-			ORMGenColumn column = referrerColumns.get(i);
-			if (column.getName().equals(referrerColumn)) {
-				if (hasJoinTable) {
-					return getReferrerJoinColumns().get(i);
-				} else {
-					return getReferencedColumns().get(i);
-				}
-			}
-		}
-		assert(false);
-		return null;
-	}
-	
-	/**
-	 * Returns the referrer column corresponding to a referenced column.
-	 */
-	public ORMGenColumn getReferrerColumn(String referencedColumn)  {
-		boolean hasJoinTable = mAssociation.getJoinTable() != null;
-		List<ORMGenColumn> referencedColumns = getReferencedColumns();
-		for (int i = 0, n = referencedColumns.size(); i < n; ++i) {
-			ORMGenColumn column = referencedColumns.get(i);
-			if (column.getName().equals(referencedColumn)) {
-				if (hasJoinTable) {
-					return getReferencedJoinColumns().get(i);
-				} else {
-					return getReferrerColumns().get(i);
-				}
-			}
-		}
-		assert(false);
-		return null;
-	}
-	
-	public ORMGenTable getReferencedTable()  {
-		if (mIsReferrerRole) {
-			return mAssociation.getReferencedTable();
-		} else {
-			return mAssociation.getReferrerTable();
-		}
-	}
-	
-	public List<ORMGenColumn> getReferencedColumns()  {
-		if (mIsReferrerRole) {
-			return mAssociation.getReferencedColumns();
-		} else {
-			return mAssociation.getReferrerColumns();
-		}
-	}
-	
-	public List<ORMGenColumn> getReferrerJoinColumns()  {
-		if (mIsReferrerRole) {
-			return mAssociation.getReferrerJoinColumns();
-		} else {
-			return mAssociation.getReferencedJoinColumns();
-		}
-	}
-	public List<ORMGenColumn> getReferencedJoinColumns()  {
-		if (mIsReferrerRole) {
-			return mAssociation.getReferencedJoinColumns();
-		} else {
-			return mAssociation.getReferrerJoinColumns();
-		}
-	}
-	
-	/**
-	 * Returns the name that should be used by the generator for 
-	 * the property corresponding to this role.
-	 */
-	public String getPropertyName()   {
-		if (mPropertyName != null) { //if the user explicitly set it then don't be too smart
-			return mPropertyName;
-		}
-		return getDefaultPropertyName();
-	}
-		
-	private String getDefaultPropertyName() {
-		String propName = "";
-		ORMGenTable referrerTable = getReferrerTable();
-		ORMGenTable referencedTable = getReferencedTable();
-
-		boolean isSingular = isSingular();
-		propName = referencedTable.getVarName(isSingular);
-		
-		List<AssociationRole> clashingRoles = new java.util.ArrayList<AssociationRole>(); //roles with our same referrer and referenced tables (i.e would yield the same property name in the same bean)
-		/*make sure there is no role with the same name.*/
-		for (Iterator<AssociationRole> iter = referrerTable.getAssociationRoles().iterator(); iter.hasNext(); ) {
-			AssociationRole role = iter.next();
-			if (role.getReferrerTable().getName().equals(referrerTable.getName())
-					&& role.getReferencedTable().getName().equals(referencedTable.getName())
-					&& role.isSingular() == isSingular) {
-				clashingRoles.add(role);
-			}
-		}
-		if (clashingRoles.size() > 1) {
-			int index = clashingRoles.indexOf(this);
-			assert(index >= 0);
-			propName += index+1;
-		}
-		
-		/*make sure there is no column with the same name.*/
-		for (Iterator<ORMGenColumn> iter = referrerTable.getColumns().iterator(); iter.hasNext(); ) {
-			ORMGenColumn column = iter.next();
-			if (column.getPropertyName().equals(propName)) {
-				String prefix = isSingular ? "Bean" : "Set";
-				propName += prefix;
-				break;
-			}
-		}
-		
-		return propName;
-	}
-	
-	private boolean isSingular() {
-		String cardinality = getCardinality();
-		return cardinality.equals(Association.ONE_TO_ONE) || cardinality.equals(Association.MANY_TO_ONE);
-	}
-	
-	/**
-	 * Changes the name that should be used by the generator for 
-	 * the property corresponding to this role.
-	 * If the argument name is null or empty string then the 
-	 * default computed name is used.
-	 */
-	public void setPropertyName(String name)  {
-		if (name != null && name.length() == 0) {
-			name = null;
-		}
-		if (name != null && name.equals(getDefaultPropertyName())) {
-			name = null;
-		}
-		mPropertyName = name;
-	}
-	
-	/**
-	 * Returns the cascade value for this role, or null if none.
-	 */
-	public String getCascade() {
-		return mCascade;
-	}
-	
-	public void setCascade(String cascade) {
-		if (cascade != null && cascade.length() == 0) {
-			cascade = null;
-		}
-		mCascade = cascade;
-	}
-	
-	/**
-	 * Returns a descriptive string used in a comment in the generated 
-	 * file (from the Velocity template).
-	 */
-	public String getDescription()  {
-		//<!-- $directionality $cardinality association to $referencedClassName -->
-		String directionality;
-		if (getAssociation().getDirectionality().equals(Association.BI_DI)) {
-			directionality = "bi-directional";
-		} else {
-			directionality = "uni-directional";
-		}
-		return directionality + " " + getAssociation().getCardinality() + " association to " + getReferencedTable().getClassName();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/BaseEntityGenCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/BaseEntityGenCustomizer.java
deleted file mode 100644
index 6819f98..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/BaseEntityGenCustomizer.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.io.File;
-import java.util.List;
-import java.util.Set;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.gen.internal.util.DTPUtil;
-import org.eclipse.jpt.jpa.gen.internal.util.StringUtil;
-
-/**
- * Default implementation of ORMGenCustomizer according to JPA specification for
- * entity generation.
- * 
- * This is used to retrieve/change the properties from the wizard and is also
- * passed as a context object to Velocity.
- */
-public class BaseEntityGenCustomizer extends ORMGenCustomizer
-	implements java.io.Serializable
-{
-	private final static long serialVersionUID = 1;
-
-	/* mapping kinds */
-	private static final String BASIC_MAPPING_KIND = "basic"; //$NON-NLS-1$
-	private static final String ID_MAPPING_KIND = "id"; //$NON-NLS-1$
-	private static final String VERSION_MAPPING_KIND = "version"; //$NON-NLS-1$
-
-	/*
-	 * the strings for generator names. These appear in a combo box and used by
-	 * the Velocity template processing.
-	 */
-	private static final String AUTO_GENERATOR = "auto"; //$NON-NLS-1$
-	private static final String NONE_GENERATOR = "none"; //$NON-NLS-1$
-	private static final String IDENTITY_GENERATOR = "identity"; //$NON-NLS-1$
-	private static final String SEQUENCE_GENERATOR = "sequence"; //$NON-NLS-1$
-	private static final String TABLE_GENERATOR = "table"; //$NON-NLS-1$
-
-	public BaseEntityGenCustomizer() {
-		super();
-	}
-
-	@Override
-	public void init(File file, Schema schema) {
-		super.init(file, schema);
-	}
-
-	// -----------------------------------------
-	// ------ ORMGenCustomizer methods
-	// -----------------------------------------
-	@Override
-	public List<String> getAllIdGenerators() {
-		List<String> result = new java.util.ArrayList<String>(5);
-		/* add in the order in which they would appear in the combo */
-		result.add(AUTO_GENERATOR);
-		result.add(IDENTITY_GENERATOR);
-		result.add(SEQUENCE_GENERATOR);
-		result.add(TABLE_GENERATOR);
-		result.add(NONE_GENERATOR);
-		return result;
-	}
-
-	@Override
-	public String getNoIdGenerator() {
-		return NONE_GENERATOR;
-	}
-
-	@Override
-	public String getIdentityIdGenerator() {
-		return IDENTITY_GENERATOR;
-	}
-
-	@Override
-	public Set<String> getSequenceIdGenerators() {
-		Set<String> result = new java.util.HashSet<String>(3);
-		result.add(SEQUENCE_GENERATOR);
-		return result;
-	}
-
-	@Override
-	public String getPropertyTypeFromColumn(Column column) {
-		return DTPUtil.getJavaType(column);
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String[] getAllPropertyTypes() {
-		/*
-		 * Java primitive types, wrapper of the primitive types ,
-		 * java.lang.String, java.math.BigInteger, java.math.BigDecimal,
-		 * java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time,
-		 * java.sql.Timestamp, byte[], Byte[], char[], Character[], enums, and
-		 * any other type that implements Serializable.
-		 */
-		// return in the order that will be used in the combo
-		return new String[] {
-			"boolean",
-			"Boolean",
-			"byte",
-			"Byte",
-			"byte[]",
-			"char",
-			"char[]",
-			"Character",
-			"Character[]",
-			"double",
-			"Double",
-			"float",
-			"Float",
-			"int",
-			"Integer",
-			"long",
-			"Long",
-			"Object",
-			"short",
-			"Short",
-			"String",
-			java.math.BigDecimal.class.getName(),
-			java.math.BigInteger.class.getName(),
-			java.util.Calendar.class.getName(),
-			java.util.Date.class.getName(),
-			java.sql.Date.class.getName(),
-			java.sql.Time.class.getName(),
-			java.sql.Timestamp.class.getName()
-		};
-	}
-
-	@Override
-	public String[] getAllMappingKinds() {
-		return new String[] {
-			BASIC_MAPPING_KIND, ID_MAPPING_KIND, VERSION_MAPPING_KIND
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public String getBasicMappingKind() {
-		return BASIC_MAPPING_KIND;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	public String getIdMappingKind() {
-		return ID_MAPPING_KIND;
-	}
-
-	@Override
-	public boolean editCascade(AssociationRole role) {
-		return false;
-	}
-
-	@Override
-	protected boolean manySideIsAssociationOwner() {
-		return true;
-	}
-
-	// -----------------------------------------
-	// ---- Velocity templates methods
-	// -----------------------------------------
-	/**
-	 * Returns the cascades annotation member value, or empty string if none.
-	 * Empty string is returned instead of null because Velocity does not like
-	 * null when used in #set.
-	 */
-	public String genCascades(AssociationRole role) {
-		List<String> cascades = StringUtil.strToList(role.getCascade(), ',', true/* trim */);
-		if (cascades == null) {
-			return ""; //$NON-NLS-1$
-		}
-		StringBuffer buffer = new StringBuffer();
-		buffer.append( '{' );
-		for (int i = 0, n = cascades.size(); i < n; ++i) {
-			String cascade = cascades.get(i);
-			String enumStr;
-			if (cascade.equals(TagNames.ALL_CASCADE)) {
-				enumStr = "CascadeType.ALL"; //$NON-NLS-1$
-			}
-			else if (cascade.equals(TagNames.PERSIST_CASCADE)) {
-				enumStr = "CascadeType.PERSIST"; //$NON-NLS-1$
-			}
-			else if (cascade.equals(TagNames.MERGE_CASCADE)) {
-				enumStr = "CascadeType.MERGE"; //$NON-NLS-1$
-			}
-			else if (cascade.equals(TagNames.REMOVE_CASCADE)) {
-				enumStr = "CascadeType.REMOVE"; //$NON-NLS-1$
-			}
-			else {
-				assert (cascade.equals(TagNames.REFRESH_CASCADE));
-				enumStr = "CascadeType.REFRESH"; //$NON-NLS-1$
-			}
-			if (i != 0) {
-				buffer.append(", "); //$NON-NLS-1$
-			}
-			buffer.append(enumStr);
-		}
-		buffer.append('}');
-		return buffer.toString();
-	}
-
-	/**
-	 * Returns the fetch type annotation member value, or empty string if none.
-	 * Empty string is returned instead of null because Velocity does not like
-	 * null when used in #set.
-	 */
-	@Override
-	public String genFetch(ORMGenTable table) {
-		String fetch = table.getDefaultFetch();
-		if (fetch == null || ORMGenTable.DEFAULT_FETCH.equals(fetch)) {
-			return ""; //$NON-NLS-1$
-		}
-		else if (fetch.equals(ORMGenTable.LAZY_FETCH)) {
-			return "FetchType.LAZY"; //$NON-NLS-1$
-		}
-		else {
-			return "FetchType.EAGER"; //$NON-NLS-1$
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/DatabaseAnnotationNameBuilder.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/DatabaseAnnotationNameBuilder.java
deleted file mode 100644
index 630142a..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/DatabaseAnnotationNameBuilder.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Table;
-
-
-/**
- * Provide a pluggable way to determine whether and how the entity generator
- * prints the names of various database objects.
- */
-public interface DatabaseAnnotationNameBuilder {
-
-	/**
-	 * Given the name of an entity and the table to which it is mapped,
-	 * build and return a string to be used as the value for the entity's
-	 * Table annotation's 'name' element. Return null if the entity
-	 * maps to the table by default.
-	 */
-	String buildTableAnnotationName(String entityName, Table table);
-
-	/**
-	 * Given the name of an attribute (field or property) and the column
-	 * to which it is mapped,
-	 * build and return a string to be used as the value for the attribute's
-	 * Column annotation's 'name' element. Return null if the attribute
-	 * maps to the column by default.
-	 */
-	String buildColumnAnnotationName(String attributeName, Column column);
-
-	/**
-	 * Given the name of an attribute (field or property) and the
-	 * many-to-one or many-to-many foreign key to which it is mapped,
-	 * build and return a string to be used as the value for the attribute's
-	 * JoinColumn annotation's 'name' element. Return null if the attribute
-	 * maps to the join column by default.
-	 * The specified foreign key consists of a single column pair whose
-	 * referenced column is the single-column primary key of the foreign
-	 * key's referenced table.
-	 */
-	String buildJoinColumnAnnotationName(String attributeName, ForeignKey foreignKey);
-
-	/**
-	 * Build and return a string to be used as the value for a JoinColumn
-	 * annotation's 'name' or 'referencedColumnName' element.
-	 * This is called for many-to-one and many-to-many mappings when
-	 * the default join column name and/or referenced column name are/is
-	 * not applicable.
-	 * @see buildJoinColumnAnnotationName(String, ForeignKey)
-	 */
-	String buildJoinColumnAnnotationName(Column column);
-
-	/**
-	 * Build and return a string to be used as the value for a JoinTable
-	 * annotation's 'name' element.
-	 * This is called for many-to-many mappings when the default
-	 * join table name is not applicable.
-	 */
-	String buildJoinTableAnnotationName(Table table);
-
-
-	/**
-	 * The default implementation simple returns the database object's name,
-	 * unaltered.
-	 */
-	final class Default implements DatabaseAnnotationNameBuilder {
-		public static final DatabaseAnnotationNameBuilder INSTANCE = new Default();
-		public static DatabaseAnnotationNameBuilder instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		public String buildTableAnnotationName(String entityName, Table table) {
-			return table.getName();
-		}
-		public String buildColumnAnnotationName(String attributeName, Column column) {
-			return column.getName();
-		}
-		public String buildJoinColumnAnnotationName(String attributeName, ForeignKey foreignKey) {
-			return foreignKey.getColumnPair().getBaseColumn().getName();
-		}
-		public String buildJoinColumnAnnotationName(Column column) {
-			return column.getName();
-		}
-		public String buildJoinTableAnnotationName(Table table) {
-			return table.getName();
-		}
-		@Override
-		public String toString() {
-			return "DatabaseAnnotationNameBuilder.Default";  //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptGenMessages.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptGenMessages.java
deleted file mode 100644
index 16073bc..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptGenMessages.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Localized messages used by Dali entity generation.
- */
-public class JptGenMessages {
-
-	public static String PackageGenerator_taskName;
-	public static String GenScope_taskName;
-	public static String EntityGenerator_taskName;
-	public static String Templates_notFound;
-	public static String Error_Generating_Entities;
-	public static String Delete_Folder_Error;
-	public static String Delete_File_Error;
-	public static String File_Read_Only_Error;
-
-	private static final String BUNDLE_NAME = "jpt_gen"; //$NON-NLS-1$
-	private static final Class<?> BUNDLE_CLASS = JptGenMessages.class;
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS);
-	}
-	
-	private JptGenMessages() {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptJpaGenPlugin.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptJpaGenPlugin.java
deleted file mode 100644
index d99645f..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptJpaGenPlugin.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-public class JptJpaGenPlugin {
-	public static final String PLUGIN_ID = "org.eclipse.jpt.jpa.gen";
-	public static void logException ( String msg, Throwable e ) {
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		ILog log = Platform.getLog(bundle);
-		log.log(new Status(IStatus.ERROR, PLUGIN_ID, msg, e ));		
-	}
-	
-	public static void logException( CoreException ce ) {
-		IStatus status = ce.getStatus();
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		ILog log = Platform.getLog(bundle);
-		log.log(new Status(IStatus.ERROR, PLUGIN_ID, status.getMessage(), ce));		
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java
deleted file mode 100644
index 0b56597..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Table;
-import org.eclipse.jpt.jpa.gen.internal.util.EntityGenTools;
-import org.eclipse.jpt.jpa.gen.internal.util.StringUtil;
-
-
-/**
- * Represents the ORM generation properties for a database 
- * column.
- * 
- * <p>This is designed to be created/changed by the generation wizard,
- * and generated using Velocity templates.
- * The modified properties (if any) are persisted/retrieved using 
- * <code>ORMGenCustomizer</code>.
- * 
- */
-public class ORMGenColumn
-{
-	private Table mTable;
-	private Column mDbColumn;
-	private ORMGenCustomizer mCustomizer;
-	private ORMGenTable mGenTable;
-	private static String JAVA_LANG_PACKAGE = "java.lang."; //$NON-NLS-1$
-	
-	public ORMGenColumn(Column dbColumn, ORMGenCustomizer customizer) {
-		super();
-		
-		mDbColumn = dbColumn;
-		mCustomizer = customizer;
-		mTable = dbColumn.getTable();
-	}
-	
-	public ORMGenCustomizer getCustomizer() {
-		return mCustomizer;
-	}
-	
-	public void setGenTable(ORMGenTable ormGenTable) {
-		mGenTable = ormGenTable;
-	}
-	
-	protected String customized(String propName) {
-		return getCustomizer().getProperty(propName, mTable.getName(), getName());
-	}
-	
-	protected boolean customizedBoolean(String propName) {
-		return getCustomizer().getBooleanProperty(propName, mTable.getName(), getName());
-	}
-	
-	protected void setCustomized(String propName, String value) {
-		if (value != null && value.length() == 0) {
-			value = null;
-		}
-		getCustomizer().setProperty(propName, value, mTable.getName(), getName());
-	}
-	
-	protected void setCustomizedBoolean(String propName, boolean value, boolean defaultValue) {
-		if (defaultValue == value) {
-			setCustomized(propName, null); //remove the property
-		} else {
-			getCustomizer().setBooleanProperty(propName, value, mTable.getName(), getName());
-		}
-	}
-	
-	/**
-	 * Returns the column name.
-	 */
-	public String getName() {
-		String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
-			buildColumnAnnotationName(mDbColumn.getName(), mDbColumn);
-		return annotationName != null ? annotationName : mDbColumn.getName();
-	}
-
-	public String getJoinColumnName(){
-		String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
-			buildJoinColumnAnnotationName(mDbColumn);
-		return annotationName != null ? annotationName : mDbColumn.getName();
-	}
-	
-	public Column getDbColumn() {
-		return this.mDbColumn;
-	}
-	
-	/**
-	 * Returns the generated bean property name for the given column.
-	 * Does not return null.
-	 */
-	public String getPropertyName() {
-		String name = customized(PROPERTY_NAME);
-		if (name == null) {
-			//name = StringUtil.columnNameToVarName(getName());
-			name = EntityGenTools.convertToUniqueJavaStyleAttributeName(getName(), Collections.<String>emptySet());
-		}
-		return name;
-	}
-	
-	public void setPropertyName(String name) {
-		if (!StringUtil.equalObjects(name, getPropertyName())) {
-			setCustomized(PROPERTY_NAME, name);
-		}
-	}
-	
-	/**
-	 * Return true if the values of name element in the @Column is default
-	 * so we can skip generating the annotation
-	 * 
-	 * @return true
-	 */
-	public boolean isDefault(){
-		return isDefaultname() && isUpdateable() && isInsertable();
-	}
-	
-	/**
-	 * Return true if the values of name element in the @Column is default
-	 * so we can skip generating the annotation
-	 * 
-	 * @return true
-	 */
-	public boolean isDefaultname(){
-		String propName = getPropertyName();
-//		String dbColumnName = getName();
-//		return propName.equalsIgnoreCase( dbColumnName );
-		String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
-			buildColumnAnnotationName(propName, this.mDbColumn );
-		return annotationName==null;
-	}
-
-	/**
-	 * Return true if the values of name element in the @Column is default
-	 * so we can skip generating the annotation
-	 * 
-	 * @return true
-	 */
-	public boolean isDefaultJoinColumnName(String associationRolePropName){
-		if( !this.mDbColumn.isPartOfForeignKey()){
-			return false;
-		}
-
-		Iterable<ForeignKey> it = mDbColumn.getTable().getForeignKeys();
-		Iterator<ForeignKey> i = it.iterator();
-		while( i.hasNext() ){
-			ForeignKey fk = i.next();
-			Column c = fk.getBaseColumns().iterator().next();
-			if( c.equals( this.mDbColumn ) ){
-				try{
-					String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().
-						buildJoinColumnAnnotationName(associationRolePropName, fk );
-					return annotationName==null;
-				}catch(Exception e){
-					//catch the case that referenced table has multiple primary key columns
-					return false;
-				}
-			}
-		}
-		return false;
-	}
-	
-	
-	/**
-	 * Returns the column type.
-	 * Does not return null.
-	 */
-	public String getPropertyType()  {
-		String type = customized(PROPERTY_TYPE);
-		if (type == null) {
-			type = getCustomizer().getPropertyTypeFromColumn( this.mDbColumn );
-		}
-		if( type.startsWith(JAVA_LANG_PACKAGE) ) {
-			type = type.substring( JAVA_LANG_PACKAGE.length() );
-		}
-		if( type.equals("java.sql.Date")){ //$NON-NLS-1$
-			type = "java.util.Date"; //$NON-NLS-1$
-		}
-			
-		return type;
-	}
-	
-	public String getSimplePropertyType()  {
-		return mGenTable.getSimplifiedColType( getPropertyType() );
-	}	
-	
-	public void setPropertyType(String type)  {
-		if (!StringUtil.equalObjects(type, getPropertyType())) {
-			setCustomized(PROPERTY_TYPE, type);
-		}
-	}
-	/**
-	 * Returns true if the column type is numeric.
-	 */
-	public boolean isNumeric() {
-		boolean ret = this.mDbColumn.isNumeric();
-		return ret;
-	}
-	
-	/**
-	 * Returns the mapping kind, one of {@link #PROPERTY_MAPPING_KIND}|{@link #ID_MAPPING_KIND}
-	 * |{@link #VERSION_MAPPING_KIND}|{@link #TIMESTAMP_MAPPING_KIND}.
-	 * 
-	 * This method does not return null (defaults to basic property type).
-	 */
-	public String getMappingKind() {
-		String kind = customized(MAPPING_KIND);
-		if (kind == null) {
-			kind = getCustomizer().getBasicMappingKind();
-			
-			if ( this.mDbColumn.isPartOfPrimaryKey() 
-				 && this.mDbColumn.getTable().getPrimaryKeyColumnsSize() == 1) {
-				kind = getCustomizer().getIdMappingKind();
-			}
-		}
-		return kind;
-	}
-	
-	public void setMappingKind(String mappingKind)  {
-		if (!StringUtil.equalObjects(mappingKind, getMappingKind())) {
-			setCustomized(MAPPING_KIND, mappingKind);
-		}
-	}
-	
-	public boolean isNullable() {
-		return this.mDbColumn.isNullable();
-	}
-
-	public int getSize() {
-		if ( this.mDbColumn.isNumeric()){
-			return mDbColumn.getPrecision();
-		}
-		return mDbColumn.getLength();
-	}
-
-	public int getDecimalDigits() {
-		if ( this.mDbColumn.isNumeric() ){
-			return mDbColumn.getScale();
-		}
-		return -1;
-	}
-	
-	public boolean isPrimaryKey() {
-		return this.mDbColumn.isPartOfPrimaryKey();
-	}
-	
-	public boolean isPartOfCompositePrimaryKey() {
-		return this.mDbColumn.isPartOfPrimaryKey() &&
-				this.mTable.getPrimaryKeyColumnsSize() > 1;
-	}
-	
-	public boolean isForeignKey() {
-		return this.mDbColumn.isPartOfForeignKey();
-	}
-	
-	public boolean isUnique() {
-		return this.mDbColumn.isPartOfUniqueConstraint();
-	}
-	
-	public String getPropertyDescription() {
-		return customized(PROPERTY_DESC);
-	}
-	
-	public boolean isDataTypeLOB() {
-		return this.mDbColumn.isLOB();
-	}	
-
-	public boolean isNeedMapTemporalType() {
-		String propertyType = this.getPropertyType();
-		return ( propertyType.equals("java.util.Date") || propertyType.equals("java.util.Calendar") );  //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public String getTemporalType() {
-		String defaultType = getCustomizer().getPropertyTypeFromColumn( this.mDbColumn );
-		if( defaultType.equals("java.sql.Date")){ //$NON-NLS-1$
-			return "DATE"; //$NON-NLS-1$
-		}else if( defaultType.equals("java.sql.Time")){ //$NON-NLS-1$
-			return "TIME"; //$NON-NLS-1$
-		}else {
-			return "TIMESTAMP"; //$NON-NLS-1$
-		}
-	}	
-	
-	/**
-	 * Returns the generated property getter scope, one of {@link #PUBLIC_SCOPE}|{@link #PROTECTED_SCOPE}
-	 * |{@link #PRIVATE_SCOPE}.
-	 * This method never returns null (defaults to public).
-	 */
-	public String getPropertyGetScope() {
-		String scope = customized(PROPERTY_GET_SCOPE);
-		if (scope == null) {
-			scope = PUBLIC_SCOPE;
-		}
-		return scope;
-	}
-	
-	public void setPropertyGetScope(String scope) {
-		if (!StringUtil.equalObjects(scope, getPropertyGetScope())) {
-			setCustomized(PROPERTY_GET_SCOPE, scope);
-		}
-	}
-	
-	/**
-	 * Returns the generated property setter scope, one of {@link #PUBLIC_SCOPE}|{@link #PROTECTED_SCOPE}
-	 * |{@link #PRIVATE_SCOPE}.
-	 * This method never returns null (defaults to public).
-	 */
-	public String getPropertySetScope() {
-		String scope = customized(PROPERTY_SET_SCOPE);
-		if (scope == null) {
-			scope = PUBLIC_SCOPE;
-		}
-		return scope;
-	}
-	
-	public void setPropertySetScope(String scope) {
-		if (!StringUtil.equalObjects(scope, getPropertySetScope())) {
-			setCustomized(PROPERTY_SET_SCOPE, scope);
-		}
-	}
-	
-	/**
-	 * Returns the generated field member scope, one of {@link #PUBLIC_SCOPE}|{@link #PROTECTED_SCOPE}
-	 * |{@link #PRIVATE_SCOPE}.
-	 * This method never returns null (defaults to private).
-	 */
-	public String getFieldScope() {
-		String scope = customized(FIELD_SCOPE);
-		if (scope == null) {
-			scope = PRIVATE_SCOPE;
-		}
-		return scope;
-	}
-	
-	/**
-	 * Returns true if this column should be used in the 
-	 * <code>equals</code> method implementation.
-	 */
-	public boolean isUseInEquals()  {
-		return customizedBoolean(USE_IN_EQUALS) || isPrimaryKey();
-	}
-	
-	public void setUseInEquals(boolean value) {
-		setCustomizedBoolean(USE_IN_EQUALS, value, false);
-	}
-	
-	/**
-	 * Returns true if this column should be used in the 
-	 * <code>toString</code> method implementation.
-	 */
-	public boolean isUseInToString()  {
-		return customizedBoolean(USE_IN_TO_STRING) || isPrimaryKey();
-	}
-	
-	public void setUseInToString(boolean value) {
-		setCustomizedBoolean(USE_IN_TO_STRING, value, false);
-	}
-	
-	public boolean isUpdateable() {
-		return !"false".equals(customized(UPDATEABLE)); //defaults to true //$NON-NLS-1$
-	}
-	
-	public void setUpdateable(boolean value) {
-		setCustomizedBoolean(UPDATEABLE, value, true);
-	}
-	
-	public boolean isInsertable() {
-		return !"false".equals(customized(INSERTABLE)); //defaults to true //$NON-NLS-1$
-	}
-	
-	public void setInsertable(boolean value) {
-		setCustomizedBoolean(INSERTABLE, value, true);
-	}
-	
-	public boolean isGenerated() {
-		return !"false".equals(customized(GENERATED)); //defaults to true //$NON-NLS-1$
-	}
-	
-	public void setGenerated(boolean value) {
-		setCustomizedBoolean(GENERATED, value, true);
-	}
-	
-	@Override
-	public String toString() {
-		return "name=" + getName() + "; type=" + getPropertyType() ; //$NON-NLS-1$ //$NON-NLS-2$ 
-	}
-
-	/*get/set and field scopes*/
-	public static final String PUBLIC_SCOPE = "public"; //$NON-NLS-1$
-	public static final String PROTECTED_SCOPE = "protected"; //$NON-NLS-1$
-	public static final String PRIVATE_SCOPE = "private"; //$NON-NLS-1$
-
-	/*customization properties*/
-	private static final String PROPERTY_NAME = "propertyName"; //$NON-NLS-1$
-	protected static final String PROPERTY_TYPE = "propertyType"; //$NON-NLS-1$
-	protected static final String MAPPING_KIND = "mappingKind"; //$NON-NLS-1$
-	private static final String PROPERTY_DESC = "propertyDesc"; //$NON-NLS-1$
-	private static final String PROPERTY_GET_SCOPE = "propertyGetScope"; //$NON-NLS-1$
-	private static final String PROPERTY_SET_SCOPE = "propertySetScope"; //$NON-NLS-1$
-	private static final String FIELD_SCOPE = "fieldScope"; //$NON-NLS-1$
-	private static final String USE_IN_EQUALS = "useInEquals"; //$NON-NLS-1$
-	private static final String USE_IN_TO_STRING = "useInToString"; //$NON-NLS-1$
-	private static final String UPDATEABLE = "updateable"; //$NON-NLS-1$
-	private static final String INSERTABLE = "insertable"; //$NON-NLS-1$
-	private static final String GENERATED = "genProperty"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java
deleted file mode 100644
index cba675e..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java
+++ /dev/null
@@ -1,820 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-import org.eclipse.jpt.jpa.gen.internal.util.DTPUtil;
-import org.eclipse.jpt.jpa.gen.internal.util.FileUtil;
-import org.eclipse.jpt.jpa.gen.internal.util.ForeignKeyInfo;
-import org.eclipse.jpt.jpa.gen.internal.util.StringUtil;
-
-/**
- * Contains the information used to customize the database schema to ORM entity 
- * generation.
- * 
- * <p>The customization settings are mainly exposed in the form of 
- * properties. There are no assumptions in this class about the meaning of the 
- * property names. Properties can be associated to specific tables and table 
- * columns, or globally for any table and/or column.
- * 
- * <p>Subclass can implement the sets of abstract methods to provide ORM vendor
- * specific properties.
- * 
- */
-public abstract class ORMGenCustomizer implements java.io.Serializable
-{
-	private final static long serialVersionUID = 1;
-
-	/**
-	 * A value passed for the table name argument to get/setProperty 
-	 * indicating that the value applies to any table.
-	 */
-	public static final String ANY_TABLE = "__anyTable__";
-	public static final String GENERATE_DDL_ANNOTATION = "generateDDLAnnotations";
-	/*the string used in the property name in mProps to indicate 
-	 * a null table value.*/
-	private static final String NULL_TABLE = "";
-	/*the string used in the property name in mProps to indicate 
-	 * a null column value.*/
-	private static final String NULL_COLUMN = "";
-	
-	/*This version number is written in the header of the customization stream
-	 * and read at de-serialization time, if it is different then the file is invalidated.
-	 */
-	private static final int FILE_VERSION = 2;
-	
-	private static final String UPDATE_CONFIG_FILE = "updateConfigFile";
-
-	private transient Schema mSchema;
-	private transient File mFile;
-	
-	private List<String> mTableNames;
-	/*key: table name, value: ORMGenTable object.*/
-	private transient Map<String , ORMGenTable> mTables;
-	/*the <code>Association</code> objects sorted by their "from" 
-	 * table name. Includes all association derived from foreign keys 
-	 * in user selected tables. Since some of the foreign keys may point to table
-	 * user does not select, this list may be different from  mValidAssociations
-	 */
-	private List<Association> mAssociations;
-	/*
-	 * List of valid associations within the user selected tables  
-	 */
-	private transient List<Association> mValidAssociations;
-	private transient boolean mInvalidForeignAssociations;
-	
-	/*the property name is in the form $tableName.$columnName.$propertyName.
-	 * Where tableName could be NULL_TABLE or ANY_TABLE
-	 * and columnName could be NULL_COLUMN*/
-	private Map<String, String> mProps = new java.util.HashMap<String, String>();
-
-	private transient DatabaseAnnotationNameBuilder databaseAnnotationNameBuilder = DatabaseAnnotationNameBuilder.Default.INSTANCE;
-
-	private boolean mUpdatePersistenceXml = true;
-	
-	//-----------------------------------------
-	//---- abstract methods
-	//-----------------------------------------
-	/**
-	 * Returns all the primary key generator schemes.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract List<String> getAllIdGenerators();
-	/**
-	 * Returns the string representing the developer-assigned id generator.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String getNoIdGenerator();
-	/**
-	 * Returns the string representing the identity id generator.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String getIdentityIdGenerator();
-	/**
-	 * Returns the strings representing the sequence generators.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract Set<String> getSequenceIdGenerators();
-	/**
-	 * Returns a property type from the given database column.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String getPropertyTypeFromColumn(Column column) ;
-	/**
-	 * Returns all the strings representing property types.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String[] getAllPropertyTypes();
-	/**
-	 * Returns all the strings representing property mapping kinds.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String[] getAllMappingKinds();
-	/**
-	 * Returns the basic (default) property mapping kind.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String getBasicMappingKind();
-	/**
-	 * Returns the id (primary key) property mapping kind.
-	 * This can return any strings as far as the Velocity template 
-	 * processor understand them.
-	 */
-	public abstract String getIdMappingKind();
-	/**
-	 * Interacts with the user to edit the cascade of the given 
-	 * role.
-	 * This method should also call <code>AssociationRole.setCascade</code>.
-	 * 
-	 * @return false if the user interaction is cancelled.
-	 */
-	public abstract boolean editCascade(AssociationRole role);
-	
-	//-----------------------------------------
-	//-----------------------------------------
-
-	/**
-	 * @param file The file that contains the customization settings.
-	 * The file is created if necessary when the <code>save</code> 
-	 * method is called.
-	 */
-	public void init( File file, Schema schema) {
-		this.mSchema = schema;
-		mFile = file;
-		
-		if (!file.exists()) {
-			setProperty(ORMGenTable.DEFAULT_FETCH, ORMGenTable.DEFAULT_FETCH, ORMGenCustomizer.ANY_TABLE, null);
-			return;
-		}
-		InputStream istream = null;
-		ObjectInputStream ois = null;
-		try 
-		{
-			//read it in a file first to speedup deserialization
-			byte[] bytes = FileUtil.readFile(file);
-			istream = new ByteArrayInputStream(bytes);
-			ois = new ObjectInputStream(istream);
-			
-			FileHeader header = (FileHeader)ois.readObject();
-			if (header.mVersion == FILE_VERSION) {
-				ORMGenCustomizer customizer = (ORMGenCustomizer)ois.readObject();
-				restore(customizer);
-			}
-		} catch (Exception ex) {
-			JptJpaGenPlugin.logException("***ORMGenCustomizer.load failed "+file, ex);				
-		}
-		finally 
-		{
-			if (ois != null)
-			{
-				try 
-				{
-					ois.close();
-				} catch (IOException e) {
-				}
-			}
-			
-			if (istream != null)
-			{
-				try 
-				{
-					istream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-	
-	public File getFile(){
-		return this.mFile;
-	}
-	
-	public void setSchema(Schema schema){
-		this.mSchema = schema;
-	}
-
-	public Schema getSchema(){
-		return mSchema;
-	}
-	
-	/**
-	 * Empty constructor needed by the deserialization.
-	 */
-	public ORMGenCustomizer() {
-		super();
-	}
-
-	/**
-	 * Saves the customization file.
-	 * The file is created if necessary.
-	 */
-	public void save() throws IOException {
-		//System.out.println("---ORMGenCustomizer.save: " + mFile);
-		if (!mFile.exists() && !mFile.createNewFile()) {
-			return;
-		}
-		java.io.FileOutputStream fos = null;
-		java.io.ObjectOutputStream oos = null;
-		boolean deleteIt = true;
-		try {
-			fos = new java.io.FileOutputStream(mFile);
-			oos = new java.io.ObjectOutputStream(fos);
-			FileHeader header = new FileHeader();
-			oos.writeObject(header);
-			oos.writeObject(this);
-			deleteIt = false;
-		} catch (Exception ex) {
-			//deleteIt is true, so the cache is not saved.
-			CoreException ce = new CoreException(new Status(IStatus.ERROR, JptJpaGenPlugin.PLUGIN_ID,
-					"Unable to save the ORMGenCustomizer file: "+mFile,ex));
-			JptJpaGenPlugin.logException( ce );
-		} finally {
-			try {
-				if (oos!=null) oos.close();
-				if (fos!=null) fos.close();
-				if (deleteIt) {
-					mFile.delete();
-				}
-			} catch (java.io.IOException ex2) {}	
-		}
-	}
-	
-	public DatabaseAnnotationNameBuilder getDatabaseAnnotationNameBuilder() {
-		return this.databaseAnnotationNameBuilder;
-	}
-	public void setDatabaseAnnotationNameBuilder(DatabaseAnnotationNameBuilder databaseAnnotationNameBuilder) {
-		if (databaseAnnotationNameBuilder == null) {
-			throw new NullPointerException("database annotation name builder is required");  //$NON-NLS-1$
-		}
-		this.databaseAnnotationNameBuilder = databaseAnnotationNameBuilder;
-	}	
-
-	/**
-	 * Returns {@link #GENERATE_DDL_ANNOTATION}  indicating whether
-	 * the optional DDL parameters like length, nullable, unqiue, etc should be generated 
-	 * in @Column annotation.
-	 * defaults to false.
-	 */
-	public boolean isGenerateDDLAnnotations() {
-		return "true".equals(getProperty(GENERATE_DDL_ANNOTATION, ANY_TABLE, null)); //defaults to false
-	}
-
-	/**
-	 * Returns a property value.
-	 */
-	public String getProperty(String propertyName, String tableName, String colName) {
-		String key = getPropKey(propertyName, tableName, colName);
-		String value = mProps.get(key);
-		/*if the key does not exist and it is a table property then 
-		 * get the default table property.*/
-		if (value == null && tableName != null && colName == null && !tableName.equals(ANY_TABLE)) {
-			value = getProperty(propertyName, ANY_TABLE, colName);
-		}
-		return value;
-	}
-	/**
-	 * Changes a property value.
-	 * 
-	 * @param value The new value, could be null.
-	 */
-	public void setProperty(String propertyName, String value, String tableName, String colName) {
-		String key = getPropKey(propertyName, tableName, colName);
-		if (value != null) {
-			mProps.put(key, value);
-		} else {
-			mProps.remove(key);
-		}
-	}
-	/**
-	 * Same as {@link #getProperty(String, String, String)} but 
-	 * converts the value to boolean.
-	 */
-	public boolean getBooleanProperty(String propertyName, String tableName, String colName) {
-		String value = getProperty(propertyName, tableName, colName);
-		return "true".equals(value);
-	}
-	/**
-	 * Changes a table boolean property value.
-	 */
-	public void setBooleanProperty(String propertyName, boolean value, String tableName, String colName) {
-		setProperty(propertyName, value ? "true" : "false", tableName, colName);
-	}
-	/**
-	 * Returns the names of the tables to generate.
-	 */
-	@SuppressWarnings("unchecked")
-	public List<String> getTableNames() {
-		return mTableNames != null ? mTableNames : java.util.Collections.EMPTY_LIST;
-	}
-	
-	/**
-	 * Returns the fetch type annotation member value, or empty string 
-	 * if none.
-	 * Empty string is returned instead of null because Velocity does not like null 
-	 * when used in #set.
-	 */
-	public String genFetch(ORMGenTable table) {
-		return "";
-	}	
-	/**
-	 * Called when the table user selection is changed in the 
-	 * generation wizard.
-	 */
-	public void setTableNames(List<String> tableNames) {
-		mTableNames = tableNames;
-		mTables = null;
-		mValidAssociations = null; //recompute
-		mInvalidForeignAssociations = true; //make sure foreign associations from newly added tables are computed.
-	}
-	/**
-	 * Returns the table names to be generated.
-	 * This might be different from <code>getTableNames</code> if there 
-	 * are many-to-many join tables and are not contributing 
-	 * in any other associations.
-	 */
-	public List<String> getGenTableNames()  {
-		List<String> names = getTableNames();
-		List<String> result = new java.util.ArrayList<String>(names.size());
-		
-		/*filter out join tables*/
-		List<Association> associations = getAssociations();
-		for (Iterator<String> tableNamesIter = names.iterator(); tableNamesIter.hasNext(); ) {
-			String tableName = tableNamesIter.next();
-			boolean isValid = true;
-			
-			for (Iterator<Association> assocIter = associations.iterator(); assocIter.hasNext(); ) {
-				Association association = assocIter.next();
-				if (!association.isGenerated()) {
-					continue;
-				}
-				if (tableName.equals(association.getReferrerTableName())
-						|| tableName.equals(association.getReferencedTableName())) {
-					isValid = true;
-					break;
-				}
-				if (tableName.equals(association.getJoinTableName())) {
-					isValid = false;
-				}
-			}
-			if (isValid) {
-				result.add(tableName);
-			}
-		}
-		return result;
-	}
-	/**
-	 * Returns an <code>ORMGenTable</code> object given its name, or 
-	 * null if none.
-	 */
-	public ORMGenTable getTable(String tableName)  {
-		if (mTables == null) {
-			mTables = new java.util.HashMap<String, ORMGenTable>(mTableNames.size());
-		}
-		
-		if(mTableNames!=null && mSchema!=null){
-			for (Iterator<String> iter = mTableNames.iterator(); iter.hasNext(); ) {
-				String name = iter.next();
-				Table dbTable = mSchema.getTableNamed( name );
-				if (dbTable != null) {
-					mTables.put(name, createGenTable(dbTable));
-				}
-			}
-		}
-		return mTables.get(tableName);
-	}
-	/**
-	 * Returns the <code>Association</code> objects sorted by their "from" 
-	 * table name.
-	 */
-	public List<Association> getAssociations(){
-		return getAssociations(true/*validOnly*/);
-	}
-	/**
-	 * Adds the given association.
-	 */
-	public void addAssociation(Association association)  {
-		getAssociations(false/*validOnly*/).add(association);
-		if (mValidAssociations != null) {
-			mValidAssociations.add(association);
-		}
-		
-	}
-	/**
-	 * Deletes the given association.
-	 */
-	public void deleteAssociation(Association association)  {
-		boolean removed = getAssociations(false/*validOnly*/).remove(association);
-		assert(removed);
-		
-		if (mValidAssociations != null) {
-			removed = mValidAssociations.remove(association);
-			assert(removed);
-		}
-	}
-	/**
-	 * Returns true if an association similar to the given association 
-	 * already exists.
-	 * This is decided based only on the association tables and columns.
-	 */
-	public boolean similarAssociationExists(Association association) {
-		try {
-			for (Iterator<Association> iter = getAssociations(false/*validOnly*/).iterator(); iter.hasNext(); ) {
-				Association association2 = iter.next();
-				if (!association.getReferrerTableName().equals(association2.getReferrerTableName())
-						|| !association.getReferencedTableName().equals(association2.getReferencedTableName())
-						|| !StringUtil.equalObjects(association.getJoinTableName(), association2.getJoinTableName())
-						|| !association.getReferrerColumnNames().equals(association2.getReferrerColumnNames())
-						|| !association.getReferencedColumnNames().equals(association2.getReferencedColumnNames())
-						) {
-					continue;
-				}					
-				/*the 2 association have the same referrer, referenced and join table*/
-				if (association.getJoinTableName() == null) {
-					return true;
-				}
-				if (association.getReferrerJoinColumnNames().equals(association2.getReferrerJoinColumnNames())
-						&& association.getReferencedJoinColumnNames().equals(association2.getReferencedJoinColumnNames())) {
-					return true;
-				}
-			}
-		} catch (Exception e) {
-			return false;
-		}
-		return false;
-	}
-	/**
-	 * Creates the <code>ORMGenTable</code> instance. 
-	 */
-	public ORMGenTable createGenTable(Table dbTable) {
-		return new ORMGenTable(dbTable, this);
-	}
-	/**
-	 * Creates the <code>ORMGenColumn</code> instance.
-	 */
-	protected ORMGenColumn createGenColumn(Column dbCol) {
-		return new ORMGenColumn(dbCol, this);
-	}
-	/**
-	 * Returns true of the underlying persistence specs require the "many" side 
-	 * of an association to be the owner (like EJB3).
-	 */
-	protected boolean manySideIsAssociationOwner() {
-		return false;
-	}
-	public boolean isUpdateConfigFile() {
-		return !"false".equals(getProperty(UPDATE_CONFIG_FILE, null, null)); //defaults to true
-	}
-	public void setUpdateConfigFile(boolean value) {
-		if (value) { //default is true
-			setProperty(UPDATE_CONFIG_FILE, null, null, null); //remove it
-		} else {
-			setBooleanProperty(UPDATE_CONFIG_FILE, value, null, null);
-		}
-	}
-
-	//-----------------------------------------
-	//---- Velocity templates methods
-	//-----------------------------------------
-	/**
-	 * Returns a getter method name given a property name.
-	 */
-	public String propertyGetter(String propertyName) {
-		return "get"+StringUtil.initUpper(propertyName);
-	}
-	/**
-	 * Returns a setter method name given a property name.
-	 */
-	public String propertySetter(String propertyName) {
-		return "set"+StringUtil.initUpper(propertyName);
-	}
-	public String quote(String s) {
-		return StringUtil.quote(s, '"');
-	}
-	public String quote(boolean b) {
-		return quote(String.valueOf(b));
-	}
-	public String quote(int i) {
-		return quote(String.valueOf(i));
-	}
-	/**
-	 * Appends an annotation member name and value to an existing annotation.
-	 * 
-	 * @param s The annotation members string.
-	 *
-	 * @param memberValue The member value, if null or empty strings then 
-	 * nothing is appened.
-	 * 
-	 * @param whether to double quote the member value.
-	 */
-	public String appendAnnotation(String s, String memberName, String memberValue, boolean quote) {
-		if (memberValue == null || memberValue.length() == 0) {
-			return s;
-		}
-		StringBuffer buffer = new StringBuffer(s);
-		if (buffer.length() != 0) {
-			buffer.append(", ");
-		}
-		buffer.append(memberName);
-		buffer.append('=');
-		if (quote) {
-			buffer.append('"');
-		}
-		buffer.append(memberValue);
-		if (quote) {
-			buffer.append('"');
-		}
-		return buffer.toString();
-	}
-	public boolean isJDK1_5() {
-		return true;
-	}
-	
-	//-----------------------------------------
-	//---- private methods
-	//-----------------------------------------
-	/**
-	 * Restores the customization settings from the given 
-	 * (persisted) customizer.
-	 */
-	private void restore(ORMGenCustomizer customizer)  {
-		mTableNames = customizer.mTableNames;
-		mAssociations = customizer.mAssociations;
-		mProps = customizer.mProps;
-		mUpdatePersistenceXml = customizer.mUpdatePersistenceXml;
-		if( mSchema == null )
-			return;
-		
-		/*remove invalid table names*/
-		for (int i = mTableNames.size()-1; i >= 0; --i) {
-			String tableName = mTableNames.get(i);
-			if (mSchema.getTableNamed( tableName) == null) {
-				mTableNames.remove(i);
-			}
-		}
-		if( mAssociations!=null ){
-			/*restore the associations*/
-			for (Iterator<Association> iter = mAssociations.iterator(); iter.hasNext(); ) {
-				Association association = iter.next();
-				association.restore(this);
-			}
-			/*add the foreign keys associations just in case the tables changed since 
-			 * the last time the state was persisted. Pass checkExisting true so that the 
-			 * associations restored above are not overwritten.*/
-			addForeignKeyAssociations(true/*checkExisting*/);
-			// sort on restore
-			sortAssociations( mAssociations );
-		}
-	}
-	/**
-	 * Returns the key in mProps corresponding to the specified 
-	 * propertyName, table and column.
-	 */
-	private String getPropKey(String propertyName, String tableName, String colName) {
-		if (tableName == null) {
-			tableName = NULL_TABLE;
-		}
-		if (colName == null) {
-			colName = NULL_COLUMN;
-		}
-		return tableName + '.' + colName + '.' + propertyName;
-	}
-	/**
-	 * Returns the associations that are valid for the 
-	 * current tables.
-	 */
-	private List<Association> getAssociations(boolean validOnly){
-		if (mAssociations == null) {
-			mAssociations = new java.util.ArrayList<Association>();
-			
-			addForeignKeyAssociations(false/*checkExisting*/);
-		} else if (mInvalidForeignAssociations) {
-			mInvalidForeignAssociations = false;
-			
-			addForeignKeyAssociations(true/*checkExisting*/);
-		}
-		List<Association> associations;
-		if (validOnly) {
-			if (mValidAssociations == null) {
-				/*filter out the invalid associations*/
-				mValidAssociations = new ArrayList<Association>(mAssociations.size());
-				for (int i = 0, n = mAssociations.size(); i < n; ++i) {
-					Association association = mAssociations.get(i);
-					if (association.isValid()) {
-						mValidAssociations.add(association);
-					}
-				}
-			}
-			associations = mValidAssociations;
-		} else {
-			associations = mAssociations;
-		}
-		return associations;
-	}
-	private void addForeignKeyAssociations(boolean checkExisting) {
-		List<String> tableNames = getTableNames();
-		for (Iterator<String> iter = tableNames.iterator(); iter.hasNext(); ) {
-			ORMGenTable table = getTable(iter.next());
-			addForeignKeyAssociations(table, checkExisting);
-		}
-	}
-	private void addForeignKeyAssociations(ORMGenTable table, boolean checkExisting) {
-		if(table==null)
-			return;
-		
-		
-		List<ForeignKeyInfo> fKeys = null;
-		
-		try{
-			fKeys = DTPUtil.getForeignKeys(table.getDbTable());
-		}catch(Exception ise){
-			//workaround Dali bug for now
-			return;
-		}
-		
-		if( fKeys.size()==0 )
-			return;
-		
-		List<Association> addedAssociations = new java.util.ArrayList<Association>();
-		for (Iterator<ForeignKeyInfo> iter = fKeys.iterator(); iter.hasNext(); ) {
-			ForeignKeyInfo fki = iter.next();
-			ORMGenTable referencedTable = getTable(fki.getReferencedTableName());
-			if (referencedTable == null) {
-				continue;
-			}
-			Association association = new Association(this, table.getName(), fki.getReferrerColumnNames()
-						, referencedTable.getName(), fki.getReferencedColumnNames());
-			association.computeCardinality();
-			//Defer the check of similarAssociationExists after computeManyToMany()
-			//otherwise the MTM association will not computed correctly in some cases.
-			//if (checkExisting && similarAssociationExists(association)) {
-			//	continue;
-			//}
-			addedAssociations.add(association);
-		}
-		
-		Association m2m = computeManyToMany(table, addedAssociations);
-		if (m2m != null) {
-			/*do not generate the 2 many-to-one*/
-			addedAssociations.clear();
-			addedAssociations.add(0, m2m);
-		}
-		//remove the association if already existing
-		Iterator<Association> it =  addedAssociations.iterator(); 
-		while( it.hasNext() ){
-			Association newAssociation = it.next();
-			for( Association association : mAssociations ){
-				if( newAssociation.equals( association )){
-					it.remove();
-					break;
-				}
-			}
-		}
-		mAssociations.addAll(addedAssociations);
-	}
-	private Association computeManyToMany(ORMGenTable table, List<Association> addedAssociations) {
-		/** many-to-many associations if:
-		 * - addedAssociations contains 2 many-to-one associations
-		 * - tables t1 and t2 does NOT have to be different( for self-MTM-self situation)
-		 * - <code>table</code> contains only the foreign key columns.
-		 * 
-		 * Note: following restrictions have been removed:
-		 * -table has only two columns
-		 * -t1 and t2 must be different
-		 * -the primary key of <code>table</code> is the concatenation of its foreign 
-		 * 	keys to t1 and t2.*/
-		
-		if (addedAssociations.size() != 2) {
-			return null;
-		}
-		
-		//MTM table should have two MTO relations to orginal tables
-		Association assoc1 = addedAssociations.get(0);
-		Association assoc2 = addedAssociations.get(1);
-		if (assoc1.getCardinality() != Association.MANY_TO_ONE
-				|| assoc2.getCardinality() != Association.MANY_TO_ONE) {
-			return null;
-		}
-
-		//MTM table should only include foreign key columns
-		for( ORMGenColumn col : table.getColumns()){
-			if( !col.isForeignKey())
-				return null;
-		}
-		
-
-		ORMGenTable t1 = assoc1.getReferencedTable();
-		ORMGenTable t2 = assoc2.getReferencedTable();
-
-		if( t1.getName().equals(table.getName()) || t2.getName().equals(table.getName()) ) {
-			return null;
-		}
-
-		//Make a guess which table is the owning side of the MTM relation
-		//See https://bugs.eclipse.org/bugs/show_bug.cgi?id=268445
-		//Logic borrowed from DTPTableWrapper.getJoinTableOwningForeignKey()
-		if( !table.getName().equals(t1.getName() + "_" + t2.getName() ) ) {
-			//swap t1 and t2  
-			ORMGenTable t3 = t1;
-			t1=t2;
-			t2=t3;
-			//swap assoc1 and assoc2
-			Association assoc3=assoc1;
-			assoc1=assoc2;
-			assoc2=assoc3;
-		}
-		
-//Commented out because the assumption is too restrictive: 
-//this check will prevent generating MTM mapping table not having 
-//primary key defined 		
-//		List pkNames = DTPUtil.getPrimaryKeyColumnNames(table.getDbTable());
-//		if (pkNames.size() != table.getColumnNames().size()) {
-//			return null;
-//		}
-//		List fkNames = new java.util.ArrayList(assoc1.getReferrerColumnNames()); //clone because we modify by addAll below
-//		fkNames.addAll(assoc2.getReferrerColumnNames());
-//		if (!CollectionUtil.equalsIgnoreOrder(pkNames, fkNames)) {
-//			return null;
-//		}
-		Association m2m = new Association(this, t1.getName()/*referrerTableName*/, assoc1.getReferencedColumnNames()/*referrerColNames*/
-				, t2.getName()/*referencedTableName*/, assoc2.getReferencedColumnNames()/*referencedColNames*/
-				, table.getName(), assoc1.getReferrerColumnNames()/*referrerJoinColNames*/, assoc2.getReferrerColumnNames()/*referencedJoinColNames*/);
-		m2m.setCustom(false);
-		return m2m;
-	}
-
-	//---------------------------------------------------
-	//---- FileHeader class -----------------------------
-	//---------------------------------------------------
-	/**
-	 * The header of the customization file.
-	 */
-	private static class FileHeader implements java.io.Serializable
-	{
-		private static final long serialVersionUID = 1L;
-		/**
-		 * Should be argument-less because it is used in 
-		 * the de-serialization process.
-		 */
-		public FileHeader() {
-			mVersion = FILE_VERSION;
-		}
-		int mVersion;
-	}
-	
-	private void sortAssociations( List< Association > list ) {
-	   Collections.sort( list, new Comparator< Association >() {
-	      public int compare( Association lhs, Association rhs ) {
-	         // sort by referrer table name first...
-	         int test = lhs.getReferrerTableName().compareTo( rhs.getReferrerTableName() );
-            if( test != 0 )
-               return test;
-            // then by referenced table name...
-            test = lhs.getReferencedTableName().compareTo( rhs.getReferencedTableName() );
-            if( test != 0 )
-               return test;
-            // if referrer and referenced tables are the same, they should
-            // appear next to each other
-            return 0;
-	      }
-	   } );
-	}
-	public boolean updatePersistenceXml() {
-		return mUpdatePersistenceXml;
-	}
-	public void setUpdatePersistenceXml(boolean updatePersistenceXml) {
-		this.mUpdatePersistenceXml = updatePersistenceXml;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java
deleted file mode 100644
index 8557b03..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.common.utility.JavaType;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.Table;
-import org.eclipse.jpt.jpa.gen.internal.util.DTPUtil;
-import org.eclipse.jpt.jpa.gen.internal.util.EntityGenTools;
-import org.eclipse.jpt.jpa.gen.internal.util.StringUtil;
-
-/**
- * Represents the ORM generation properties for a database table.
- * 
- * <p>
- * This is designed to be created/changed by the generation wizard, and
- * generated using Velocity templates. The modified properties (if any) are
- * persisted/retrieved using <code>ORMGenCustomizer</code>.
- * 
- */
-public class ORMGenTable
-{
-	private ORMGenCustomizer mCustomizer;
-	private List<ORMGenColumn> mColumns;
-	private Table mDbTable;
-	private HashMap<String, String> columnTypesMap =  null;
-	/**
-	 * @param table
-	 *            The database table or null if this table is used to get/set
-	 *            the default table properties (properties that apply to all
-	 *            tables unless overriden).
-	 */
-	public ORMGenTable(Table table, ORMGenCustomizer customizer) {
-		super();
-		mDbTable = table;
-		mCustomizer = customizer;
-	}
-
-	public ORMGenCustomizer getCustomizer() {
-		return mCustomizer;
-	}
-
-	/**
-	 * Returns true if this table is is used to get/set the default table
-	 * properties.
-	 */
-	public boolean isDefaultsTable() {
-		return mDbTable == null;
-	}
-
-	protected String customized(String propName) {
-		return getCustomizer().getProperty(propName, getName(), null);
-	}
-
-	protected boolean customizedBoolean(String propName) {
-		return getCustomizer().getBooleanProperty(propName, getName(), null);
-	}
-
-	protected void setCustomized(String propName, String value) {
-		if (value != null && value.length() == 0) {
-			value = null;
-		}
-		getCustomizer().setProperty(propName, value, getName(), null);
-	}
-
-	protected void setCustomizedBoolean(String propName, boolean value, boolean defaultValue) {
-		if (defaultValue == value) {
-			setCustomized(propName, null); // remove the property
-		}
-		else {
-			getCustomizer().setBooleanProperty(propName, value, getName(), null);
-		}
-	}
-
-	public Table getDbTable() {
-		return mDbTable;
-	}
-
-	/**
-	 * Returns the table name.
-	 */
-	public String getName() {
-		if (mDbTable == null)
-			return ORMGenCustomizer.ANY_TABLE;
-		return mDbTable.getName();
-	}
-
-	public String getJoinTableAnnotationName() {
-		if (mDbTable == null)
-			return ORMGenCustomizer.ANY_TABLE;
-		String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().buildJoinTableAnnotationName(mDbTable);
-		return annotationName != null ? annotationName : mDbTable.getName();
-	}
-
-	/**
-	 * Returns the database schema containing the table.
-	 */
-	public String getSchema() {
-		if (DTPUtil.isDefaultSchema(mDbTable) || mDbTable.getSchema()==null)
-			return ""; //$NON-NLS-1$
-		String schemaName = mDbTable.getSchema().getName();
-		return schemaName;
-	}
-
-	public void setSourceFolder(String srcFolder){
-		setCustomized(SRC_FOLDER, srcFolder);
-	}
-	
-	public String getSourceFolder(){
-		String srcFolder = customized(SRC_FOLDER);
-		return srcFolder == null ? "" : srcFolder;
-	}
-	
-	public String getImportStatements(){
-		buildColumnTypesMap();
-		Collection<String> packages = columnTypesMap.keySet();
-		StringBuilder ret = new StringBuilder();
-		for ( String s : packages ) {
-			ret.append( "import " + s + ";\n"); //$NON-NLS-1$
-		}
-
-		List<AssociationRole> associationRoles = getAssociationRoles();
-		for ( AssociationRole role :  associationRoles ) {
-			if ( role.getCardinality().equals( Association.ONE_TO_MANY )
-					|| role.getCardinality().equals( Association.MANY_TO_MANY ) ) {
-				ret.append( "import " + getDefaultCollectionType() + ";\n"); //$NON-NLS-1$
-				break;
-			}
-		}
-		
-		return ret.toString();
-	}
-	
-	/**
-	 * Construct import statements for types from javax.persistence package
-	 * @return
-	 */
-	private String getJavaxPersistenceImportStatements() {
-		StringBuilder ret = new StringBuilder();
-		ret.append( "import javax.persistence.Entity;\n"); //$NON-NLS-1$
-		//TODO: only if @Columns is needed
-		ret.append( "import javax.persistence.Column;\n");//$NON-NLS-1$
-		//TODO: only if there is @Id
-		ret.append( "import javax.persistence.Id;\n");//$NON-NLS-1$
-		if( !this.isDefaultname() )
-			ret.append( "import javax.persistence.Table;\n");//$NON-NLS-1$
-		if( this.isCompositeKey() )
-			ret.append( "import javax.persistence.EmbeddedId;\n"); //$NON-NLS-1$
-		// append javax.persistence package imports
-		HashSet<String> jpaImports = new HashSet<String>(); 
-		List<AssociationRole> associationRoles = getAssociationRoles();
-		for( AssociationRole role :  associationRoles ){
-			if( role.getCardinality().equals( Association.ONE_TO_ONE ) ){
-				jpaImports.add( "import javax.persistence.OneToOne;" );//$NON-NLS-1$
-			}else{
-				if( role.getCardinality().equals( Association.ONE_TO_MANY ) ){
-					jpaImports.add( "import javax.persistence.OneToMany;\n" );//$NON-NLS-1$
-				}else if( role.getCardinality().equals( Association.MANY_TO_ONE ) ){
-					jpaImports.add( "import javax.persistence.ManyToOne;\n" );//$NON-NLS-1$
-					jpaImports.add( "import javax.persistence.JoinColumn;\n" ); //$NON-NLS-1$
-				}else if( role.getCardinality().equals( Association.MANY_TO_MANY ) ){
-					jpaImports.add( "import javax.persistence.ManyToMany;\n" );//$NON-NLS-1$
-					jpaImports.add( "import javax.persistence.JoinTable;\n" );//$NON-NLS-1$
-					jpaImports.add( "import javax.persistence.JoinColumns;\n");//$NON-NLS-1$
-					jpaImports.add( "import javax.persistence.JoinColumn;\n" );//$NON-NLS-1$
-				}
-			}
-		}
-		for( String s: jpaImports){
-			ret.append(s);
-		}
-		return ret.toString();
-	}
-
-	public HashMap<String, String> buildColumnTypesMap(){
-		if ( columnTypesMap != null) {
-			return columnTypesMap;
-		}
-		columnTypesMap = new HashMap<String, String>();
-		for ( ORMGenColumn col : this.getColumns() ) {
-			String type = col.getPropertyType();
-			if ( !col.isPartOfCompositePrimaryKey()
-					&& !col.isForeignKey()
-					&& !type.startsWith("java.lang") && type.indexOf('.')>0 ) {
-				String simpleType= type.substring( type.lastIndexOf('.')+1 );
-				columnTypesMap.put(type, simpleType);
-			}
-		}
-		return columnTypesMap;
-	}
-	
-	public String getSimplifiedColType(String fqtn ) {
-		HashMap<String, String> map = buildColumnTypesMap();
-		String typeName = map.get(fqtn);
-		if (  typeName != null ) {
-			return typeName;
-		}
-		return fqtn;
-	}
-	
-	/**
-	 * Sets the package for the generated class (empty string for the default
-	 * package)
-	 */
-	public void setPackage(String pkg) {
-		getCustomizer().setProperty(PACKAGE, pkg, getName(), null); 
-		// not calling setCustomized so that empty strings do not get nulled out.
-	}
-
-	/**
-	 * Returns the Java package (empty string for the default package).
-	 */
-	public String getPackage() {
-		String packageName = customized(PACKAGE);
-		return packageName == null ? "" : packageName; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the generated Java class name (not qualified).
-	 */
-	public String getClassName() {
-		String name = customized(CLASS_NAME);
-		if (name == null) {
-			// name = StringUtil.tableNameToVarName(getName());
-			// name = StringUtil.initUpper(name);
-			name = EntityGenTools.convertToUniqueJavaStyleClassName(getName(), new ArrayList<String>());
-			name = StringUtil.singularise(name);
-		}
-		return name;
-	}
-
-	public void setClassName(String className) {
-		/*
-		 * if the class name is the same as the (possibly computed) class name
-		 * then nothing to do
-		 */
-		if (!StringUtil.equalObjects(className, getClassName())) {
-			setCustomized(CLASS_NAME, className);
-		}
-	}
-
-	/**
-	 * Returns a name suitable to be used as a variable or class name. This is
-	 * computed based on the table name.
-	 * 
-	 * @param singular
-	 *            Whether the name should be singular or plural.
-	 */
-	public String getVarName(boolean singular) {
-		String name = StringUtil.tableNameToVarName(getName());
-		if (singular) {
-			name = StringUtil.singularise(name);
-		}
-		else {
-			name = StringUtil.pluralise(name);
-		}
-		return name;
-	}
-
-	/**
-	 * Returns the fully qualified generated Java class name.
-	 */
-	public String getQualifiedClassName() {
-		return qualify(getClassName());
-	}
-
-	/**
-	 * Returns the composite key Java class name (not qualified).
-	 */
-	public String getCompositeKeyClassName() {
-		String name = customized(COMPOSITE_KEY_CLASS_NAME);
-		if (name == null) {
-			name = getClassName() + "PK"; //$NON-NLS-1$
-		}
-		return name;
-	}
-
-	/**
-	 * Returns the fully qualified composite key Java class name.
-	 */
-	public String getQualifiedCompositeKeyClassName() {
-		return qualify(getCompositeKeyClassName());
-	}
-
-	/**
-	 * Returns the composite key property name.
-	 */
-	public String getCompositeKeyPropertyName() {
-		return "id"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects to be generated for this
-	 * table.
-	 */
-	public List<ORMGenColumn> getColumns() {
-		if (mColumns == null) {
-			mColumns = new ArrayList<ORMGenColumn>();
-			for (Column c : mDbTable.getColumns()) {
-				ORMGenColumn genColumn = getCustomizer().createGenColumn(c);
-				genColumn.setGenTable(this);
-				mColumns.add(genColumn);
-			}
-		}
-		return mColumns;
-	}
-
-	public List<String> getColumnNames() {
-		List<String> ret = new ArrayList<String>();
-		for (Column c : mDbTable.getColumns()) {
-			ret.add(c.getName());
-		}
-		return ret;
-	}
-
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects representing the table's
-	 * primary key.
-	 */
-	public List<ORMGenColumn> getPrimaryKeyColumns() {
-		List<ORMGenColumn> ret = new ArrayList<ORMGenColumn>();
-		for (Column column : mDbTable.getPrimaryKeyColumns()) {
-			ret.add(new ORMGenColumn(column, this.mCustomizer));
-		}
-		return ret;
-	}
-
-	/**
-	 * Returns the primary key column or null if there is no or many primary key
-	 * columns.
-	 */
-	public ORMGenColumn getPrimaryKeyColumn() {
-		ORMGenColumn pkCol = null;
-		List<ORMGenColumn> pkColumns = getPrimaryKeyColumns();
-		if (pkColumns.size() == 1) {
-			// Column dbCol = (Column)pkColumns.get(0);
-			pkCol = pkColumns.get(0); // (ORMGenColumn)
-										// mCustomizer.createGenColumn(dbCol);
-		}
-		else {
-			/*
-			 * if no pk column then look for the first column with id mapping
-			 * kind. This is so that the wizard can be used with tables not
-			 * having primary keys.
-			 */
-			List<ORMGenColumn> columns = getColumns();
-			for (int i = 0, n = columns.size(); i < n; ++i) {
-				ORMGenColumn column = columns.get(i);
-				if (column.getMappingKind().equals(mCustomizer.getIdMappingKind())) {
-					pkCol = column;
-					break;
-				}
-			}
-		}
-		return pkCol;
-	}
-
-	/**
-	 * Returns true if there is more than 1 pk column.
-	 */
-	public boolean isCompositeKey() {
-		return mDbTable.getPrimaryKeyColumnsSize() > 1;
-	}
-
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects for the the columns that
-	 * are not part of any association.
-	 * 
-	 * @param genOnly
-	 *            Whether to include only the columns marked for generation.
-	 * 
-	 * @param includePk
-	 *            Whether to include the primary kley column(s).
-	 * 
-	 * @param includeInherited
-	 *            Whether to include the columns associated with Java properties
-	 *            that exist in the super class (if any).
-	 */
-	public List<ORMGenColumn> getSimpleColumns(boolean genOnly, boolean includePk, boolean includeInherited) {
-		List<ORMGenColumn> result = new java.util.ArrayList<ORMGenColumn>();
-		List<ORMGenColumn> columns = getColumns();
-		List<AssociationRole> roles = getAssociationRoles();
-		for (int i = 0, n = columns.size(); i < n; ++i) {
-			ORMGenColumn column = columns.get(i);
-			if (genOnly && !column.isGenerated()) {
-				continue;
-			}
-			if (column.isPrimaryKey()) {
-				if (!includePk || isCompositeKey()) {
-					continue;
-				} else {
-					result.add(0, column);
-					continue;
-				}
-			}
-			else if (isColumnInAsscociation(column, roles)) {
-				continue;
-			}
-			result.add(column);
-		}
-		return result;
-	}
-
-	public List<ORMGenColumn> getSimpleColumns() {
-		return getSimpleColumns(true/* genOnly */, true/* includePk */, true/* includeInherited */);
-	}
-
-	/**
-	 * Returns false if the given column should be generated with false
-	 * updatable/insertable. This is the case when the column is mapped more
-	 * than once, this usually happen with columns in composite keys and
-	 * many-to-one associations.
-	 * 
-	 * <br>
-	 * Note that for Hibernate the column param is null because the
-	 * insert/update attributes are specified for the many-to-one tag itself
-	 * instead of the nested column tags (bogus obviously).
-	 */
-	public boolean isColumnUpdateInsert(AssociationRole role, ORMGenColumn column) {
-		if (column == null) {
-			for (Iterator<ORMGenColumn> iter = role.getReferrerColumns().iterator(); iter.hasNext();) {
-				ORMGenColumn c = iter.next();
-				if (!isColumnUpdateInsert(role, c)) {
-					return false;
-				}
-			}
-			return true;
-		}
-		if (column.isPrimaryKey()) {
-			return false;
-		}
-		/*
-		 * should look if there are multiple associations using the same column
-		 * and return false, but this is probably an unusual case.
-		 */
-		return true;
-	}
-
-	/**
-	 * Returns the <code>ORMGenColumn</code> objects corresponding to the given
-	 * column names.
-	 */
-	public List<ORMGenColumn> getColumnsByNames(List<String> names) {
-		List<ORMGenColumn> result = new java.util.ArrayList<ORMGenColumn>();
-		for (String name : names) {
-			ORMGenColumn column = getColumnByName(name);
-			assert (column != null);
-			if (column != null) {
-				result.add(column);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the columns having the given name, or null if none.
-	 */
-	public ORMGenColumn getColumnByName(String name) {
-		List<ORMGenColumn> columns = getColumns();
-		for (int i = 0, n = columns.size(); i < n; ++i) {
-			ORMGenColumn column = columns.get(i);
-			if (column.getName().equals(name)) {
-				return column;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the <code>AssociationRole</code> objects for this table. Only the
-	 * association marked for generation are returned.
-	 */
-	public List<AssociationRole> getAssociationRoles() {
-		/*
-		 * this is not cached intentionally because invalidating the cache with
-		 * wizard changes is kinda tricky.
-		 */
-		List<AssociationRole> associationRoles = new ArrayList<AssociationRole>();
-		String name = getName();
-		List<Association> associations = mCustomizer.getAssociations();
-		for (Iterator<Association> iter = associations.iterator(); iter.hasNext();) {
-			Association association = iter.next();
-			if (!association.isGenerated()) {
-				continue;
-			}
-			/*
-			 * check both referrerand referenced because an association could be
-			 * from-to the same table (employee/manager)
-			 */
-			if (association.getReferrerTable().getName().equals(name)) {
-				AssociationRole role = association.getReferrerRole();
-				if (role != null) {
-					associationRoles.add(role);
-				}
-			}
-			if (association.getReferencedTable().getName().equals(name)) {
-				AssociationRole role = association.getReferencedRole();
-				if (role != null) {
-					associationRoles.add(role);
-				}
-			}
-		}
-		return associationRoles;
-	}
-
-	public String getClassDescription() {
-		return customized(CLASS_DESC);
-	}
-
-	/**
-	 * Returns the generated class scope, one of {@link #PUBLIC_SCOPE}|
-	 * {@link #PROTECTED_SCOPE} |{@link #PRIVATE_SCOPE}. This method never
-	 * returns null (defaults to public).
-	 */
-	public String getClassScope() {
-		String scope = customized(CLASS_SCOPE);
-		if (scope == null) {
-			scope = PUBLIC_SCOPE;
-		}
-		return scope;
-	}
-
-	public String getExtends() {
-		return customized(EXTENDS);
-	}
-
-	public void setExtends(String baseClass) {
-		setCustomized(EXTENDS, baseClass);
-	}
-
-	public List<String> getImplements() {
-		String str = customized(IMPLEMENTS);
-		List<String> result = StringUtil.strToList(str, ',', true/* trim */);
-		if (result == null) {
-			result = Collections.emptyList();
-		}
-		return result;
-	}
-
-	public void setImplements(List<String> interfaces) {
-		setCustomized(IMPLEMENTS, StringUtil.listToStr(interfaces, ','));
-	}
-
-	/**
-	 * Returns the string that should be generated in the Java class for extends
-	 * and implements.
-	 */
-	public String generateExtendsImplements() {
-		StringBuffer buffer = new StringBuffer();
-		String extendsClass = getExtends();
-		if (extendsClass != null && !extendsClass.equals("java.lang.Object") && !extendsClass.equals("Object")) {
-			buffer.append("extends " + simplifyClassName(extendsClass) + " "); //fix for bug 278626
-		}
-		buffer.append("implements Serializable"); // assuming that the Java
-													// file template imports the
-													// java.io.Serializable
-		for (Iterator<String> iter = getImplements().iterator(); iter.hasNext();) {
-			buffer.append(", " + simplifyClassName(iter.next()));
-		}
-		return buffer.toString();
-	}
-
-	private String simplifyClassName(String fullClassName) {
-		final String JAVA_LANG = "java.lang.";
-		if (fullClassName.startsWith(JAVA_LANG)) {
-			return fullClassName.substring(JAVA_LANG.length());
-		}
-		String pkg = StringUtil.getPackageName(fullClassName);
-		if (pkg != null && StringUtil.equalObjects(pkg, getPackage())) {
-			return StringUtil.getClassName(fullClassName);
-		}
-		return fullClassName;
-	}
-
-	/**
-	 * Returns the id generator scheme (assigned, sequence, etc). Does not
-	 * return null, defaults to "assigned" or "identity" depending on whether
-	 * the table has an identity column.
-	 */
-	public String getIdGenerator() {
-		String generator = customized(ID_GENERATOR);
-		String noneGenerator = getCustomizer().getNoIdGenerator();
-		if (!isDefaultsTable()) {
-			/*
-			 * This is done mainly because there might be cases where some
-			 * tables have autoinctement pk and others are assigned. In this
-			 * case this makes it so that it is possible to have a "none"
-			 * default value that is interpreted depending on the case.
-			 */
-			if (generator == null || generator.equals(noneGenerator)) {
-				ORMGenColumn pkColumn = getPrimaryKeyColumn();
-				if (pkColumn != null && DTPUtil.isAutoIncrement(pkColumn.getDbColumn())) {
-					generator = getCustomizer().getIdentityIdGenerator();
-				}
-			}
-		}
-		if (generator == null) {
-			generator = noneGenerator;
-		}
-		return generator;
-	}
-
-	/**
-	 * Changes the id generator scheme (assigned, sequence, etc).
-	 */
-	public void setIdGenerator(String scheme) {
-		setCustomized(ID_GENERATOR, scheme);
-	}
-
-	/**
-	 * Returns the sequence name for the given table, or null if none (makes
-	 * sense only when the scheme is native, sequence, ..).
-	 */
-	public String getSequence() {
-		return customized(SEQUENCE);
-	}
-
-	public void setSequence(String name) {
-		setCustomized(SEQUENCE, name);
-	}
-
-	/**
-	 * Returns the sequence name after replacing the ${table} and ${pk} by their
-	 * values, or null if none.
-	 */
-	public String getFormattedSequence() {
-		String sequence = getSequence();
-		if (sequence != null) {
-			/* resolve the ${table} and ${pk} patterns */
-			sequence = StringUtil.strReplace(sequence, TABLE_SEQ_PATTERN, getName());
-			if (sequence.indexOf(PK_SEQ_PATTERN) >= 0) {
-				Iterator<Column> pkCols = getDbTable().getPrimaryKeyColumns().iterator();
-				String pkName = pkCols.hasNext() ? pkCols.next().getName() : null;
-				sequence = StringUtil.strReplace(sequence, PK_SEQ_PATTERN, pkName);
-			}
-		}
-		return sequence != null ? sequence.toUpperCase() : "";
-	}
-
-	public boolean isImplementEquals() {
-		return !"true".equals(customized(IMPLEMENT_EQUALS)); // defaults to
-																// false
-	}
-
-	public void setImplementEquals(boolean value) {
-		setCustomizedBoolean(IMPLEMENT_EQUALS, value, true);
-	}
-
-	/**
-	 * Returns true if there is any column participating in equals/hashcode.
-	 */
-	public boolean hasColumnsInEquals() {
-		List<ORMGenColumn> columns = getSimpleColumns();
-		for (int i = 0, n = columns.size(); i < n; ++i) {
-			ORMGenColumn column = columns.get(i);
-			if (column.isUseInEquals()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns {@link #GENERATE_DDL_ANNOTATION} indicating whether the optional
-	 * DDL parameters like length, nullable, unqiue, etc should be generated in @Column
-	 * annotation. defaults to false.
-	 */
-	public boolean isGenerateDDLAnnotations() {
-		return "true".equals(customized(ORMGenCustomizer.GENERATE_DDL_ANNOTATION)); // defaults
-																					// to
-																					// false
-	}
-
-	public void setGenerateDDLAnnotations(boolean generate) {
-		setCustomizedBoolean(ORMGenCustomizer.GENERATE_DDL_ANNOTATION, generate, false);
-	}
-
-	/**
-	 * Returns one of {@link #PROPERTY_ACCESS}|{@link #FIELD_ACCESS} indicating
-	 * how the entity properties are mapped. Does not return null (defaults to
-	 * {@link #FIELD_ACCESS}).
-	 */
-	public String getAccess() {
-		String name = customized(ACCESS);
-		if (name == null) {
-			name = FIELD_ACCESS;
-		}
-		return name;
-	}
-
-	public void setAccess(String access) {
-		assert (access == null || access.equals(PROPERTY_ACCESS) || access.equals(FIELD_ACCESS));
-		if (!StringUtil.equalObjects(access, getAccess())) {
-			setCustomized(ACCESS, access);
-		}
-	}
-
-	/**
-	 * Returns one of {@link #LAZY_FETCH}|{@link #EAGER_FETCH} indicating how
-	 * the table associations are feched. Returns null if the provider defaults
-	 * should be used.
-	 */
-	public String getDefaultFetch() {
-		return customized(DEFAULT_FETCH);
-	}
-
-	public void setDefaultFetch(String fetch) {
-		assert (fetch == null || fetch.equals(LAZY_FETCH) || fetch.equals(EAGER_FETCH));
-		setCustomized(DEFAULT_FETCH, fetch);
-	}
-
-	public String[] getSupportedCollectionTypes() {
-		return new String[] {
-			SET_COLLECTION_TYPE, LIST_COLLECTION_TYPE
-		};
-	}
-
-	/**
-	 * Returns one of {@link #LIST_COLLECTION_TYPE}|{@link #SET_COLLECTION_TYPE}
-	 * indicating the Java type (full class name) used for properties of
-	 * collection types. This does not return null (defaults to list).
-	 */
-	public String getDefaultCollectionType() {
-		String cType = customized(DEFAULT_COLLECTION_TYPE);
-		if (cType == null) {
-			cType = SET_COLLECTION_TYPE;
-		}
-		return cType;
-	}
-	
-	public String getSimpleCollectionType(){
-		 String type = getDefaultCollectionType();
-		return type.substring( type.lastIndexOf('.') +1 );
-	}
-
-	public void setDefaultCollectionType(String cType) {
-		assert (cType.equals(LIST_COLLECTION_TYPE) || cType.equals(SET_COLLECTION_TYPE));
-		setCustomized(DEFAULT_COLLECTION_TYPE, cType);
-	}
-
-	/**
-	 * Returns true if the primary key is compound and any of its columns should
-	 * be included in the <code>equals</code> method implementation.
-	 */
-	public boolean isCompoundKeyUseInEquals() {
-		if (isCompositeKey()) {
-			for (Iterator<ORMGenColumn> iter = getPrimaryKeyColumns().iterator(); iter.hasNext();) {
-				ORMGenColumn column = iter.next();
-				if (column.isUseInEquals()) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public boolean isRoleUseInEquals(AssociationRole role) {
-		for (Iterator<ORMGenColumn> iter = role.getReferrerColumns().iterator(); iter.hasNext();) {
-			ORMGenColumn column = iter.next();
-			if (column.isUseInEquals()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return true if the values of name element in the @Table is default so we
-	 * can skip generating the annotation
-	 * 
-	 * @return true
-	 */
-	public boolean isDefaultname() {
-		String entityName = getClassName();
-		String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().buildTableAnnotationName(entityName, mDbTable);
-		return annotationName == null;
-	}
-
-	/**
-	 * Qualifies a class name if there is a package.
-	 */
-	private String qualify(String className) {
-		String pkg = getPackage();
-		if (pkg != null && pkg.length() != 0) {
-			className = pkg + '.' + className;
-		}
-		return className;
-	}
-
-	/**
-	 * Returns true if the given column is part of any association.
-	 */
-	private boolean isColumnInAsscociation(ORMGenColumn column, List<AssociationRole> roles) {
-		for (int i = 0, n = roles.size(); i < n; ++i) {
-			AssociationRole role = roles.get(i);
-			List<ORMGenColumn> cols = role.getReferrerColumns();
-			for (ORMGenColumn col : cols) {
-				if (col.getName().equals(column.getName())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Print the clause to be used in the generated equals() method
-	 * 
-	 * @return String
-	 */
-	public String getPrimaryKeyEqualsClause() {
-		StringBuilder buf = new StringBuilder();
-		Iterator<ORMGenColumn> columns = this.getPrimaryKeyColumns().iterator();
-		while (columns.hasNext()) {
-			this.printPrimaryKeyEqualsClauseOn(columns.next(), buf);
-			if (columns.hasNext()) {
-				buf.append("\n");
-				buf.append("\t\t\t");
-				buf.append("&& ");
-			}
-		}
-		buf.append(";");
-		return buf.toString();
-	}
-
-	private void printPrimaryKeyEqualsClauseOn(ORMGenColumn column, StringBuilder buf) {
-		String fieldName = column.getPropertyName();
-		JavaType javaType = column.getDbColumn().getPrimaryKeyJavaType();
-		if (javaType.isPrimitive()) {
-			this.printPrimitiveEqualsClauseOn(fieldName, buf);
-		}
-		else {
-			this.printReferenceEqualsClauseOn(fieldName, buf);
-		}
-	}
-
-	private void printPrimitiveEqualsClauseOn(String fieldName, StringBuilder buf) {
-		buf.append("(this.");
-		buf.append(fieldName);
-		buf.append(" == castOther.");
-		buf.append(fieldName);
-		buf.append(')');
-	}
-
-	private void printReferenceEqualsClauseOn(String fieldName, StringBuilder buf) {
-		buf.append("this.");
-		buf.append(fieldName);
-		buf.append(".equals(castOther.");
-		buf.append(fieldName);
-		buf.append(')');
-	}
-
-	/**
-	 * Print the clause to be used in the generated hasCode() method
-	 * 
-	 * @return String
-	 */
-	public String getPrimaryKeyHashCodeClause() {
-		StringBuilder buf = new StringBuilder();
-		Iterator<ORMGenColumn> columns = this.getPrimaryKeyColumns().iterator();
-		while (columns.hasNext()) {
-			buf.append("hash = hash * prime + ");
-			this.printPrimaryKeyHashCodeClauseOn(columns.next(), buf);
-			buf.append(';');
-			buf.append('\n');
-			buf.append("\t\t");
-		}
-		return buf.toString();
-	}
-
-	private void printPrimaryKeyHashCodeClauseOn(ORMGenColumn column, StringBuilder buf) {
-		String fieldName = column.getPropertyName();
-		JavaType javaType = column.getDbColumn().getPrimaryKeyJavaType();
-		if (javaType.isPrimitive()) {
-			this.printPrimitiveHashCodeClauseOn(javaType.getElementTypeName(), fieldName, buf);
-		}
-		else {
-			this.printReferenceHashCodeClauseOn(fieldName, buf);
-		}
-	}
-
-	private void printPrimitiveHashCodeClauseOn(String primitiveName, String fieldName, StringBuilder buf) {
-		if (primitiveName.equals("int")) {
-			// this.value
-			buf.append("this.");
-			buf.append(fieldName);
-		}
-		else if (primitiveName.equals("short") || primitiveName.equals("byte") || primitiveName.equals("char")) { // explicit
-																													// cast
-			// ((int) this.value)
-			buf.append("((int) this.");
-			buf.append(fieldName);
-			buf.append(')');
-		}
-		else if (primitiveName.equals("long")) { // cribbed from Long#hashCode()
-			// ((int) (this.value ^ (this.value >>> 32)))
-			buf.append("((int) (this.");
-			buf.append(fieldName);
-			buf.append(" ^ (this.");
-			buf.append(fieldName);
-			buf.append(" >>> 32)))");
-		}
-		else if (primitiveName.equals("float")) { // cribbed from
-													// Float#hashCode()
-			// java.lang.Float.floatToIntBits(this.value)
-			buf.append("java.lang.Float");
-			buf.append(".floatToIntBits(this.");
-			buf.append(fieldName);
-			buf.append(')');
-		}
-		else if (primitiveName.equals("double")) { // cribbed from
-													// Double#hashCode()
-			// ((int) (java.lang.Double.doubleToLongBits(this.value) ^
-			// (java.lang.Double.doubleToLongBits(this.value) >>> 32)))
-			buf.append("((int) (");
-			buf.append("java.lang.Double");
-			buf.append(".doubleToLongBits(this.");
-			buf.append(fieldName);
-			buf.append(") ^ (");
-			buf.append("java.lang.Double");
-			buf.append(".doubleToLongBits(this.");
-			buf.append(fieldName);
-			buf.append(") >>> 32)))");
-		}
-		else if (primitiveName.equals("boolean")) {
-			// (this.value ? 1 : 0)
-			buf.append("(this.");
-			buf.append(fieldName);
-			buf.append(" ? 1 : 0)");
-		}
-		else {
-			throw new IllegalArgumentException(primitiveName);
-		}
-	}
-
-	private void printReferenceHashCodeClauseOn(String fieldName, StringBuilder buf) {
-		buf.append("this.");
-		buf.append(fieldName);
-		buf.append(".hashCode()");
-	}
-
-	@Override
-	public String toString() {
-		return "name=" + this.getName() + "; columns=" + Arrays.toString(this.getColumnNames().toArray());
-	}
-
-	/* class scopes */
-	public static final String PUBLIC_SCOPE = "public";
-
-	public static final String PROTECTED_SCOPE = "protected";
-
-	public static final String PRIVATE_SCOPE = "private";
-
-	/* access constants. Note that these strings are used in the ui */
-	public static final String PROPERTY_ACCESS = "property";
-
-	public static final String FIELD_ACCESS = "field";
-
-	/*
-	 * default fech constants. Note that these strings are used in the gen
-	 * velocity templates.
-	 */
-	public static final String DEFAULT_FETCH = "defaultFetch";
-
-	public static final String LAZY_FETCH = "lazy";
-
-	public static final String EAGER_FETCH = "eager";
-
-	/*
-	 * default collection type constants. Note that these strings are used in
-	 * the gen velocity templates.
-	 */
-	public static final String LIST_COLLECTION_TYPE = "java.util.List";
-
-	public static final String SET_COLLECTION_TYPE = "java.util.Set";
-
-	/**
-	 * The pattern replaced by the table name in the id generator sequence name
-	 * param.
-	 */
-	public static final String TABLE_SEQ_PATTERN = "$table";
-
-	/**
-	 * The pattern replaced by the primary key in the id generator sequence name
-	 * param.
-	 */
-	public static final String PK_SEQ_PATTERN = "$pk";
-
-	/* customization properties */
-	private static final String PACKAGE = "package";
-
-	private static final String SRC_FOLDER = "srcFolder";
-
-	private static final String CLASS_NAME = "className";
-
-	private static final String CLASS_DESC = "classDesc";
-
-	private static final String CLASS_SCOPE = "classScope";
-
-	private static final String EXTENDS = "extends";
-
-	private static final String IMPLEMENTS = "implements";
-
-	private static final String ID_GENERATOR = "idGenerator";
-
-	private static final String SEQUENCE = "sequence";
-
-	private static final String COMPOSITE_KEY_CLASS_NAME = "compositeKeyClassName";
-
-	private static final String IMPLEMENT_EQUALS = "implementEquals";
-
-	private static final String ACCESS = "access";
-
-	private static final String DEFAULT_COLLECTION_TYPE = "defaultCollectionType";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/OverwriteConfirmer.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/OverwriteConfirmer.java
deleted file mode 100644
index c805473..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/OverwriteConfirmer.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-public interface OverwriteConfirmer {
-	/**
-	 * Return whether the entity generator should overwrite the specified
-	 * file.
-	 */
-	boolean overwrite(String className);
-
-
-	final class Always implements OverwriteConfirmer {
-		public static final OverwriteConfirmer INSTANCE = new Always();
-		public static OverwriteConfirmer instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Always() {
-			super();
-		}
-		// everything will be overwritten
-		public boolean overwrite(String arg0) {
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "OverwriteConfirmer.Always";  //$NON-NLS-1$
-		}
-	}
-
-
-	final class Never implements OverwriteConfirmer {
-		public static final OverwriteConfirmer INSTANCE = new Never();
-		public static OverwriteConfirmer instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Never() {
-			super();
-		}
-		// nothing will be overwritten
-		public boolean overwrite(String arg0) {
-			return false;
-		}
-		@Override
-		public String toString() {
-			return "OverwriteConfirmer.Never";  //$NON-NLS-1$
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java
deleted file mode 100644
index 2dea93d..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jpt.jpa.gen.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.runtime.log.JdkLogChute;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.jpa.core.JpaProject;
-import org.eclipse.jpt.jpa.core.context.persistence.Persistence;
-import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.jpa.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.jpa.gen.internal.util.CompilationUnitModifier;
-import org.eclipse.jpt.jpa.gen.internal.util.FileUtil;
-import org.eclipse.jpt.jpa.gen.internal.util.UrlUtil;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * This generator will generate a package of entities for a set of tables.
- */
-public class PackageGenerator { 
-
-	private static final String LOGGER_NAME = "org.eclipse.jpt.entities.gen.log"; //$NON-NLS-1$
-	private final JpaProject jpaProject;
-	private final ORMGenCustomizer customizer;
-	private final OverwriteConfirmer overwriteConfirmer;
-
-	public static void generate(JpaProject jpaProject, ORMGenCustomizer customizer, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) throws CoreException {
-		SubMonitor sm = SubMonitor.convert(monitor, 20);
-		PackageGenerator generator = new PackageGenerator(jpaProject, customizer, overwriteConfirmer);
-		sm.worked(1);
-		try {
-			generator.doGenerate(sm.newChild(19));
-		} catch (Exception e) {
-			throw new CoreException(new Status(IStatus.ERROR, JptJpaGenPlugin.PLUGIN_ID, JptGenMessages.Error_Generating_Entities, e));
-		}
-	}
-	
-	private PackageGenerator(JpaProject jpaProject, ORMGenCustomizer customizer, OverwriteConfirmer confirmer) {
-		super();
-		this.jpaProject = jpaProject;
-		this.customizer = customizer;
-		this.overwriteConfirmer = confirmer;
-	}
-
-	private Object getCustomizer() {
-		return this.customizer;
-	}
-
-	private IJavaProject getJavaProject(){
-		return this.jpaProject.getJavaProject();
-	}
-
-	
-	protected void doGenerate(IProgressMonitor monitor) throws Exception {
-		generateInternal(monitor);
-	}
-
-	protected void generateInternal(IProgressMonitor monitor) throws Exception {
-		File templDir = prepareTemplatesFolder();
-
-		List<String> genClasses = new java.util.ArrayList<String>();
-		List<String> tableNames = this.customizer.getGenTableNames();
-
-		/* .java per table, persistence.xml, refresh package folder */
-		SubMonitor sm = SubMonitor.convert(monitor, tableNames.size() + 2);
-
-
-		for (Iterator<String> iter = tableNames.iterator(); iter.hasNext();) {
-			if (sm.isCanceled()) {
-				return;
-			}
-			String tableName = iter.next();
-			ORMGenTable table = this.customizer.getTable(tableName);
-
-			String className = table.getQualifiedClassName();
-
-			generateClass(table, templDir.getAbsolutePath(), sm.newChild(1, SubMonitor.SUPPRESS_NONE));
-
-			genClasses.add(className);
-			/*
-			 * add the composite key class to persistence.xml because some 
-			 * JPA provider(e.g. Kodo) requires it. Hibernate doesn't seem to care). 
-			 */
-			if (table.isCompositeKey()) {
-				genClasses.add(table.getQualifiedCompositeKeyClassName());
-			}
-		}
-		if (sm.isCanceled()) {
-			return;
-		}
-		
-		//update persistence.xml
-		if (this.customizer.updatePersistenceXml()) {
-			updatePersistenceXml(genClasses);
-		}
-		sm.worked(2);
-	}
-	
-	private void updatePersistenceXml(final List<String> genClasses) {
-		JpaXmlResource resource = this.jpaProject.getPersistenceXmlResource();
-		if (resource == null) {
-			//the resource would only be null if the persistence.xml file had an invalid content type,
-			//do not attempt to update
-			return;
-		}
-
-		resource.modify(new Runnable() {
-			public void run() {
-				Persistence persistence = PackageGenerator.this.jpaProject.getRootContextNode().getPersistenceXml().getPersistence();
-				if (persistence == null) {
-					// invalid content, do not attempt to update
-					return;
-				}
-				PersistenceUnit persistenceUnit;
-				// create a persistence unit if one doesn't already exist
-				if (persistence.persistenceUnitsSize() == 0) {
-					persistenceUnit = persistence.addPersistenceUnit();
-					persistenceUnit.setName(PackageGenerator.this.jpaProject.getName());
-				} else {
-					// we only support one persistence unit - take the first one
-					persistenceUnit = persistence.persistenceUnits().next();
-				}
-				for (Iterator<String> stream = genClasses.iterator(); stream.hasNext();) {
-					String className = stream.next();
-					if (CollectionTools.isEmpty(persistenceUnit.mappingFileRefsContaining(className)) && !persistenceUnit.specifiesPersistentType(className)) {
-						persistenceUnit.addSpecifiedClassRef(className);
-					}
-				}
-			}
-		});
-	}
-
-	private File prepareTemplatesFolder() throws IOException, Exception,
-			CoreException {
-		//Prepare the Velocity template folder:
-		//If the plug-in is packaged as a JAR, we need extract the template 
-		//folder into the plug-in state location. This is required by Velocity
-		//since we use included templates.
-		Bundle bundle = Platform.getBundle(JptJpaGenPlugin.PLUGIN_ID);
-		String templatesPath = "templates/entities/";  //$NON-NLS-1$
-		Path path = new Path( templatesPath);
-		URL url = FileLocator.find(bundle, path, null);
-		if (url == null) {
-			throw new CoreException(new Status(IStatus.ERROR, JptJpaGenPlugin.PLUGIN_ID,  JptGenMessages.Templates_notFound + " "+  JptJpaGenPlugin.PLUGIN_ID + "/" + templatesPath) );//$NON-NLS-1$
-		}		
-		URL templUrl = FileLocator.resolve(url);
-		
-		//Have this check so that the code would work in both PDE and JARed plug-in at runtime
-		File templDir = null;
-		if (UrlUtil.isJarUrl(templUrl)) {
-			templDir = FileUtil.extractFilesFromBundle( templUrl, bundle, templatesPath );
-		} else {
-			templDir = UrlUtil.getUrlFile(templUrl);
-		}
-		
-
-		if (templDir == null || !templDir.exists()) {
-			throw new CoreException(new Status(IStatus.ERROR, JptJpaGenPlugin.PLUGIN_ID,  JptGenMessages.Templates_notFound + " "+  JptJpaGenPlugin.PLUGIN_ID ) );//$NON-NLS-1$
-		}
-		return templDir;
-	}
-	
-	/**
-	 * Saves/Creates the .java file corresponding to a database table 
-	 * with the given content.
-	 * 
-	 * @param templDir The velocity template file directory. It is assumed 
-	 * that this directory contains the 2 files <em>main.java.vm</em> 
-	 * and <em>pk.java.vm</em> 
-	 * @param progress 
-	 */
-	protected void generateClass(ORMGenTable table, String templateDirPath, IProgressMonitor monitor) throws Exception {
-
-		String subTaskName = NLS.bind(JptGenMessages.EntityGenerator_taskName, table.getName());
-		SubMonitor sm = SubMonitor.convert(monitor, subTaskName, 10);
-
-		try {
-			IFolder javaPackageFolder = getJavaPackageFolder(table, monitor);
-			IFile javaFile = javaPackageFolder.getFile( table.getClassName() + ".java"); //$NON-NLS-1$
-			
-			if (javaFile.exists()) {
-				if (this.overwriteConfirmer != null && !this.overwriteConfirmer.overwrite(javaFile.getName())) {
-					return;
-				}
-			}
-			//JdkLogChute in this version of Velocity not allow to set log level
-			//Workaround by preset the log level before Velocity is initialized
-			Logger logger = Logger.getLogger( LOGGER_NAME );
-			logger.setLevel( Level.SEVERE );
-			
-			Properties vep = new Properties();
-			vep.setProperty("file.resource.loader.path", templateDirPath); //$NON-NLS-1$
-			vep.setProperty( JdkLogChute.RUNTIME_LOG_JDK_LOGGER, LOGGER_NAME );
-			VelocityEngine ve = new VelocityEngine();
-		    ve.init(vep);
-		    sm.worked(2);
-		    
-		    generateJavaFile(table, javaFile, ve, "main.java.vm", true/*isDomainClass*/, sm.newChild(6)); //$NON-NLS-1$
-		    
-		    if (table.isCompositeKey()) {
-		    	IFile compositeKeyFile = javaPackageFolder.getFile( table.getCompositeKeyClassName()+".java"); //$NON-NLS-1$
-		    	generateJavaFile(table, compositeKeyFile, ve, "pk.java.vm", false/*isDomainClass*/, sm.newChild(1)); //$NON-NLS-1$
-		    }
-		    else {
-		    	sm.setWorkRemaining(1);
-		    }
-			javaFile.refreshLocal(1, sm.newChild(1));
-			
-		} catch (Throwable e) {
-			CoreException ce = new CoreException(new Status(IStatus.ERROR, JptJpaGenPlugin.PLUGIN_ID, JptGenMessages.Templates_notFound + "" + JptJpaGenPlugin.PLUGIN_ID , e) );//$NON-NLS-1$
-			JptJpaGenPlugin.logException( ce );
-		}
-	}
-	
-	private void generateJavaFile(ORMGenTable table, IFile javaFile, VelocityEngine ve
-			, String templateName, boolean isDomainClass, IProgressMonitor monitor) throws Exception {
-		VelocityContext context = new VelocityContext();
-        context.put("table", table); //$NON-NLS-1$
-        context.put("customizer", getCustomizer()); //$NON-NLS-1$
-        
-		StringWriter w = new StringWriter();
-		ve.mergeTemplate(templateName, context, w);
-		
-		String fileContent = w.toString();
-		if (javaFile.exists()) {
-			if (isDomainClass) {
-				updateExistingDomainClass(table.getQualifiedClassName(), javaFile, fileContent);
-			} else {
-				javaFile.setContents(new ByteArrayInputStream(fileContent.getBytes()), true, true, monitor);
-			}
-		} else {
-			createFile(javaFile, new ByteArrayInputStream(fileContent.getBytes()));
-		}		
-	}
-	
-	
-	/**
-	 * Updates the (existing) Java file corresponding to the given class.
-	 * 
-	 * @param className The qualified class name.
-	 * 
-	 * @param javaFile The existing Java file of the class to update.
-	 * 
-	 * @param fileContent The new file content.
-	 */
-	protected void updateExistingDomainClass(String className, IFile javaFile, String fileContent) throws Exception {
-		/*use CompilationUnitModifier instead of calling WideEnv.getEnv().setFileContent 
-		 * so that if the unit is up to date if it is used before file change 
-		 * notifications are delivered (see EJB3ImportSchemaWizard.updateExistingDomainClass for example)*/
-		CompilationUnitModifier modifier = new CompilationUnitModifier(this.getJavaProject(), className);
-		modifier.setJavaSource(fileContent);
-		modifier.save();
-	}
-	
-	public void createFile(IFile file, java.io.InputStream contents) throws CoreException {		
-		file.create(contents, false, null/*monitor*/);
-	}
-	
-	public IFolder getJavaPackageFolder(ORMGenTable table, IProgressMonitor monitor) throws CoreException {
-		IPackageFragmentRoot root = getDefaultJavaSourceLocation(this.getJavaProject(), table.getSourceFolder());
-		String packageName = table.getPackage();
-		if (packageName == null) packageName = ""; //$NON-NLS-1$
-		IPackageFragment packageFragment = root.getPackageFragment(packageName);
-		if( !packageFragment.exists()){
-			root.createPackageFragment(packageName, true, monitor);
-		}		
-		return (IFolder) packageFragment.getResource();
-	}
-
-	private IPackageFragmentRoot getDefaultJavaSourceLocation(IJavaProject jproject, String sourceFolder){
-		IPackageFragmentRoot defaultSrcPath = null;
-		if (jproject != null && jproject.exists()) {
-			try {
-				IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
-				for (int i = 0; i < roots.length; i++) {
-					if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE ){
-						if (defaultSrcPath == null) {
-							defaultSrcPath = roots[i];
-						}
-						String path = roots[i].getPath().toString(); 
-						if (path.equals('/' + sourceFolder)) {
-							return roots[i] ; 
-						}
-					}
-				}
-			} catch (JavaModelException e) {
-				JptJpaGenPlugin.logException(e);
-			}
-		}
-		return defaultSrcPath;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/TagNames.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/TagNames.java
deleted file mode 100644
index daeecd6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/TagNames.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal;
-
-/**
- * TODO: merge with JPA class ?
- * The JPA mapping tag and attribute names.
- * 
- */
-public class TagNames
-{
-	public static final String BASIC_TAG = "basic";
-	public static final String CASCADE_TAG = "cascade";
-	public static final String COLUMN_TAG = "column";
-	public static final String EMBEDDED_TAG = "embedded";
-	public static final String EMBEDDED_ID_TAG = "embedded-id";
-	public static final String GENERATED_VALUE_TAG = "generated-value";
-	public static final String ID_TAG = "id";
-	public static final String ID_CLASS_TAG = "id";
-	public static final String JOIN_COLUMN_TAG = "join-column";
-	public static final String INVERSE_JOIN_COLUMN_TAG = "inverse-join-column";
-	public static final String LOB_TAG = "lob";
-	public static final String MANY_TO_MANY_TAG = "many-to-many";
-	public static final String MANY_TO_ONE_TAG = "many-to-one";
-	public static final String MAPPED_BY_TAG = "mapped-by";
-	public static final String ONE_TO_MANY_TAG = "one-to-many";
-	public static final String ONE_TO_ONE_TAG = "one-to-one";
-	public static final String PK_JOIN_COLUMN_TAG = "primary-key-join-column";
-	public static final String TABLE_TAG = "table";
-	public static final String VERSION_TAG = "version";
-	public static final String JOIN_TABLE_TAG = "join-table";
-
-	/*cascade tags*/
-	public static final String ALL_CASCADE = "all";
-	public static final String PERSIST_CASCADE = "persist";
-	public static final String MERGE_CASCADE = "merge";
-	public static final String REMOVE_CASCADE = "remove";
-	public static final String REFRESH_CASCADE = "refresh";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/CompilationUnitModifier.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/CompilationUnitModifier.java
deleted file mode 100644
index 4ca46e1..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/CompilationUnitModifier.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jface.text.Document;
-import org.eclipse.text.edits.TextEdit;
-
-
-/**
- * Performs the grunt work needed for modifying a compilation 
- * unit and performs the modified compilation unit save.
- * 
- * The typical usage is as follows:
- * <ol><li>Create an instance.
- * 
- * <li>Modify the compilation unit using AST operations performed 
- * 	on the node returned by {@link #getCompilationUnitNode()}.
- *  Alternatively you can call <code>setJavaSource</code> to change the entire source code. 
- * 
- * <li>Call the {@link #save()} method.
- * 
- */
-public class CompilationUnitModifier
-{
-	private IJavaProject mProject;
-	private ICompilationUnit mCompilationUnit;
-	private CompilationUnit mCompilationUnitNode;
-	private Document mDocument;
-	
-	public CompilationUnitModifier(IJavaProject project, String className) throws Exception {
-		super();
-		
-		mProject = project;
-		
-		IType type = project.findType(className);
-		if (type == null) {
-			throw new Exception("The class " + className + " does not exist.");
-		}
-		mCompilationUnit = type.getCompilationUnit();
-		if (mCompilationUnit == null) {
-			throw new Exception("The source code for " + className + " does not exist.");
-		}
-	}
-	public CompilationUnitModifier(IJavaProject project, ICompilationUnit cu) throws Exception {
-		super();
-		
-		mProject = project;
-		mCompilationUnit = cu;
-	}
-	public CompilationUnitModifier(IJavaProject project, ICompilationUnit cu, CompilationUnit cuNode) throws Exception {
-		super();
-		
-		mProject = project;
-		mCompilationUnit = cu;
-		mCompilationUnitNode = cuNode;
-		
-		getCompilationUnitNode(); //to create mDocument (the caller in this case does not have to call getCompilationUnitNode)
-	}
-	public ICompilationUnit getCompilationUnit() {
-		return mCompilationUnit;
-	}
-	/**
-	 * Returns the compilation unit node that should be used for 
-	 * tyhe modification AST operations.
-	 */
-	public CompilationUnit getCompilationUnitNode() {
-		if (mCompilationUnitNode == null) {
-			ASTParser c = ASTParser.newParser(AST.JLS3);
-			c.setSource(mCompilationUnit);
-			c.setResolveBindings(true);
-			mCompilationUnitNode = (CompilationUnit)c.createAST(null);
-		}
-		if (mDocument == null) {
-			try {
-				mDocument = new Document(mCompilationUnit.getBuffer().getContents());
-			} catch (JavaModelException e) {
-				e.printStackTrace();
-			}
-			
-			mCompilationUnitNode.recordModifications();
-		}
-		
-		return mCompilationUnitNode;
-	}
-	/**
-	 * Changes the entire Java source code of the compilation unit.
-	 */
-	public void setJavaSource(String newSource) {
-		try {
-			mCompilationUnit.getBuffer().setContents(newSource);
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-	}
-	/**
-	 * Saves the compilation unit modifications.
-	 */
-	public void save() throws Exception {
-		if (mCompilationUnitNode != null) {
-			assert(mDocument != null); //see getCompilationUnitNode
-			
-			//computation of the text edits
-			TextEdit edits = mCompilationUnitNode.rewrite(mDocument, mProject.getOptions(true));
-			//computation of the new source code
-			edits.apply(mDocument);
-			String newSource = mDocument.get();
-			// update of the compilation unit
-			mCompilationUnit.getBuffer().setContents(newSource);
-		}
-		
-		if (mCompilationUnit.isWorkingCopy()) {
-			mCompilationUnit.commitWorkingCopy(true/*force*/, null/*monitor*/);
-		} else {
-			mCompilationUnit.save(null/*monitor*/, true/*force*/);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/DTPUtil.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/DTPUtil.java
deleted file mode 100644
index 5fe0589..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/DTPUtil.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-import org.eclipse.jpt.jpa.db.ForeignKey.ColumnPair;
-
-/**
- * Collection of utility methods to access DTP and other jpt.db APIs 
- *
- */
-public class DTPUtil {
-
-	public static boolean isAutoIncrement(Column c){
-		//@ TODO
-		//Blocked by DTP bug
-		//https://bugs.eclipse.org/bugs/show_bug.cgi?id=250023
-		//The Dali bug is
-		//https://bugs.eclipse.org/bugs/show_bug.cgi?id=249658
-		//
-		return false;
-	}
-
-	/**
-	 * Return list of fk
-	 * @param dbTable
-	 * @return
-	 */
-	public static List<ForeignKeyInfo> getForeignKeys(Table dbTable) {
-		List<ForeignKeyInfo> ret = new ArrayList<ForeignKeyInfo>();
-		if(dbTable!=null){
-			for (ForeignKey fk : dbTable.getForeignKeys()) {
-				Iterator<ColumnPair> columnPaires = fk.getColumnPairs().iterator();
-				ForeignKeyInfo fkInfo = null;
-				while( columnPaires.hasNext() ){
-					ColumnPair columnPair = columnPaires.next();
-					if( fkInfo == null){
-						String tableName = dbTable.getName();
-						String referencedTableName = "";
-						Table referencedTable = fk.getReferencedTable();
-						referencedTableName = referencedTable.getName();
-						fkInfo = new ForeignKeyInfo(fk, tableName, referencedTableName );
-					}
-					String baseColName = columnPair.getBaseColumn().getName();
-					String referencedColName = columnPair.getReferencedColumn().getName();
-					fkInfo.addColumnMapping( baseColName,  referencedColName );
-				} 
-				if( fkInfo !=null )
-					ret.add( fkInfo );
-			}
-		}
-		return ret;
-	}
-
-	public static String getJavaType(Column dbColumn) {
-		return dbColumn.isPartOfPrimaryKey() ?
-				dbColumn.getPrimaryKeyJavaTypeDeclaration() :
-				dbColumn.getJavaTypeDeclaration();
-	}
-
-	public static boolean isDefaultSchema(Table dbTable){
-		String schemaName = dbTable.getSchema().getName();
-		Schema defaultSchema = dbTable.getSchema().getConnectionProfile().getDatabase().getDefaultSchema();
-		return defaultSchema.getName() == schemaName;
-	}	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/EntityGenTools.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/EntityGenTools.java
deleted file mode 100644
index faa48c3..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/EntityGenTools.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.util.Collection;
-import org.eclipse.jpt.common.utility.internal.NameTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-
-/**
- * Utility methods for entity generation.
- */
-public class EntityGenTools {
-
-	/**
-	 * Convert the specified (database) identifier to a unique "Java style"
-	 * class name.
-	 * @see #convertToUniqueJavaStyleIdentifier(String, boolean, Collection)
-	 */
-	public static String convertToUniqueJavaStyleClassName(String identifier, Collection<String> classNames) {
-		return convertToUniqueJavaStyleIdentifier(identifier, true, classNames);
-	}
-
-	/**
-	 * Convert the specified (database) identifier to a unique "Java style"
-	 * attribute (field/property) name.
-	 * @see #convertToUniqueJavaStyleIdentifier(String, boolean, Collection)
-	 */
-	public static String convertToUniqueJavaStyleAttributeName(String identifier, Collection<String> attributeNames) {
-		return convertToUniqueJavaStyleIdentifier(identifier, false, attributeNames);
-	}
-
-	/**
-	 * Convert the specified (database) identifier to a unique "Java style"
-	 * identifier:
-	 *     - if the identifier is all-caps, convert underscores to "camel case"
-	 *     - if the identifier is not all-caps, leave it unchanged (except, possibly, for the first letter)
-	 *     - convert to a legal Java identifier
-	 *         - eliminate illegal characters
-	 *         - if the result is a reserved word, modify it slightly
-	 * If the result is already one of the specified existing identifiers
-	 * (ignoring case so we don't have filename collisions on Windows),
-	 * modify it slightly again.
-	 *     "FOO" => "Foo" or "foo"
-	 *     "FOO_BAR" => "FooBar" or "fooBar"
-	 *     "PACKAGE" => "Package" or "package_"
-	 */
-	public static String convertToUniqueJavaStyleIdentifier(String identifier, boolean capitalizeFirstLetter, Collection<String> identifiers) {
-		String result = identifier;
-		if (StringTools.stringIsUppercase(result) || StringTools.stringIsLowercase(result)) {
-			// leave mixed case identifiers alone?
-			result = StringTools.convertUnderscoresToCamelCase(result, capitalizeFirstLetter);
-		} else {
-			result = capitalizeFirstLetter ? StringTools.capitalize(result) : StringTools.uncapitalize(result);
-		}
-		result = NameTools.convertToJavaIdentifier(result);
-		// assume that converting to a unique name will not result in a Java reserved word
-		// (since no Java reserved words end with a number)
-		result = NameTools.uniqueNameForIgnoreCase(result, identifiers);
-		return result;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private EntityGenTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java
deleted file mode 100644
index 8cab904..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.jar.JarInputStream;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-
-import org.eclipse.jpt.jpa.gen.internal.JptGenMessages;
-
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * Collections of utility methods handling files.
- * 
- */
-public class FileUtil
-{
-	
-	public static void deleteFolder(File folder)
-		throws IOException
-	{
-		File[] files = folder.listFiles();
-		//empty the folder first (java.io.file.delete requires it empty)
-		if (files != null) {
-			for (int i = 0; i < files.length; ++i) {
-				File f = files[i];
-				if (f.isDirectory())
-					deleteFolder(f);
-				else
-					deletePath(f);
-			}
-		}
-		deletePath(folder);
-	}
-
-	public static void deletePath(File f)
-		throws IOException
-	{
-		if (!f.delete()) {
-			String msgId = f.isDirectory() ?  JptGenMessages.Delete_Folder_Error :  JptGenMessages.Delete_File_Error;
-			throw new IOException( NLS.bind(msgId,f.getPath()));
-		}
-	}
-	
-	public static byte[] readFile(File src)
-		throws IOException
-	{
-		java.io.FileInputStream fin = new java.io.FileInputStream(src);
-		try {
-			long fileLen = src.length();
-			if (fileLen > Integer.MAX_VALUE)
-				throw new IOException("file length too big to be read by FileUtil.readFile: " + fileLen);
-		
-			byte[] bytes = new byte[(int)fileLen];
-			fin.read(bytes);
-			return bytes;
-		}
-		finally {
-			fin.close();
-		}
-	}
-
-	public static void writeFile(File dest, byte[] bytes)
-		throws IOException
-	{
-		if (dest.exists() && !dest.canWrite())
-			throw new IOException( NLS.bind(JptGenMessages.File_Read_Only_Error, dest.getPath()));  //throw with a clear error because otherwise FileOutputStream throws FileNotFoundException!
-		java.io.FileOutputStream fout = new java.io.FileOutputStream(dest.getPath(), false/*append*/);
-		try {
-			fout.write(bytes);
-		}
-		finally {
-			fout.flush();
-			fout.close();
-		}
-	}
-
-	/**
-	 * Returns the url for a file.
-	 * This basically the same as file.toUrl() but without the non-sense exception.
-	 */
-	public static URL getFileUrl(File file) {
-		try {
-			return file.toURI().toURL();
-		} catch (MalformedURLException e) {
-			return null; //should not happen as file.toURL() does not really throw an exception
-		}
-	}
-
-	public static void setFileContent(File file, java.io.InputStream contents) throws java.io.IOException {
-		Path path = new Path(file.getAbsolutePath());
-		try {
-			IFile iFile = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
-			if (iFile == null) {
-				throw new IOException("The path " + file + " does not seem to be a valid file path.");
-			}
-			iFile.setContents(contents, true/*force*/, true/*keepHistory*/, null/*monitor*/);
-		} catch (CoreException ex) {
-			throw new IOException(ex.getMessage());
-		}
-	}	
-	
-    /**
-     * Extract the contents of a Jar archive to the specified destination.
-     */
-    public static void unjar(InputStream in, File dest) throws IOException {
-        if (!dest.exists()) {
-            dest.mkdirs();
-        }
-        if (!dest.isDirectory()) {
-            throw new IOException("Destination must be a directory.");//$NON-NLS-1$
-        }
-        JarInputStream jin = new JarInputStream(in);
-        byte[] buffer = new byte[1024];
-
-        ZipEntry entry = jin.getNextEntry();
-        while (entry != null) {
-            String fileName = entry.getName();
-            if (fileName.charAt(fileName.length() - 1) == '/') {
-                fileName = fileName.substring(0, fileName.length() - 1);
-            }
-            if (fileName.charAt(0) == '/') {
-                fileName = fileName.substring(1);
-            }
-            if (File.separatorChar != '/') {
-                fileName = fileName.replace('/', File.separatorChar);
-            }
-            File file = new File(dest, fileName);
-            if (entry.isDirectory()) {
-                // make sure the directory exists
-                file.mkdirs();
-                jin.closeEntry();
-            } else {
-                // make sure the directory exists
-                File parent = file.getParentFile();
-                if (parent != null && !parent.exists()) {
-                    parent.mkdirs();
-                }
-
-                // dump the file
-                OutputStream out = new FileOutputStream(file);
-                int len = 0;
-                while ((len = jin.read(buffer, 0, buffer.length)) != -1) {
-                    out.write(buffer, 0, len);
-                }
-                out.flush();
-                out.close();
-                jin.closeEntry();
-                file.setLastModified(entry.getTime());
-            }
-            entry = jin.getNextEntry();
-        }
-        /* Explicitly write out the META-INF/MANIFEST.MF so that any headers such
-         as the Class-Path are seen for the unpackaged jar
-         */
-        Manifest mf = jin.getManifest();
-        if (mf != null) {
-            File file = new File(dest, "META-INF/MANIFEST.MF");//$NON-NLS-1$
-            File parent = file.getParentFile();
-            if (parent.exists() == false) {
-                parent.mkdirs();
-            }
-            OutputStream out = new FileOutputStream(file);
-            mf.write(out);
-            out.flush();
-            out.close();
-        }
-        jin.close();
-    }
-    
-	//Used to Unzip the a specific folder packed inside a plug-in bundle to the plug-in state location
-	public static File extractFilesFromBundle( URL url, Bundle bundle, String path ) throws Exception {
-		URL jarUrl = UrlUtil.getJarFileUrl(url);
-		File jarFile = new File(jarUrl.getFile() );
-		Location configLocation = Platform.getConfigurationLocation();
-		String pluginId = bundle.getSymbolicName();
-		File configFolder = new File( configLocation.getURL().getFile(), pluginId);
-		File templDir = new File( configFolder, path );
-		if( !templDir.exists() ){
-			FileUtil.unjar( new FileInputStream( jarFile ), configFolder );
-			//Delete un-related files and folders
-			File[] files = configFolder.listFiles();
-			for( File f : files ){
-				if( f.isFile() )
-					f.delete();
-				else if(  templDir.getPath().indexOf( f.getPath() ) !=0  ){
-					FileUtil.deleteFolder(f);
-				}
-			}
-		}
-		return templDir ;
-	}	
-}
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/ForeignKeyInfo.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/ForeignKeyInfo.java
deleted file mode 100644
index 70f5eb8..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/ForeignKeyInfo.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.util.List;
-
-import org.eclipse.jpt.jpa.db.ForeignKey;
-
-/**
- * Represents the metadata for a particular foreign key relationship 
- * in a relational database schema.
- * <p/>
- * The referrer column is one which actually contains a foreign 
- * key constraint, and is equivalent to the "foreign key" column.
- * <p/>
- * The referenced column is one which a referrer or foreign key 
- * column references, and is equivalent to the "primary key" column.
- * 
- */
-public class ForeignKeyInfo
-{
-	private transient ForeignKey mForeignKey ;
-    private String mName;
-    private String mReferrerTableName;
-    private String mReferencedTableName;
-    private List<String> mReferrerColNames = new java.util.ArrayList<String>();
-    private List<String> mReferencedColNames = new java.util.ArrayList<String>();
-    
-    /**
-     * @param fk The name of the constraint backing 
-     * this foreign key metadata instance.
-     */
-    public ForeignKeyInfo(ForeignKey fk, String referrerTableName, String referencedTableName) {
-    	mForeignKey = fk;
-    	mName = fk.getName();
-    	mReferrerTableName = referrerTableName;
-    	mReferencedTableName = referencedTableName;
-	}
-    /**
-     * Obtain the constraint name for this foreign key specification.
-     * The name for a Foreign Key may, as per the JDBC specification,
-     * be <code>null</code> where the constraint is not named.
-     * In addition, it may be hardly recognizable to the user,
-     * particularly for DB/2 constraints.
-     * 
-     * @return The name of the constraint backing
-     *         this foreign key metadata instance.
-     */
-    public String getName()
-    {
-        return mName;
-    }
-    
-    public ForeignKey getForeignKey(){
-    	return mForeignKey;
-    }
-    /**
-     * Add another pair of foreign key mappings for this foreign key
-     * definition.
-     * 
-     * @param referrerColumn The referrer column name for this mapping.
-     * 
-     * @param referencedColumn The referenced column name for this mapping.
-     */
-    public void addColumnMapping(String referrerColName, String referencedColName) {
-    	mReferrerColNames.add(referrerColName);
-    	mReferencedColNames.add(referencedColName);
-    }
-    /**
-     * Returns the referrer table name of this foreign key
-     * relationship.
-     */
-    public String getReferrerTableName() {
-        return mReferrerTableName;
-    }
-    /**
-     * Returns the referrer column names for this
-     * foreign key.
-     * The size of this list is always the same as the size of 
-     * the list retured from <code>getReferencedColumnNames</code>
-     */
-    public List<String> getReferrerColumnNames() {
-        return mReferrerColNames;
-    }
-    /**
-     * Returns the referenced table name of this foreign key
-     * relationship.
-     */
-    public String getReferencedTableName() {
-    	 return mReferencedTableName;
-    }
-    /**
-     * Returns the referenced column names for this
-     * foreign key.
-     * The size of this list is always the same as the size of 
-     * the list retured from <code>getReferrerColumnNames</code>
-     */
-    public List<String> getReferencedColumnNames() {
-        return mReferencedColNames;
-    }
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
-    public String toString() {
-    	return "name=" + mName
-		+ ", referrerTable=" + mReferrerTableName
-		+ ", referencedTable=" + mReferencedTableName
-		+ ", referrerColumns=" + mReferrerColNames
-		+ ", referencedColumns=" + mReferencedColNames
-			;
-    }
-}
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/StringUtil.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/StringUtil.java
deleted file mode 100644
index 99f2291..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/StringUtil.java
+++ /dev/null
@@ -1,648 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.beans.Introspector;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-public class StringUtil
-{
-	/**
-	 * Pads a string by adding a sequence of an arbitrary character at the beginning.
-	 * @param padChar The character to be used for padding.
-	 * @param len The desired length after padding.
-	 * @return The padded string. For example if <code>str</code> is "f4e" and <code>padChar</code> is '0' 
-	 * and <code>len</code> is 6 then this method returns "000f4e"
-	 */
-	public static String padLeft(String str, char padChar, int len) {
-		if(str == null) {
-			return null;
-		}
-		int strLen = str.length();
-		if (strLen < len) {
-			StringBuffer buffer = new StringBuffer(len);
-			int count = len-strLen;
-			for (int i = 0; i < count; ++i)
-				buffer.append(padChar);
-			buffer.append(str);
-			str = buffer.toString();
-		}
-		return str;
-	}
-	/**
-	 * Inserts a given character at the beginning and at the end of the specified string.
-	 * For example if the string is <tt>extreme</tt> and the char is <tt>'</tt> then 
-	 * the returned string is <tt>'exterme'</tt>.
-	 */
-	public static String quote(String str, char c) {
-		assert(str != null);
-		StringBuffer buffer = new StringBuffer(str.length()+2);
-		buffer.append(c);
-		buffer.append(str);
-		buffer.append(c);
-		return buffer.toString();
-	}
-	public static String doubleQuote(String str) {
-		return quote(str, '"');
-	}
-	/**
-	 * Removes the first and last single or double quotes (if they exist).
-	 */
-	public static String unquote(String quoted) {
-		if (quoted != null && quoted.length() >= 2){
-			int len = quoted.length();
-			char firstChar = quoted.charAt(0);
-			char lastChar = quoted.charAt(len-1);
-			if (firstChar == lastChar && (firstChar == '\'' || firstChar == '"')) {
-				return quoted.substring(1, len-1);
-			}
-		}
-		return quoted;
-	}
-	/**
-	 * Truncates a string and adds "..." in the result string.
-	 * If the string length is less or equal to the max len then 
-	 * the original string is returned.
-	 */
-	public static String truncate(String s, int maxLen) {
-		if (s == null) {
-			return null;
-		}
-		int len = s.length();
-		if (len > maxLen) {
-			int segmentLen = maxLen/2;
-			s = s.substring(0, segmentLen) + "..." + s.substring(len-segmentLen);
-		}
-		return s;
-	}
-	/**
-	 * Returns a string containing the same character repeated.
-	 */
-	public static String repeat(char c, int count) {
-		StringBuffer buffer = new StringBuffer(count);
-		for (int i = 0; i < count; ++i) {
-			buffer.append(c);
-		}
-		return buffer.toString();
-	}
-	/**
-	 * Returns the given string unless it is emtpty where it returns null.
-	 */
-	public static String nullIfEmpty(String s) {
-		if (s != null && s.length() == 0) {
-			s = null;
-		}
-		return s;
-	}
-	/**
-     * Returns a string containing the same characters as the argument string 
-	 * except that the control characters are replaced by the their hex code.
-	 * For example if the string is "ab\nc" the returned string is "ab{0xA}c".
-	 */
-	public static String getVisibleString(String s) {
-		if (s == null)
-			return null;
-		int len = s.length();
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < len; ++i) {
-			char c = s.charAt(i);
-			if (c <= 0x1F || (c == 0x20 && (i == 0 || i == len-1))) {
-				buffer.append("(0x" + Integer.toHexString((int)c).toUpperCase() + ")");
-			}
-			else buffer.append(c);
-		}
-		return buffer.toString();
-	}
-	/**
-	 * Replaces a portion of string.
-	 * @param str The original string.
-	 * @param offset The offset in the original string where the replace starts
-	 * @param len The replace length the original string
-	 * @param replaceStr The replacement string
-	 */
-	public static String strReplace(String str, int offset, int len, String replaceStr) {
-		StringBuffer buffer = new StringBuffer(str.length()-len+replaceStr.length());
-		buffer.append(str.substring(0, offset));
-		buffer.append(replaceStr);
-		buffer.append(str.substring(offset+len));
-		
-		return buffer.toString();
-	}
-	public static String strReplace(String str, String pattern, String replaceStr)
-	{
-		if(str == null) {
-			return null;
-		}
-		if(pattern == null || pattern.equals("")) {
-			return str;
-		}
-		int index = str.indexOf(pattern);
-		if (index < 0)
-			return str;
-		
-		if (replaceStr == null)
-			replaceStr = "";
-		return str.substring(0, index) + replaceStr + str.substring(index + pattern.length());
-	}
-	public static String strReplaceAll(String str, String pattern, String replaceStr)
-	{
-		if(str == null) {
-			return null;
-		}
-		if (replaceStr == null)
-			replaceStr = "";
-		if(pattern == null || pattern.equals("")) {
-			return str;
-		}
-		int index = str.indexOf(pattern);
-		while (index >= 0) {
-			str = str.substring(0, index) + replaceStr + str.substring(index + pattern.length());
-			index = str.indexOf(pattern, index+replaceStr.length());
-		}
-		return str;
-	}
-	public static String strInsert(String str, int index, String insertStr)
-	{
-		return str.substring(0, index)
-				+ insertStr
-				+ str.substring(index);
-	}
-    /**
-     * Tokenize the specified string into a <code>List</code> of
-     * words.
-     * If the string specified is <code>null</code> or empty, this
-     * method will return <code>null</code>.
-     * 
-     * @param s      The string to tokenize into a <code>List</code>.
-     * @param sep    The separator character to use to split
-     *               the string.
-     * @param trim   If <code>true</code>, run <code>trim</code> on
-     *               each element in the result <code>List</code>.
-     * 
-     * @return A <code>List</code> containing all tokenized words
-     *         in the parameter string.
-     *         Each element is of type <code>String</code>.
-     */
-	public static List<String> strToList(String s, char sep, boolean trim)
-	{
-	//ex: if sep is ';' then s should be someting like "Red;Black"
-		if (s == null || s.length() == 0)
-			return null;
-			
-		ArrayList<String> result = new ArrayList<String>();
-		
-		char delimiters[] = {sep};
-		java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(s, new String(delimiters), true/*returnDelimiters*/);
-		String lastTok=null;
-		while (tokenizer.hasMoreTokens()) {
-			String tok = tokenizer.nextToken();
-			if (tok.length()==1 && tok.charAt(0)==sep){//delimiter
-			    if (tok.equals(lastTok)||lastTok==null/*first element is empty*/)
-			        result.add("");
-			}
-			else{
-			    if (trim)
-			        tok = tok.trim();
-			    result.add(tok);
-			}
-			lastTok=tok;
-		}
-		if(lastTok.length()==1 && lastTok.charAt(0)==sep)//last element is empty
-		    result.add("");
-		result.trimToSize();
-		return result;
-	}
-	public static List<String> strToList(String s, char sep)
-	{
-		return strToList(s, sep, false/*trim*/);
-	}
-	
-	@SuppressWarnings("unchecked")
-	public static String listToStr(Collection a, char sep)
-	{
-		return listToStr(a, String.valueOf(sep));
-	}
-	
-	public static String listToStr(Collection<Object> a, String sep) {
-		//reverse of strToList
-		if (a == null)
-			return null;
-		int count = a.size();
-		if (count == 0)
-			return null;
-		
-		StringBuffer buffer = null;
-		for (Iterator<Object> iter = a.iterator(); iter.hasNext(); )
-		{
-			Object obj = iter.next();
-			if (obj == null)
-				continue;
-			
-			if (buffer == null)
-				buffer = new StringBuffer();
-			else
-				buffer.append(sep);
-			if (obj instanceof String)
-				buffer.append((String)obj);
-			else
-				buffer.append(obj);
-		}
-		return (buffer != null) ? buffer.toString() : null;
-	}
-	/**
-	 * Convert the text of a String into a Map of Strings, where each
-	 * key and value in the Map is of type String.
-	 * 
-	 * @param s      The string to be converted to a Map.
-	 * @param sep1   The separator between keys and their
-	 *               values.
-	 * @param sep2   The separator between key-value pairs.
-	 * 
-	 * @return The string converted to a Map.
-	 */
-	public static java.util.Map<String, String> strToMap(String s, char sep1, char sep2)
-	{
-		return strToMap(s, sep1, sep2, false/*lowercaseKeys*/);
-	}
-	/**
-	 * Convert the text of a String into a Map of Strings, where each
-	 * key and value in the Map is of type String.
-	 * This form also allows you to specify that all keys will be
-	 * converted to lower-case before adding to the Map.
-	 * 
-	 * @param s      The string to be converted to a Map.
-	 * @param sep1   The separator between keys and their
-	 *               values.
-	 * @param sep2   The separator between key-value pairs.
-	 * @param lowercaseKeys
-	 *               Whether to convert keys to lower case
-	 *               before adding to the Map.
-	 * 
-	 * @return The string converted to a Map.
-	 */
-	public static java.util.Map<String, String> strToMap(String s, char sep1, char sep2, boolean lowercaseKeys)
-	{
-		//ex: if sep1 is ':' and sep2 is ',' then s should be something like "color:Red,size:XL"
-		
-		if (s == null || s.length() == 0) {
-			return Collections.emptyMap();
-		}
-			
-		java.util.List<String> a = strToList(s, sep2);
-		if (a == null) {
-			return Collections.emptyMap();
-		}
-		
-		java.util.HashMap<String, String> hm = new java.util.HashMap<String, String>();
-		int count = a.size();
-		for (int i = 0; i < count; ++i)
-		{
-			String s2 = (String)a.get(i); //ex: color:Red
-			int pos = s2.indexOf(sep1);
-			if (pos >= 0)
-			{
-				String name = s2.substring(0, pos);
-				String val = s2.substring(pos+1);
-				if (lowercaseKeys)
-					name = name.toLowerCase();
-				hm.put(name, val);
-			}
-		}
-		return hm;
-	}
-	
-	@SuppressWarnings("unchecked")
-	public static String mapToStr(java.util.Map hm, char sep1, char sep2)
-	//reverse of strToMap
-	{
-		if (hm == null || hm.isEmpty())
-			return null;
-		
-		StringBuffer buffer = new StringBuffer();
-		java.util.Iterator<java.util.Map.Entry> iter = hm.entrySet().iterator();
-		while (iter.hasNext()) {
-			java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
-			buffer.append(entry.getKey());
-			buffer.append(sep1);
-			buffer.append(entry.getValue());
-			if (iter.hasNext()) {
-				buffer.append(sep2);
-			}
-		}
-		return buffer.toString();
-	}
-    /**
-     * Perform a <em>case insensitive</em> comparison between
-     * the string representations of two objects.
-     * 
-     * @param obj1   The first object to compare.
-     * @param obj2   The second object to compare.
-     * 
-     * @return <code>true</code> if both objects have the
-     *         same case-insensitive string representation.
-     */
-	public static boolean compareAsStrings(Object obj1, Object obj2)
-	{	
-		if (obj1 == null || obj2 == null)
-			return obj1 == obj2;
-		
-		String s1, s2;
-		if (obj1 instanceof String) {
-			s1 = (String)obj1;
-        } else {
-			s1 = obj1.toString();
-        }
-		if (obj2 instanceof String) {
-			s2 = (String)obj2;
-        }
-        else {
-			s2 = obj2.toString();
-        }
-		
-		return s1.equalsIgnoreCase(s2);
-	}
-	/**
-	 * Tests whether a string starts with any of a list of strings.
-	 */
-	public static boolean startsWithAny(String s, List<String> prefixes) {
-		int count = prefixes.size();
-		for (int i = 0; i < count; ++i) {
-			if (s.startsWith((String)prefixes.get(i))) {
-				return true;
-			}
-		}
-		return false;
-	}
-	/**
-	 * Returns the argument string with the first char upper-case.
-	 */
-	public static String initUpper(String str) {
-		if (str == null || str.length() == 0) {
-			return str;
-		}
-		return Character.toUpperCase(str.charAt(0)) + str.substring(1);
-	}
-	/**
-	 * Returns the argument string with the first char lower-case.
-	 */
-	public static String initLower(String str) {
-		if (str == null || str.length() == 0) {
-			return str;
-		}
-		return Character.toLowerCase(str.charAt(0)) + str.substring(1);
-	}
-	/**
-	 * Tests whether all characters in the given string are upper
-	 * case.
-	 */
-	public static boolean isUpperCase(String s) {
-		return s.toUpperCase().equals(s);
-	}
-	/**
-	 * Returns the first non-white char index starting from the 
-	 * specified index.
-	 */
-	public static int skipWhiteSpaces(String str, int index) {
-		int len = str.length();
-		while (index < len) {
-			if (!Character.isWhitespace(str.charAt(index))) {
-				break;
-			}
-			++index;
-		}
-		return index;
-	}
-	/**
-	 * Collapses consecutive white spaces into one space.
-	 */
-	public static String collapseWhiteSpaces(String str){
-	    String result=null;
-	    if (str!=null){
-	        StringBuffer buffer=new StringBuffer();
-	        boolean isInWhiteSpace=false;
-	        for (int i=0;i<str.length();i++){
-	            char c=str.charAt(i);
-	            if (Character.isWhitespace(c)){
-	                isInWhiteSpace=true;
-	            }
-	            else {
-	                if (isInWhiteSpace)
-	                    buffer.append(" ");
-	                isInWhiteSpace=false;   
-	                buffer.append(c);
-	            }
-	        }
-	        result=buffer.toString();
-	    }
-	    return result;
-	}
-	
-	/**
-	 * Utility methods used to convert DB object names to  
-	 * appropriate Java type and field name 
-	 */
-	public static String pluralise(String name) {
-		String result = name;
-		if (name.length() == 1) {
-			result += 's';
-		} else if (!seemsPluralised(name)) {
-			String lower = name.toLowerCase();
-			if (!lower.endsWith("data")) { //orderData --> orderDatas is dumb
-				char secondLast = lower.charAt(name.length() - 2);
-				if (!isVowel(secondLast) && lower.endsWith("y")) {
-					// city, body etc --> cities, bodies
-					result = name.substring(0, name.length() - 1) + "ies";
-				} else if (lower.endsWith("ch") || lower.endsWith("s")) {
-					// switch --> switches  or bus --> buses
-					result = name + "es";
-				} else {
-					result = name + "s";
-				}
-			}
-		}
-		return result;
-	}
-
-	public static String singularise(String name) {
-		String result = name;
-		if (seemsPluralised(name)) {
-			String lower = name.toLowerCase();
-			if (lower.endsWith("ies")) {
-				// cities --> city
-				result = name.substring(0, name.length() - 3) + "y";
-			} else if (lower.endsWith("ches") || lower.endsWith("ses")) {
-				// switches --> switch or buses --> bus
-				result = name.substring(0, name.length() - 2);
-			} else if (lower.endsWith("s")) {
-				// customers --> customer
-				result = name.substring(0, name.length() - 1);
-			}
-		}
-		return result;
-	}
-	private final static boolean isVowel(char c) {
-		boolean vowel = false;
-		vowel |= c == 'a';
-		vowel |= c == 'e';
-		vowel |= c == 'i';
-		vowel |= c == 'o';
-		vowel |= c == 'u';
-		vowel |= c == 'y';
-		return vowel;
-	}
-	private static boolean seemsPluralised(String name) {
-		name = name.toLowerCase();
-		boolean pluralised = false;
-		pluralised |= name.endsWith("es");
-		pluralised |= name.endsWith("s");
-		pluralised &= !(name.endsWith("ss") || name.endsWith("us"));
-		return pluralised;
-	}
-	
-	/**
-	 * Returns the package name of a class name.
-	 * For example if given <code>oracle.util.ObjectUtil</code> it would return 
-	 * <code>oracle.util</code>. If the class is not in a package then null is returned.
-	 */
-	public static String getPackageName(String className) {
-		if(className == null) {
-			return null;
-		}
-		int lastDotIndex = className.lastIndexOf('.');
-		if (lastDotIndex < 0)
-			return null;
-		return className.substring(0, lastDotIndex);
-	}
-	/**
-	 * Returns the class name given a full class name.
-	 * For example if given <code>oracle.util.ObjectUtil</code> it would return 
-	 * <code>ObjectUtil</code>
-	 */
-	public static String getClassName(String fullClassName) {
-		if(fullClassName == null) {
-			return null;
-		}
-		int lastDotIndex = fullClassName.lastIndexOf('.');
-		if (lastDotIndex < 0)
-			return fullClassName;
-		return fullClassName.substring(lastDotIndex+1);
-	}
-
-	
-	/**
-	 * Converts a database column name to a Java variable name (<em>first letter
-	 * not capitalized</em>).
-	 */
-	public static String columnNameToVarName(String columnName) {
-		return dbNameToVarName(columnName);
-	}
-	/**
-	 * Converts a database table name to a Java variable name (<em>first letter
-	 * not capitalized</em>).
-	 */
-	public static String tableNameToVarName(String tableName) {
-		return dbNameToVarName(tableName);
-	}
-	/**
-	 * Converts a database name (table or column) to a java name (<em>first letter
-	 * not capitalized</em>). employee_name or employee-name -> employeeName
-	 */
-	private static String dbNameToVarName(String s) {
-		if ("".equals(s)) {
-			return s;
-		}
-		StringBuffer result = new StringBuffer();
-
-		boolean capitalize = true;
-		boolean lastCapital = false;
-		boolean lastDecapitalized = false;
-		String p = null;
-		for (int i = 0; i < s.length(); i++) {
-			String c = s.substring(i, i + 1);
-			if ("_".equals(c) || " ".equals(c)) {
-				capitalize = true;
-				continue;
-			}
-
-			if (c.toUpperCase().equals(c)) {
-				if (lastDecapitalized && !lastCapital) {
-					capitalize = true;
-				}
-				lastCapital = true;
-			} else {
-				lastCapital = false;
-			}
-
-			if (capitalize) {
-				if (p == null || !p.equals("_")) {
-					result.append(c.toUpperCase());
-					capitalize = false;
-					p = c;
-				} else {
-					result.append(c.toLowerCase());
-					capitalize = false;
-					p = c;
-				}
-			} else {
-				result.append(c.toLowerCase());
-				lastDecapitalized = true;
-				p = c;
-			}
-
-		}
-		/*this was using StringUtil.initLower. Changed to Introspector.decapitalize so that 
-		 * it returns the correct bean property name when called from columnNameToVarName.
-		 * This is necessary because otherwise URL would be uRL which would cause 
-		 * an "The property uRL is undefined for the type xx" error because 
-		 * Introspector.getBeanInfo (used by JavaTypeIntrospector) returns 
-		 * the property name as URL.*/
-		String resultStr = Introspector.decapitalize(result.toString());
-		if (resultStr.equals("class")) {
-			// "class" is illegal becauseOf Object.getClass() clash
-			resultStr = "clazz";
-		}
-		return resultStr;
-	}
-	
-	/**
-	 * Compare two objects. If both String, ignore case
-	 * @param o1
-	 * @param o2
-	 * @param ignoreCaseIfStr
-	 * @return
-	 */
-	public static boolean equalObjects(Object o1, Object o2, boolean ignoreCaseIfStr)
-	{
-		if (o1 == o2) {
-			return true;
-		}
-	    boolean result;
-	    if (o1 == null || o2 == null) {
-	    	return false; //we already checked o1 == o2 above
-	    }
-	    if (ignoreCaseIfStr && o1 instanceof String && o2 instanceof String)
-	        result = ((String)o1).equalsIgnoreCase((String)o2);
-	    else
-	        result = o1.equals(o2);
-	
-	    return result;
-	}
-
-	public static boolean equalObjects(Object o1, Object o2)
-	{
-	    return equalObjects(o1, o2, false/*ignoreCaseIfStr*/);
-	}
-	
-}
-
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/UrlUtil.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/UrlUtil.java
deleted file mode 100644
index db4f13b..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/UrlUtil.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-/**
- * Collections of utility methods handling URLs.
- * 
- */
-public class UrlUtil
-{
-	/**
-	 * The <code>file</code> string indicating a url file protocol.
-	 */
-	public static final String FILE_PROTOCOL = "file";
-	/**
-	 * The <code>file</code> string indicating a url http protocol.
-	 */
-	public static final String HTTP_PROTOCOL = "http";
-	/**
-	 * The <code>file</code> string indicating a url http protocol.
-	 */
-	public static final String HTTPS_PROTOCOL = "https";
-	/**
-	 * The <code>file</code> string indicating a url file protocol.
-	 */
-	public static final String JAR_PROTOCOL = "jar";
-
-	
-	/**
-	 * Returns true if the specified url is to a file, i.e its protocol is <code>file</code>.
-	 */
-	public static boolean isFileUrl(URL url) {
-		return url != null && FILE_PROTOCOL.equals(url.getProtocol());
-	}
-	/**
-	 * Returns true if the specified url is to a jar, i.e its protocol is <code>jar</code>.
-	 * For example <code>jar:file:/C:/testapps/example/WEB-INF/lib/struts.jar!/META-INF/tlds/struts-bean.tld</code>.
-	 */
-	public static boolean isJarUrl(URL url) {
-		return url != null && JAR_PROTOCOL.equals(url.getProtocol());
-	}
-	/**
-	 * Returns true if the specified url protocol is http.
-	 */
-	public static boolean isHttpUrl(URL url) {
-		String protocol =  url.getProtocol();
-		return url != null && (HTTP_PROTOCOL.equals(protocol) || HTTPS_PROTOCOL.equals(protocol));
-	}
-	/**
-	 * Returns the <code>File</code> corresponding to a url, or null if the url 
-	 * protocol is not file.
-	 */
-	public static java.io.File getUrlFile(URL url) {
-		if (isFileUrl(url) && !isJarUrl( url ) ){
-			File ret = new java.io.File(url.getFile());
-			return ret ;
-		}
-		return null;
- 	}
-
-	
-	/**
-	 * Returns the url to a jar file given a url to a file inside 
-	 * the jar.
-	 * For example if given 
-	 * <code>jar:file:/C:/testapps/example/WEB-INF/lib/struts.jar!/META-INF/tlds/struts-bean.tld</code>
-	 * this method returns <code>file:/C:/testapps/example/WEB-INF/lib/struts.jar</code>.
-	 * 
-	 * <p>Returns null if the given url is not recognized as a url to a file 
-	 * inside a jar.
-	 */
-	public static URL getJarFileUrl(URL url) {
-		if (!isJarUrl(url)) {
-			return null;
-		}
-		String file = url.getFile(); //file:/C:/testapps/example/WEB-INF/lib/struts.jar!/META-INF/tlds/struts-bean.tld
-		int index = file.indexOf('!');
-		if (index < 0) {
-			return null;
-		}
-		String jarFileUrlStr = file.substring(0, index);
-		try {
-			return new URL(jarFileUrlStr);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-	
-	public static boolean isRemote(String url){
-		return url.startsWith("http:")||url.startsWith("https:")||url.startsWith("www.");
-	}
-	
-	public static File getTemplateFolder(String plugId , String strPath ){
-		Bundle bundle = Platform.getBundle( plugId );
-		Path path = new Path( strPath );
-		URL url = FileLocator.find(bundle, path, null);
-		try {
-			URL templUrl;
-			templUrl = FileLocator.resolve(url);
-			File templDir = UrlUtil.getUrlFile(templUrl);
-			return templDir ;
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm
deleted file mode 100644
index 54b98b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm
+++ /dev/null
@@ -1,54 +0,0 @@
-##included template. Generates the @Column annotation.

-##Assumes that the context has a "column" and a "table" object

-##generate annotation only the parameters for the column NOT default

-##and the generateDLLAnnotation property is not set on the table

-###------------------------------------------------

-#macro( append $members $parameters )

-#if( $members == "")

-#set( $members = $parameters )

-#else

-#set( $members = "$members, $parameters" ) 

-#end	

-#end

-###------------------------------------------------

-#if ( $column.dataTypeLOB)

-    @Lob()

-#end

-#if ( $column.needMapTemporalType)

-    @Temporal( TemporalType.$column.temporalType)

-#end

-#set ($members = "")

-#if ( !$column.default || $customizer.generateDDLAnnotations )

-#if ( !${column.defaultname} )

-#append($members "name=$customizer.quote($column.name)" )

-#end

-#if (!$column.insertable)

-#append(${members} "insertable=false")

-#end

-#if (!$column.updateable)

-#append(${members} "updatable=false")

-#end

-#end

-#if( $customizer.generateDDLAnnotations )

-#if ($column.unique)

-#append($members  "unique=true")

-#end

-#if (!$column.nullable)

-#append($members  "nullable=false")

-#end

-#if ($column.size > 0)

-#if ($column.numeric)

-#append($members "precision=$column.size")

-#if ($column.decimalDigits != 0 && $column.decimalDigits != -1)

-#append($members "scale=$column.decimalDigits")

-#end

-#else

-#if ( !$column.dataTypeLOB)

-#append($members "length=$column.size")

-#end

-#end

-#end

-#end

-#if( $members !="" )

-	@Column($members)

-#end

diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm
deleted file mode 100644
index fccd7f2..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm
+++ /dev/null
@@ -1,80 +0,0 @@
-##included template. Generates the @JoinTable, @JoinColumn or @JoinColumns annotation.

-##Assumes that the context has a "role" object representing the generated AssociationRole

-##

-##macro joinColumn uses $column, $referencedColumn

-#macro (joinColumn $column $referencedColumn)

-#set ($members = "name=$customizer.quote($column.joinColumnName)")

-#if( !$referencedColumn.primaryKey || $referencedColumn.partOfCompositePrimaryKey )

-#set ($members = "$members, referencedColumnName=$customizer.quote($referencedColumn.name)")

-#end

-#if( $customizer.generateDDLAnnotations )

-#if ($column.unique && !$column.primaryKey)

-#set ($members = "$members, unique=true")

-#end

-#if (!$column.nullable)

-#set ($members = "$members, nullable=false")

-#end

-#end

-#if ($customizer.generateDDLAnnotations && !$role.association.joinTable && !$role.referrerTable.isColumnUpdateInsert($role, $column))

-#set ($members = "$members, insertable=false, updatable=false")

-#end

-@JoinColumn($members)#end

-##

-##

-##

-#if ($role.association.joinTable)

-#set ($joinTable = $role.association.joinTable)

-	@JoinTable(

-		name="${joinTable.joinTableAnnotationName}"

-		, joinColumns={

-#foreach ($column in $role.referrerColumns)

-#set ($referencedColumn = $role.getReferencedColumn(${column.name}))

-##$referencedColumn is the column in the join table

-			#joinColumn($referencedColumn $column)

-#if ($velocityCount < $role.referrerColumns.size() )

-,

-#end			

-#end

-

-			}

-		, inverseJoinColumns={

-#foreach ($column in $role.referencedColumns)

-#set ($referencedColumn = $role.getReferrerColumn(${column.name}))

-##$referencedColumn is the column in the join table

-			#joinColumn($referencedColumn $column)

-#if ($velocityCount < $role.referencedColumns.size() )

-,

-#end			

-#end

-

-			}

-		)

-#else

-#if ($role.referrerColumns.size() == 1)

-#set ($column = $role.referrerColumns.get(0))

-#set ($referencedColumn = $role.getReferencedColumn(${column.name}))

-#set ($referencedTableName = $role.getReferencedTable().getName() )

-#set( $referencedTablePkName = $role.getReferencedTable().getPrimaryKeyColumn().name )

-#set( $computedJoinColumnName = "${role.propertyName}_${referencedTablePkName}" )

-#set( $isDefaultJoinColumnName =  $column.isDefaultJoinColumnName( ${role.propertyName}) )

-#if( ! $isDefaultJoinColumnName )

-	#joinColumn($column $referencedColumn)

-

-#elseif( $customizer.generateDDLAnnotations )

-	#joinColumn($column $referencedColumn)

-

-#end

-#else

-	@JoinColumns({

-#foreach ($column in $role.referrerColumns)

-#set ($referencedColumn = $role.getReferencedColumn(${column.name}))

-		#joinColumn($column $referencedColumn)

-#if ($velocityCount < $role.referrerColumns.size() )

-,

-#else

-

-#end

-#end		

-		})

-#end

-#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm
deleted file mode 100644
index 8c4d4d6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm
+++ /dev/null
@@ -1,134 +0,0 @@
-#if ($table.package != "")

-package ${table.package};

-#end

-

-import java.io.Serializable;

-import javax.persistence.*;

-${table.importStatements}

-

-/**

- * The persistent class for the ${table.name} database table.

- * 

- */

-@Entity

-#if( !${table.defaultname} || $customizer.generateDDLAnnotations)

-@Table(name="${table.name}")

-#end

-public class ${table.className} ${table.generateExtendsImplements()} {

-	private static final long serialVersionUID = 1L;

-#####

-##### fields

-#####

-#if ($table.compositeKey)

-#if ($table.access == "field")

-

-	@EmbeddedId

-#end

-	private ${table.compositeKeyClassName} ${table.compositeKeyPropertyName};

-#end

-#foreach ($column in $table.getSimpleColumns(true, true, false))

-#if ($table.access == "field")

-

-#parse("mappingKind.vm")

-#parse("column.vm")

-#end

-	${column.fieldScope} ${column.simplePropertyType} ${column.propertyName};

-#end

-#foreach ($role in $table.associationRoles)

-#####

-##### field annotations

-#####

-#if ($table.access == "field")

-

-	//${role.description}

-#if ($role.cardinality == "many-to-one")

-#parse("manyToOne.vm")

-#elseif ($role.cardinality == "many-to-many")

-#parse("manyToMany.vm")

-#elseif ($role.cardinality == "one-to-many")

-#parse("oneToMany.vm")

-#elseif ($role.cardinality == "one-to-one")

-#parse("oneToOne.vm")

-#end

-#end

-#####

-##### field declaration

-#####

-#if ($role.cardinality == "many-to-one" || $role.cardinality == "one-to-one")

-#set ($propertyType = ${role.referencedTable.className})

-#elseif ($role.cardinality == "many-to-many" || $role.cardinality == "one-to-many")

-#set ($propertyType = "${role.referencedTable.simpleCollectionType}<${role.referencedTable.className}>")

-#end

-	private $propertyType $role.propertyName;

-#end

-

-    public ${table.className}() {

-    }

-

-#####

-##### simple properties getters and setters

-#####

-#if ($table.compositeKey)

-#if ($table.access == "property")

-

-	@EmbeddedId

-#end

-	public $table.compositeKeyClassName $customizer.propertyGetter($table.compositeKeyPropertyName)() {

-		return this.${table.compositeKeyPropertyName};

-	}

-

-	public void $customizer.propertySetter($table.compositeKeyPropertyName)($table.compositeKeyClassName $table.compositeKeyPropertyName) {

-		this.${table.compositeKeyPropertyName} = ${table.compositeKeyPropertyName};

-	}

-	

-#end

-#foreach ($column in $table.getSimpleColumns(true, true, false))

-#if ($table.access == "property")

-

-#parse("mappingKind.vm")

-#parse("column.vm")

-#end

-	$column.propertyGetScope $column.simplePropertyType $customizer.propertyGetter($column.propertyName)() {

-		return this.${column.propertyName};

-	}

-

-	$column.propertySetScope void $customizer.propertySetter($column.propertyName)($column.simplePropertyType $column.propertyName) {

-		this.${column.propertyName} = ${column.propertyName};

-	}

-

-#end

-#####

-##### associations getters and setters

-#####

-#foreach ($role in $table.associationRoles)

-#if ($table.access == "property")

-

-	//${role.description}

-#if ($role.cardinality == "many-to-one")

-#parse("manyToOne.vm")

-#elseif ($role.cardinality == "many-to-many")

-#parse("manyToMany.vm")

-#elseif ($role.cardinality == "one-to-many")

-#parse("oneToMany.vm")

-#elseif ($role.cardinality == "one-to-one")

-#parse("oneToOne.vm")

-#end

-#end

-##

-#if ($role.cardinality == "many-to-one" || $role.cardinality == "one-to-one")

-#set ($propertyType = $role.referencedTable.className)

-#elseif ($role.cardinality == "many-to-many" || $role.cardinality == "one-to-many")

-#set ($propertyType = "${role.referencedTable.simpleCollectionType}<${role.referencedTable.className}>")

-#end

-	public $propertyType $customizer.propertyGetter($role.propertyName)() {

-		return this.${role.propertyName};

-	}

-

-	public void ${customizer.propertySetter($role.propertyName)}($propertyType $role.propertyName) {

-		this.${role.propertyName} = $role.propertyName;

-	}

-	

-##

-#end

-##

-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToMany.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToMany.vm
deleted file mode 100644
index aed48c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToMany.vm
+++ /dev/null
@@ -1,26 +0,0 @@
-##included template. Generates the @ManyToMany annotation.

-##Assumes that the context has a "role" object representing the generated AssociationRole

-##

-#if ($role.association.bidirectional && !$role.isReferrerRole())##the owning side (either side for many-to-many)

-#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))

-#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))

-#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-#if($members!="")

-	@ManyToMany($members)

-#else	

-    @ManyToMany

-#end    

-#else

-#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))

-#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-#if($members!="")

-	@ManyToMany($members)

-#else	

-    @ManyToMany

-#end    

-#parse("join.vm")

-#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToOne.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToOne.vm
deleted file mode 100644
index e4b1608..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToOne.vm
+++ /dev/null
@@ -1,13 +0,0 @@
-##included template. Generates the @ManyToOne annotation.

-##Assumes that the context has a "role" object representing the generated AssociationRole

-##

-#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))

-#if( $customizer.genFetch($role.referrerTable)!= "" && $customizer.genFetch($role.referrerTable)!= "FetchType.EAGER")

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-#if($members!="")

-	@ManyToOne($members)

-#else

-    @ManyToOne

-#end

-#parse("join.vm")
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/mappingKind.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/mappingKind.vm
deleted file mode 100644
index c43f187..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/mappingKind.vm
+++ /dev/null
@@ -1,34 +0,0 @@
-##included template. Generates the @Basic, @Id, @Version annotations.

-##Assumes that the context has a "column" object

-##

-#set ($mappingKind = $column.mappingKind)

-#if ($mappingKind == "id")

-	@Id

-#set ($idGenerator = $table.idGenerator)

-#if ($idGenerator == "auto")

-#set ($generationType = "GenerationType.AUTO")

-#elseif ($idGenerator == "identity")

-#set ($generationType = "GenerationType.IDENTITY")

-#elseif ($idGenerator == "sequence")

-#set ($generationType = "GenerationType.SEQUENCE")

-#elseif ($idGenerator == "table")

-#set ($generationType = "GenerationType.TABLE")

-#else

-#set ($generationType = "")

-#end

-#if ($idGenerator == "sequence" )

-#set ($generatorName = "${table.name.toUpperCase()}_${column.propertyName.toUpperCase()}_GENERATOR")

-#if( $table.formattedSequence != "" )

-	@SequenceGenerator(name="$generatorName", sequenceName="$table.formattedSequence")

-#else

-	@SequenceGenerator(name="$generatorName" )

-#end	

-	@GeneratedValue(strategy=$generationType, generator="$generatorName")

-#elseif ($generationType != "")

-	@GeneratedValue(strategy=$generationType)

-#end      

-#elseif ($mappingKind == "version")

-	@Version

-#else

-##DEFAULT is @Basic, no need to generate

-#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToMany.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToMany.vm
deleted file mode 100644
index 647bb3c..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToMany.vm
+++ /dev/null
@@ -1,18 +0,0 @@
-##included template. Generates the @OneToMany annotation.

-##Assumes that the context has a "role" object representing the generated AssociationRole

-##

-#if ($role.association.bidirectional)

-#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))

-#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))

-#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable) !="FetchType.LAZY")

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-	@OneToMany($members)

-#else

-#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))

-#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable) !="FetchType.LAZY")

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-	@OneToMany($members)

-#parse("join.vm")

-#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToOne.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToOne.vm
deleted file mode 100644
index 39849b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToOne.vm
+++ /dev/null
@@ -1,22 +0,0 @@
-##included template. Generates the @OneToOne annotation.

-##Assumes that the context has a "role" object representing the generated AssociationRole

-##

-#if ($role.association.bidirectional && !$role.isReferrerRole())##the owning side (either side for one-to-one)

-#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))

-#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))

-#if( $customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.EAGER" )

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-	@OneToOne($members)

-#else

-#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))

-#if( $customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.EAGER" )

-#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))

-#end

-#if($members!="")

-	@OneToOne($members)

-#else

-	@OneToOne

-#end

-#parse("join.vm")

-#end
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/pk.java.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/pk.java.vm
deleted file mode 100644
index 4874f68..0000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/pk.java.vm
+++ /dev/null
@@ -1,66 +0,0 @@
-#if ($table.package != "")

-package ${table.package};

-#end

-

-import java.io.Serializable;

-import javax.persistence.*;

-

-/**

- * The primary key class for the ${table.name} database table.

- * 

- */

-@Embeddable

-public class ${table.compositeKeyClassName} implements Serializable {

-	//default serial version id, required for serializable classes.

-	private static final long serialVersionUID = 1L;

-#####

-##### fields

-#####

-#foreach ($column in $table.primaryKeyColumns)

-#if ($table.access == "field")

-

-#parse("column.vm")

-#end

-	${column.fieldScope} ${column.propertyType} ${column.propertyName};

-#end

-

-    public ${table.compositeKeyClassName}() {

-    }

-#####

-##### simple properties getters and setters

-#####

-#foreach ($column in $table.primaryKeyColumns)

-#if ($table.access == "property")

-

-#parse("column.vm")

-#end

-	$column.propertyGetScope $column.propertyType $customizer.propertyGetter($column.propertyName)() {

-		return this.${column.propertyName};

-	}

-	$column.propertySetScope void $customizer.propertySetter($column.propertyName)($column.propertyType $column.propertyName) {

-		this.${column.propertyName} = ${column.propertyName};

-	}

-#end

-##

-## equals/hashCode

-

-	public boolean equals(Object other) {

-		if (this == other) {

-			return true;

-		}

-		if (!(other instanceof ${table.compositeKeyClassName})) {

-			return false;

-		}

-		${table.compositeKeyClassName} castOther = (${table.compositeKeyClassName})other;

-		return 

-			${table.primaryKeyEqualsClause}

-

-    }

-    

-	public int hashCode() {

-		final int prime = 31;

-		int hash = 17;

-		${table.primaryKeyHashCodeClause}

-		return hash;

-    }

-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.project b/jpa/plugins/org.eclipse.jpt.ui/.project
deleted file mode 100644
index 254a17a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.ui</name>
-	<comment>renamed to org.eclipse.jpt.jpa.ui</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.project b/jpa/plugins/org.eclipse.jpt.utility/.project
deleted file mode 100644
index 417751d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.utility</name>
-	<comment>renamed to org.eclipse.jpt.common.utility and moved to common component</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project
deleted file mode 100644
index 5eca35f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.core.tests.extension.resource</name>
-	<comment>renamed to org.eclipse.jpt.jpa.core.tests.extension.resource</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.project b/jpa/tests/org.eclipse.jpt.core.tests/.project
deleted file mode 100644
index 5652fd4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.core.tests</name>
-	<comment>renamed to rg.eclipse.jpt.jpa.core.tests</comment>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/.project b/jpa/tests/org.eclipse.jpt.db.tests/.project
deleted file mode 100644
index a1ffb1d..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.db.tests</name>
-	<comment>renamed to org.eclipse.jpt.jpa.db.tests</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project
deleted file mode 100644
index baaef71..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core.tests</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.core.tests</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/.project b/jpa/tests/org.eclipse.jpt.gen.tests/.project
deleted file mode 100644
index 633d887..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.gen.tests</name>
-	<comment>renamed to org.eclipse.jpt.jpa.gen.tests</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath
deleted file mode 100644
index 5c128f3..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project
deleted file mode 100644
index fdaecf7..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.db.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b23d0c7..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:11:11 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 929d545..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:59:18 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 1d7938b..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.db.tests
-Bundle-Version: 2.0.0.qualifier
-Bundle-Activator: org.eclipse.jpt.jpa.db.tests.internal.JptJpaDbTestsPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.datatools.connectivity;bundle-version="[1.1.0,1.3.0)",
- org.eclipse.datatools.connectivity.sqm.core;bundle-version="1.0.1",
- org.eclipse.datatools.modelbase.sql;bundle-version="1.0.0",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)",
- org.junit;bundle-version="3.8.0"
-Export-Package: org.eclipse.jpt.jpa.db.tests.internal;x-internal:=true,
- org.eclipse.jpt.jpa.db.tests.internal.platforms;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html b/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties
deleted file mode 100644
index d27ab8f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-################################################################################
-# Copyright (c) 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties
deleted file mode 100644
index 242d156..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional for Derby
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/derby/lib/derby.jar
-jars = 
-
-# the JDBC URL is required for Derby
-# url = jdbc:derby:C:/derby/data/testdb;create=true
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties
deleted file mode 100644
index d6407de..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/mysql/mysql-connector-java-5.0.6-bin.jar
-jars = 
-
-# the JDBC URL is optional for MySQL
-# url = jdbc:mysql://localhost:3306
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties
deleted file mode 100644
index 4b911b4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:testdb
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties
deleted file mode 100644
index e67c01a..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:XE
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties
deleted file mode 100644
index 4b911b4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:testdb
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties
deleted file mode 100644
index 32fafe4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/postgresql/jdbc/postgresql-8.2-505.jdbc3.jar
-jars = 
-
-# the JDBC URL is optional for PostgreSQL
-# url = jdbc:postgresql
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties
deleted file mode 100644
index f72b645..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/sqlserver/lib/sqljdbc.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:sqlserver://localhost:1433
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties
deleted file mode 100644
index 493d5d4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/sybase/lib/jconn3.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:sybase:Tds:localhost:5000
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties
deleted file mode 100644
index 2c98779..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = JPA DB Tests
-providerName = Eclipse.org
-
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java
deleted file mode 100644
index 9d2efa4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-
-import junit.framework.TestCase;
-
-/**
- * These aren't tests. They are just an easy way to dump JDBC metadata to the
- * console.
- */
-@SuppressWarnings("nls")
-public class JDBCTests extends TestCase {
-
-	public JDBCTests(String name) {
-		super(name);
-	}
-
-	public void testDerby() throws Exception {
-		this.dumpMetaData(DERBY);
-	}
-
-	public void testMySQL() throws Exception {
-		this.dumpMetaData(MYSQL);
-	}
-
-	public void testOracle() throws Exception {
-		this.dumpMetaData(ORACLE);
-	}
-
-	public void testPostgreSQL() throws Exception {
-		this.dumpMetaData(POSTGRESQL);
-	}
-
-	public void testSybase() throws Exception {
-		this.dumpMetaData(SYBASE);
-	}
-
-	protected void dumpMetaData(ConnectionConfig config) throws Exception {
-		System.out.println("***** PLATFORM: " + config.platformName + " *****");
-		System.out.println();
-		Class.forName(config.driverClassName);
-		Connection connection = DriverManager.getConnection(this.buildURL(config), config.user, config.password);
-		System.out.println("CATALOGS:");
-		JDBCTools.dump(connection.getMetaData().getCatalogs());
-		System.out.println();
-		System.out.println("SCHEMATA:");
-		JDBCTools.dump(connection.getMetaData().getSchemas());
-		connection.close();
-		System.out.println();
-	}
-
-	protected String buildURL(ConnectionConfig config) {
-		return "jdbc:" + config.databaseURL;
-	}
-
-	protected static final ConnectionConfig DERBY =
-		new ConnectionConfig(
-			"Derby",
-			"org.apache.derby.jdbc.EmbeddedDriver",
-			"derby:C:/derby/data/test",
-			null,
-			null
-		);
-
-	protected static final ConnectionConfig MYSQL =
-		new ConnectionConfig(
-			"MySQL",
-			"com.mysql.jdbc.Driver",
-			"mysql://localhost:3306",
-			"root",
-			"oracle"
-		);
-
-	protected static final ConnectionConfig ORACLE =
-		new ConnectionConfig(
-			"Oracle",
-			"oracle.jdbc.OracleDriver",
-			"oracle:thin:@localhost:1521:orcl",
-			"scott",
-			"tiger"
-		);
-
-	protected static final ConnectionConfig POSTGRESQL =
-		new ConnectionConfig(
-			"PostgreSQL",
-			"org.postgresql.Driver",
-			"postgresql:postgres",
-			"postgres",
-			"oracle"
-		);
-
-	// the Sybase server must be configured explicitly to "localhost"
-	// in the config file [SYBASE]/ini/sql.ini
-	protected static final ConnectionConfig SYBASE =
-		new ConnectionConfig(
-			"Sybase",
-			"com.sybase.jdbc3.jdbc.SybDriver",
-			"sybase:Tds:localhost:5000",
-			"sa",
-			"oracle"
-		);
-
-	protected static class ConnectionConfig {
-		protected final String platformName;
-		protected final String driverClassName;
-		protected final String databaseURL;
-		protected final String user;
-		protected final String password;
-		protected ConnectionConfig(
-				String platformName,
-				String driverClassName,
-				String databaseURL,
-				String user,
-				String password
-		) {
-			super();
-			this.platformName = platformName;
-			this.driverClassName = driverClassName;
-			this.databaseURL = databaseURL;
-			this.user = user;
-			this.password = password;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java
deleted file mode 100644
index 4f8d879..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal;
-
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jpt.common.utility.internal.iterators.ResultSetIterator;
-
-@SuppressWarnings("nls")
-public class JDBCTools {
-
-	public static void dump(Connection connection, String sql) throws SQLException {
-		dump(execute(connection, sql));
-	}
-
-	public static void dump(ResultSet resultSet) throws SQLException {
-		PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			dumpOn(resultSet, pw);
-		}
-		pw.flush();
-	}
-
-	public static void dumpOn(ResultSet resultSet, PrintWriter pw) throws SQLException {
-		ArrayList<HashMap<String, Object>> maps = convertToMaps(resultSet);
-		for (Iterator<HashMap<String, Object>> mapStream = maps.iterator(); mapStream.hasNext(); ) {
-			for (Iterator<Map.Entry<String, Object>> entryStream = mapStream.next().entrySet().iterator(); entryStream.hasNext(); ) {
-				Map.Entry<String, Object> entry = entryStream.next();
-				pw.print(entry.getKey());
-				pw.print(" = ");
-				pw.print(entry.getValue());
-				pw.println();
-			}
-			if (mapStream.hasNext()) {
-				pw.println();
-			}
-		}
-		pw.println("total rows: " + maps.size());
-	}
-
-	public static ArrayList<HashMap<String, Object>> convertToMaps(Connection connection, String sql) throws SQLException {
-		return convertToMaps(execute(connection, sql));
-	}
-
-	public static ResultSet execute(Connection connection, String sql) throws SQLException {
-		Statement statement = connection.createStatement();
-		statement.execute(sql);
-		ResultSet resultSet = statement.getResultSet();
-		statement.close();
-		return resultSet;
-	}
-
-	public static ArrayList<HashMap<String, Object>> convertToMaps(ResultSet resultSet) throws SQLException {
-		ArrayList<HashMap<String, Object>> rows = new ArrayList<HashMap<String, Object>>();
-		for (Iterator<HashMap<String, Object>> stream = buildMapIterator(resultSet); stream.hasNext(); ) {
-			rows.add(stream.next());
-		}
-		return rows;
-	}
-
-	public static Iterator<HashMap<String, Object>> buildMapIterator(ResultSet resultSet) throws SQLException {
-		return new ResultSetIterator<HashMap<String, Object>>(resultSet, new MapResultSetIteratorAdapter(buildColumnNames(resultSet)));
-	}
-
-	public static String[] buildColumnNames(ResultSet resultSet) throws SQLException {
-		String[] names = new String[resultSet.getMetaData().getColumnCount()];
-		for (int i = 0; i < names.length; i++) {
-			names[i] = resultSet.getMetaData().getColumnName(i + 1);  // NB: ResultSet index/subscript is 1-based
-		}
-		return names;
-	}
-
-	public static class MapResultSetIteratorAdapter implements ResultSetIterator.Adapter<HashMap<String, Object>> {
-		private final String[] columnNames;
-		public MapResultSetIteratorAdapter(String[] columnNames) {
-			super();
-			this.columnNames = columnNames;
-		}
-		public HashMap<String, Object> buildNext(ResultSet rs) throws SQLException {
-			HashMap<String, Object> map = new HashMap<String, Object>(this.columnNames.length);
-			for (int i = 0; i < this.columnNames.length; i++) {
-				map.put(this.columnNames[i], rs.getObject(i + 1));  // NB: ResultSet index/subscript is 1-based
-			}
-			return map;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java
deleted file mode 100644
index 937b8c2..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.jpa.db.tests.internal.platforms.AllPlatformTests;
-
-/**
- *  JPT DB Tests
- */
-public class JptJpaDbTests {
-
-    public static Test suite() {
-		TestSuite suite = new TestSuite(JptJpaDbTests.class.getPackage().getName());
-    
-        suite.addTest( AllPlatformTests.suite());
-    
-        return suite;
-    }
-    
-    private JptJpaDbTests() {
-        super();
-        throw new UnsupportedOperationException();
-    }
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java
deleted file mode 100644
index f42832e..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- *  JptJpaDbTestsPlugin
- */
-public class JptJpaDbTestsPlugin extends Plugin {
-
-	// The shared instance
-	private static JptJpaDbTestsPlugin INSTANCE;
-
-	public static final String BUNDLE_ID = "org.eclipse.jpt.jpa.db.tests"; //$NON-NLS-1$
-
-	/**
-	 * Returns the shared instance
-	 */
-	public static JptJpaDbTestsPlugin instance() {
-		return INSTANCE;
-	}
-	
-	/**
-	 * The constructor
-	 */
-	public JptJpaDbTestsPlugin() {
-		super();
-		INSTANCE = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		INSTANCE = null;
-		super.stop(context);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java
deleted file mode 100644
index 042e954..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllPlatformTests {
-
-    public static Test suite() {
-		TestSuite suite = new TestSuite(AllPlatformTests.class.getPackage().getName());
-
-		suite.addTestSuite(DerbyTests.class);
-		suite.addTestSuite(MySQLTests.class);
-		suite.addTestSuite(Oracle10gTests.class);
-//		suite.addTestSuite(Oracle10gXETests.class);
-//		suite.addTestSuite(Oracle9iTests.class);
-		suite.addTestSuite(PostgreSQLTests.class);
-//		suite.addTestSuite(SQLServerTests.class);
-		suite.addTestSuite(SybaseTests.class);
-
-        return suite;
-    }
-
-    private AllPlatformTests() {
-        super();
-        throw new UnsupportedOperationException();
-    }
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java
deleted file mode 100644
index 5586335..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java
+++ /dev/null
@@ -1,1027 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URL;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.datatools.connectivity.ConnectionProfileException;
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IManagedConnection;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.datatools.connectivity.drivers.IDriverMgmtConstants;
-import org.eclipse.datatools.connectivity.drivers.IPropertySet;
-import org.eclipse.datatools.connectivity.drivers.PropertySetImpl;
-import org.eclipse.datatools.connectivity.drivers.XMLFileManager;
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.internal.ConnectivityPlugin;
-import org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.common.utility.IndentingPrintWriter;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterators.ResultSetIterator;
-import org.eclipse.jpt.jpa.db.Catalog;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ConnectionListener;
-import org.eclipse.jpt.jpa.db.ConnectionProfile;
-import org.eclipse.jpt.jpa.db.ConnectionProfileFactory;
-import org.eclipse.jpt.jpa.db.ConnectionProfileListener;
-import org.eclipse.jpt.jpa.db.Database;
-import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.JptJpaDbPlugin;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.SchemaContainer;
-import org.eclipse.jpt.jpa.db.Sequence;
-import org.eclipse.jpt.jpa.db.Table;
-import org.eclipse.jpt.jpa.db.ForeignKey.ColumnPair;
-import org.eclipse.jpt.jpa.db.tests.internal.JptJpaDbTestsPlugin;
-
-/**
- * Base class for testing DTP wrappers on various databases.
- */
-@SuppressWarnings("nls")
-public abstract class DTPPlatformTests extends TestCase {
-
-	/**
-	 * The platform properties are loaded from a Java properties file in the
-	 * 'org.eclipse.jpt.jpa.db.tests/config' directory. Each database platform has
-	 * its own properties file (e.g. 'derby.properties').
-	 */
-	private Properties platformProperties;
-
-	/**
-	 * This is the Dali connection profile wrapper.
-	 */
-	protected ConnectionProfile connectionProfile;
-
-
-	// ********** constants **********
-
-	private static final String PLATFORM_CONFIG_DIRECTORY = "config";
-
-	private static final String DB_USER_ID_PROPERTY = "userID";
-		private static final String DB_USER_ID_DEFAULT = "user";
-
-	private static final String DB_PASSWORD_PROPERTY = "password";
-		private static final String DB_PASSWORD_DEFAULT = "";
-
-	private static final String DB_DRIVER_JARS_PROPERTY = "jars";
-		// required - no default
-
-	private static final String DB_URL_PROPERTY = "url";
-		// required - no default
-
-
-
-	// ********** constructor **********
-
-	protected DTPPlatformTests(String name) {
-		super(name);
-	}
-
-
-	// ********** set-up/tear-down **********
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.platformProperties = this.loadPlatformProperties();
-		this.buildDTPDriverDefinitionFile();
-		this.buildDTPConnectionProfile();
-		this.connectionProfile = this.getConnectionProfileFactory().buildConnectionProfile(this.getProfileName(), DatabaseIdentifierAdapter.Default.instance());
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.connectionProfile = null;
-		this.platformProperties = null;
-
-		super.tearDown();
-	}
-
-	// ***** platform properties file
-	private Properties loadPlatformProperties() throws IOException {
-		Properties p = new Properties();
-		p.load(this.buildPlatformPropertiesFileURL().openStream());
-		return p;
-	}
-
-	private URL buildPlatformPropertiesFileURL() {
-		return Platform.getBundle(this.getTestPluginBundleID()).getEntry(this.getPlatformPropertiesFilePath());
-	}
-
-	private String getTestPluginBundleID() {
-		return JptJpaDbTestsPlugin.BUNDLE_ID;
-	}
-
-	private String getPlatformPropertiesFilePath() {
-		return this.getPlatformPropertiesDirectoryName() + '/' + this.getPlatformPropertiesFileName();
-	}
-
-	private String getPlatformPropertiesDirectoryName() {
-		return PLATFORM_CONFIG_DIRECTORY;
-	}
-
-	/**
-	 * Each database platform has a separate properties file in the 'config'
-	 * directory that must be customized by whomever is executing the tests.
-	 */
-	protected abstract String getPlatformPropertiesFileName();
-
-	// ***** driver definition file
-	private void buildDTPDriverDefinitionFile() throws CoreException {
-		XMLFileManager.setStorageLocation(this.getDTPDriverDefinitionLocation());
-		XMLFileManager.setFileName(this.getDTPDriverFileName());
-
-		IPropertySet[] sets = XMLFileManager.loadPropertySets();
-		for (IPropertySet set : sets) {
-			if (set.getID().equals(this.getDriverDefinitionID())) {
-				return;  // property sets live across tests
-			}
-		}
-
-		XMLFileManager.saveNamedPropertySet(this.buildDTPDriverDefinitionPropertySets());
-
-		// verify the file was created:
-		File driverDefinitioneFile = this.getDTPDriverDefinitionLocation().append(this.getDTPDriverFileName()).toFile();
-		assertTrue(driverDefinitioneFile.exists());
-	}
-
-	private IPath getDTPDriverDefinitionLocation() {
-		return ConnectivityPlugin.getDefault().getStateLocation();
-	}
-
-	private String getDTPDriverFileName() {
-		return IDriverMgmtConstants.DRIVER_FILE;
-	}
-
-	private IPropertySet[] buildDTPDriverDefinitionPropertySets() {
-		IPropertySet[] propertySets = new IPropertySet[1];
-		PropertySetImpl propertySet = new PropertySetImpl(this.getDriverName(), this.getDriverDefinitionID());
-		propertySet.setProperties(this.getDriverDefinitionID(), this.buildDTPDriverDefinitionProperties());
-		propertySets[0] = propertySet;
-		return propertySets;
-	}
-
-	protected abstract String getDriverName();
-
-	protected abstract String getDriverDefinitionID();
-
-	private Properties buildDTPDriverDefinitionProperties() {
-		Properties p = new Properties();
-		p.setProperty(ConnectionProfile.DRIVER_DEFINITION_TYPE_PROP_ID, this.getDriverDefinitionType());
-		p.setProperty(ConnectionProfile.DRIVER_JAR_LIST_PROP_ID, this.getJDBCDriverJarList());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion());
-		p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass());
-		p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL());
-		p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID());
-		p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword());
-		return p;
-	}
-
-	protected abstract String getDriverDefinitionType();
-
-	/**
-	 * The JAR list is workspace-specific and is set in the properties file.
-	 */
-	private String getJDBCDriverJarList() {
-		return this.getRequiredPlatformProperty(DB_DRIVER_JARS_PROPERTY);
-	}
-
-	protected abstract String getDatabaseVendor();
-
-	protected abstract String getDatabaseVersion();
-
-	protected abstract String getDriverClass();
-
-	/**
-	 * The database URL is workspace-specific and is set in the properties file
-	 * for some databases.
-	 */
-	private String getJDBCURL() {
-		return this.platformProperties.getProperty(DB_URL_PROPERTY, this.getDefaultJDBCURL());
-	}
-
-	protected String getDefaultJDBCURL() {
-		return "";
-	}
-
-	/**
-	 * The user ID is optional and can be set in the properties file.
-	 */
-	protected String getUserID() {
-		return this.platformProperties.getProperty(DB_USER_ID_PROPERTY, DB_USER_ID_DEFAULT);
-	}
-
-	/**
-	 * The password is optional and can be set in the properties file.
-	 */
-	private String getPassword() {
-		return this.platformProperties.getProperty(DB_PASSWORD_PROPERTY, DB_PASSWORD_DEFAULT);
-	}
-
-	// ***** DTP connection profile
-	private void buildDTPConnectionProfile() throws ConnectionProfileException {
-		if (this.getDTPProfileManager().getProfileByName(this.getProfileName()) != null) {
-			return;  // profiles live across tests
-		}
-		this.createProfile(this.getProfileName());
-		assertNotNull(this.getDTPProfileManager().getProfileByName(this.getProfileName()));
-	}
-
-	protected void createProfile(String profileName) throws ConnectionProfileException {
-		this.getDTPProfileManager().createProfile(
-				profileName,
-				this.getProfileDescription(),
-				this.getProviderID(),
-				this.buildDTPConnectionProfileProperties()
-		);
-	}
-
-	protected abstract String getProfileName();
-
-	protected abstract String getProfileDescription();
-
-	protected String getProviderID() {
-		return ConnectionProfile.CONNECTION_PROFILE_TYPE;
-	}
-	 
-	protected Properties buildDTPConnectionProfileProperties() {
-		Properties p = new Properties();
-		p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID());
-		p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword());
-		p.setProperty(ConnectionProfile.DRIVER_DEFINITION_PROP_ID, this.getDriverDefinitionID());
-
-		p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass());
-		p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion());
-
-		p.setProperty(ConnectionProfile.DATABASE_SAVE_PWD_PROP_ID, this.passwordIsSaved());
-		return p;
-	}
-
-	private String passwordIsSaved() {
-		return "true";
-	}
-
-
-	// ********** tests **********
-
-	public void testConnectionProfileListener() throws ConnectionProfileException {
-		TestConnectionProfileListener listener = new TestConnectionProfileListener();
-		this.getConnectionProfileFactory().addConnectionProfileListener(listener);
-
-		String cpName1 = this.getProfileName() + "1";
-		this.createProfile(cpName1);
-		IConnectionProfile dtpCP = this.getDTPProfileManager().getProfileByName(cpName1);
-		assertNotNull(dtpCP);
-
-		assertEquals(cpName1, listener.addedName);
-		listener.clear();
-
-		String cpName2 = this.getProfileName() + "2";
-		this.getDTPProfileManager().modifyProfile(dtpCP, cpName2, null);
-		assertEquals(cpName1, listener.renamedOldName);
-		assertEquals(cpName2, listener.renamedNewName);
-		listener.clear();
-
-		ConnectionProfile cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2);
-		assertNotNull(cp);
-
-		this.getDTPProfileManager().deleteProfile(dtpCP);
-		assertEquals(cpName2, listener.removedName);
-		listener.clear();
-
-		cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2);
-		assertNull(cp);
-
-		this.getConnectionProfileFactory().removeConnectionProfileListener(listener);
-	}
-
-	public void testName() {
-		assertEquals(this.getProfileName(), this.connectionProfile.getName());
-	}
-
-	public void testConnection() throws Exception {
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-		this.connectionProfile.connect();
-		assertTrue(this.connectionProfile.isActive());
-		assertTrue(this.connectionProfile.isConnected());
-
-		this.verifyDatabaseVersionNumber();
-		this.verifyDatabaseVendor();
-		this.verifyDatabaseContent();
-
-		this.connectionProfile.disconnect();
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-	}
-
-	private void verifyDatabaseVersionNumber() {
-		Database database = this.connectionProfile.getDatabase();
-		assertNotNull(database);
-
-		String actual = database.getVersion();
-		String expected = this.getDatabaseVersion();
-		String errorMessage = "expected: " + expected + " - actual: " + actual;
-		// partial match is good enough
-		assertTrue(errorMessage, actual.indexOf(expected) != -1);
-	}
-
-	private void verifyDatabaseVendor() {
-		Database database = this.connectionProfile.getDatabase();
-		String actual = database.getVendorName();
-		String expected = this.getDatabaseVendor();
-		assertEquals(expected, actual);
-	}
-
-	private void verifyDatabaseContent() {
-		Database database = this.connectionProfile.getDatabase();
-		assertTrue(database.getSchemataSize() >= 0);
-
-		Schema schema = database.getDefaultSchema();
-		if (schema != null) {
-			if (schema.getTablesSize() > 0) {
-				Table table = schema.getTables().iterator().next();
-				assertTrue(table.getColumnsSize() >= 0);
-				assertTrue(table.getPrimaryKeyColumnsSize() >= 0);
-				assertTrue(table.getForeignKeysSize() >= 0);
-			}
-		}
-	}
-
-	protected abstract boolean executeOfflineTests();
-
-	public final void testOffline() {
-		if ( ! this.executeOfflineTests()) {
-			return;
-		}
-		if ( ! this.connectionProfile.supportsWorkOfflineMode()) {
-			return;
-		}
-
-		this.prepareForOfflineWork();
-
-		IStatus status = this.connectionProfile.workOffline();
-		assertTrue(status.isOK());
-		assertTrue(this.connectionProfile.isActive());
-		assertTrue(this.connectionProfile.isWorkingOffline());
-
-		this.connectionProfile.disconnect();
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-	}
-
-	protected void prepareForOfflineWork() {
-		if ( ! this.connectionProfile.canWorkOffline()) {
-			this.connectionProfile.connect();
-			IStatus status = this.connectionProfile.saveWorkOfflineData();
-			assertTrue(status.isOK());
-			this.connectionProfile.disconnect();
-			assertTrue(this.connectionProfile.canWorkOffline());
-		}
-	}
-
-	public void testConnectionListenerConnect() {
-		assertTrue(this.connectionProfileHasNoListeners());
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-		assertTrue(this.connectionProfileHasAnyListeners());
-
-		this.connectionProfile.connect();
-		assertSame(this.connectionProfile, listener.openedProfile);
-		listener.clear();
-
-		this.connectionProfile.disconnect();
-		assertSame(this.connectionProfile, listener.okToCloseProfile);
-		assertSame(this.connectionProfile, listener.aboutToCloseProfile);
-		assertSame(this.connectionProfile, listener.closedProfile);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		assertTrue(this.connectionProfileHasNoListeners());
-	}
-
-	public final void testConnectionListenerOffline() {
-		if ( ! this.executeOfflineTests()) {
-			return;
-		}
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.prepareForOfflineWork();
-		listener.clear();
-
-		this.connectionProfile.workOffline();
-		assertSame(this.connectionProfile, listener.openedProfile);
-		listener.clear();
-
-		this.connectionProfile.disconnect();
-		assertSame(this.connectionProfile, listener.okToCloseProfile);
-		assertSame(this.connectionProfile, listener.aboutToCloseProfile);
-		assertSame(this.connectionProfile, listener.closedProfile);
-		listener.clear();
-
-		this.connectionProfile.removeConnectionListener(listener);
-	}
-
-	public void testConnectionListenerDatabase() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.connectionProfile.getDatabase(), listener.changedDatabase);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testConnectionListenerCatalog() {
-		this.connectionProfile.connect();
-		if ( ! this.connectionProfile.getDatabase().supportsCatalogs()) {
-			this.connectionProfile.disconnect();
-			return;
-		}
-			
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// take the first catalog
-		org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = this.getFirstDTPCatalog();
-		Catalog catalog = this.getCatalogNamed(dtpCatalog.getName());
-		((ICatalogObject) dtpCatalog).refresh();
-		assertSame(catalog, listener.changedCatalog);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testConnectionListenerSchema() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		List<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.getDTPCatalogs();
-		org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = null;
-		org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema = null;
-		Schema schema = null;
-		if (this.connectionProfile.getDatabase().supportsCatalogs()) {
-			dtpCatalog = dtpCatalogs.get(0);
-			dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0);
-			schema = this.getCatalogNamed(dtpCatalog.getName()).getSchemaNamed(dtpSchema.getName());
-		} else {
-			if (dtpCatalogs.isEmpty()) {
-				dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) this.getDTPDatabase().getSchemas().get(0);
-				schema = this.connectionProfile.getDatabase().getSchemaNamed(dtpSchema.getName());
-			} else {
-				dtpCatalog = dtpCatalogs.get(0);  // should be the "virtual" catalog
-				assertEquals("", dtpCatalog.getName());
-				dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0);
-				// the schemata are held directly by the database in this situation
-				schema = this.getDatabase().getSchemaNamed(dtpSchema.getName());
-			}
-		}
-		assertTrue(schema.getTablesSize() >= 0);  // force tables to be loaded
-		((ICatalogObject) dtpSchema).refresh();
-		assertSame(schema, listener.changedSchema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSupportsCatalogs() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		boolean supportsCatalogs = this.supportsCatalogs();
-		assertEquals(supportsCatalogs, this.connectionProfile.getDatabase().supportsCatalogs());
-		if (supportsCatalogs) {
-			assertTrue(this.connectionProfile.getDatabase().getCatalogsSize() > 0);
-			assertEquals(0, this.connectionProfile.getDatabase().getSchemataSize());
-		} else {
-			assertEquals(0, this.connectionProfile.getDatabase().getCatalogsSize());
-			assertTrue(this.connectionProfile.getDatabase().getSchemataSize() > 0);
-		}
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	protected abstract boolean supportsCatalogs();
-
-//	public void testDEBUG() throws Exception {
-//		this.connectionProfile.connect();
-//		this.dumpJDBCCatalogs();
-//		this.dumpJDBCSchemata();
-//		this.dumpDatabaseContainers();
-//		this.connectionProfile.disconnect();
-//	}
-
-
-	// ********** convenience methods **********
-
-	protected ConnectionProfileFactory getConnectionProfileFactory() {
-		return JptJpaDbPlugin.getConnectionProfileFactory();
-	}
-
-	protected ConnectionProfile getConnectionProfile() {
-		return this.connectionProfile;
-	}
-
-	protected Database getDatabase() {
-		return this.connectionProfile.getDatabase();
-	}
-
-	protected Catalog getDefaultCatalog() {
-		return this.getDatabase().getDefaultCatalog();
-	}
-
-	/**
-	 * only valid on databases that do not support catalogs
-	 */
-	protected Schema getDefaultSchema() {
-		return this.getDatabase().getDefaultSchema();
-	}
-
-	protected Catalog getCatalogNamed(String catalogName) {
-		return this.connectionProfile.getDatabase().getCatalogNamed(catalogName);
-	}
-
-	protected String getRequiredPlatformProperty(String propertyKey) {
-		String propertyValue = this.platformProperties.getProperty(propertyKey);
-		if (StringTools.stringIsEmpty(propertyValue)) {
-			throw new IllegalArgumentException("The database platform properties file '" + this.getPlatformPropertiesFilePath()
-					+ "' is missing a value for the property '" + propertyKey + "'.");
-		}
-		return propertyValue;
-	}
-
-	protected boolean connectionProfileHasAnyListeners() {
-		return connectionProfileHasAnyListeners(this.connectionProfile);
-	}
-
-	protected static boolean connectionProfileHasAnyListeners(ConnectionProfile cp) {
-		return ((Boolean) ReflectionTools.executeMethod(cp, "hasAnyListeners")).booleanValue();
-	}
-
-	protected boolean connectionProfileHasNoListeners() {
-		return connectionProfileHasNoListeners(this.connectionProfile);
-	}
-
-	protected static boolean connectionProfileHasNoListeners(ConnectionProfile cp) {
-		return ((Boolean) ReflectionTools.executeMethod(cp, "hasNoListeners")).booleanValue();
-	}
-
-
-	// ********** DTP model **********
-
-	protected ProfileManager getDTPProfileManager() {
-		return ProfileManager.getInstance();
-	}
-
-	protected IConnectionProfile getDTPConnectionProfile() {
-		return getDTPConnectionProfile(this.connectionProfile);
-	}
-
-	protected static IConnectionProfile getDTPConnectionProfile(ConnectionProfile cp) {
-		return (IConnectionProfile) ReflectionTools.getFieldValue(cp, "dtpConnectionProfile");
-	}
-
-	protected IManagedConnection getDTPManagedConnection() {
-		return (IManagedConnection) ReflectionTools.getFieldValue(this.connectionProfile, "dtpManagedConnection");
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase() {
-		return getDTPDatabase(this.connectionProfile.getDatabase());
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase(Database database) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Database) ReflectionTools.getFieldValue(database, "dtpDatabase");
-	}
-
-	@SuppressWarnings("unchecked")
-	protected List<org.eclipse.datatools.modelbase.sql.schema.Catalog> getDTPCatalogs() {
-		return this.getDTPDatabase().getCatalogs();
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Catalog getFirstDTPCatalog() {
-		return this.getDTPCatalogs().get(0);
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalogNamed(String name) {
-		return getDTPCatalog(this.getDatabase().getCatalogNamed(name));
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalog(Catalog catalog) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Catalog) ReflectionTools.getFieldValue(catalog, "dtpCatalog");
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchemaNamed(String name) {
-		return getDTPSchema(this.getDatabase().getSchemaNamed(name));
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchema(Schema schema) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Schema) ReflectionTools.getFieldValue(schema, "dtpSchema");
-	}
-
-
-	// ********** execute SQL **********
-
-	/**
-	 * ignore any errors (useful for dropping database objects that might
-	 * not be there)
-	 */
-	protected void executeUpdateIgnoreErrors(String sql) {
-		try {
-			this.executeUpdate(sql);
-		} catch (Exception ex) {
-//			System.err.println("SQL: " + sql);
-//			ex.printStackTrace();
-		}
-	}
-
-	protected void executeUpdate(String sql) throws SQLException {
-		Statement jdbcStatement = this.createJDBCStatement();
-		try {
-			jdbcStatement.executeUpdate(sql);
-		} finally {
-			jdbcStatement.close();
-		}
-	}
-
-	protected void dump(String sql) throws SQLException {
-		this.dump(sql, 20);
-	}
-
-	protected void dump(String sql, int columnWidth) throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpOn(sql, pw, columnWidth);
-		}
-		pw.flush();
-	}
-
-	protected void dumpOn(String sql, IndentingPrintWriter pw, int columnWidth) throws SQLException {
-		pw.println(sql);
-		for (ArrayList<Object> row : this.execute(sql)) {
-			for (Object columnValue : row) {
-				StringTools.padOrTruncateOn(String.valueOf(columnValue), columnWidth, pw);
-				pw.print(' ');
-			}
-			pw.println();
-		}
-	}
-
-	protected ArrayList<ArrayList<Object>> execute(String sql) throws SQLException {
-		Statement jdbcStatement = this.createJDBCStatement();
-		jdbcStatement.execute(sql);
-		ArrayList<ArrayList<Object>> rows = this.buildRows(jdbcStatement.getResultSet());
-		jdbcStatement.close();
-		return rows;
-	}
-
-	protected ArrayList<ArrayList<Object>> buildRows(ResultSet resultSet) throws SQLException {
-		ArrayList<ArrayList<Object>> rows = new ArrayList<ArrayList<Object>>();
-		for (Iterator<ArrayList<Object>> stream = this.buildArrayIterator(resultSet); stream.hasNext(); ) {
-			rows.add(stream.next());
-		}
-		return rows;
-	}
-
-	protected Iterator<ArrayList<Object>> buildArrayIterator(ResultSet resultSet) throws SQLException {
-		return new ResultSetIterator<ArrayList<Object>>(resultSet, new ListResultSetIteratorAdapter(resultSet.getMetaData().getColumnCount()));
-	}
-
-	public static class ListResultSetIteratorAdapter implements ResultSetIterator.Adapter<ArrayList<Object>> {
-		private final int columnCount;
-		public ListResultSetIteratorAdapter(int columnCount) {
-			super();
-			this.columnCount = columnCount;
-		}
-		public ArrayList<Object> buildNext(ResultSet rs) throws SQLException {
-			ArrayList<Object> list = new ArrayList<Object>(this.columnCount);
-			for (int i = 1; i <= this.columnCount; i++) {  // NB: ResultSet index/subscript is 1-based
-				list.add(rs.getObject(i));
-			}
-			return list;
-		}
-	}
-
-	protected Statement createJDBCStatement() throws SQLException {
-		return this.getJDBCConnection().createStatement();
-	}
-
-	protected Connection getJDBCConnection() {
-		return ((ConnectionInfo) this.getDTPManagedConnection().getConnection().getRawConnection()).getSharedConnection();
-	}
-
-	protected DatabaseMetaData getDatabaseMetaData() throws SQLException {
-		return this.getJDBCConnection().getMetaData();
-	}
-
-
-	// ********** dump DTP metadata **********
-
-	/**
-	 * dump all the database metadata to the console
-	 */
-	protected void dumpDatabase() {
-		this.dumpDatabase(true);
-	}
-
-	/**
-	 * dump the database catalogs and schemata to the console
-	 */
-	protected void dumpDatabaseContainers() {
-		this.dumpDatabase(false);
-	}
-
-	protected void dumpDatabase(boolean deep) {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpDatabaseOn(pw, deep);
-		}
-		pw.flush();
-	}
-
-	protected void dumpDatabaseOn(IndentingPrintWriter pw, boolean deep) {
-		Database database = this.connectionProfile.getDatabase();
-		pw.print("database: ");
-		pw.println(database.getName());
-		if (database.supportsCatalogs()) {
-			for (Catalog catalog : database.getCatalogs()) {
-				this.dumpCatalogOn(catalog, pw, deep);
-			}
-		} else {
-			this.dumpSchemaContainerOn(database, pw, deep);
-		}
-	}
-
-	protected void dumpCatalogOn(Catalog catalog, IndentingPrintWriter pw, boolean deep) {
-		pw.print("catalog: ");
-		pw.println(catalog.getName());
-		pw.indent();
-			this.dumpSchemaContainerOn(catalog, pw, deep);
-		pw.undent();
-	}
-
-	protected void dumpSchemaContainerOn(SchemaContainer schemaContainer, IndentingPrintWriter pw, boolean deep) {
-		for (Schema schema : schemaContainer.getSchemata()) {
-			this.dumpSchemaOn(schema, pw, deep);
-		}
-	}
-
-	protected void dumpSchema(Schema schema) {
-		this.dumpSchema(schema, true);
-	}
-
-	protected void dumpSchema(Schema schema, boolean deep) {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpSchemaOn(schema, pw, deep);
-		}
-		pw.flush();
-	}
-
-	protected void dumpSchemaOn(Schema schema, IndentingPrintWriter pw, boolean deep) {
-		pw.print("schema: ");
-		pw.println(schema.getName());
-		if (deep) {
-			pw.indent();
-				for (Table table : schema.getTables()) {
-					this.dumpTableOn(table, pw);
-				}
-				for (Sequence sequence : schema.getSequences()) {
-					this.dumpSequenceOn(sequence, pw);
-				}
-			pw.undent();
-		}
-	}
-
-	protected void dumpTableOn(Table table, IndentingPrintWriter pw) {
-		pw.print("table: ");
-		pw.println(table.getName());
-		pw.indent();
-			for (Column column : table.getColumns()) {
-				this.dumpColumnOn(column, pw);
-			}
-			for (ForeignKey foreignKey : table.getForeignKeys()) {
-				this.dumpForeignKeyOn(foreignKey, pw);
-			}
-		pw.undent();
-	}
-
-	protected void dumpColumnOn(Column column, IndentingPrintWriter pw) {
-		pw.print("column: ");
-		pw.print(column.getName());
-		pw.print(" : ");
-		pw.print(column.getDataTypeName());
-		if (column.isPartOfPrimaryKey()) {
-			pw.print(" [primary key]");
-		}
-		pw.println();
-	}
-
-	protected void dumpForeignKeyOn(ForeignKey foreignKey, IndentingPrintWriter pw) {
-		pw.print("foreign key: ");
-		pw.print(foreignKey.getName());
-		pw.print("=>");
-		pw.print(foreignKey.getReferencedTable().getName());
-		pw.print(" (");
-		for (Iterator<ColumnPair> stream = foreignKey.getColumnPairs().iterator(); stream.hasNext(); ) {
-			ColumnPair cp = stream.next();
-			pw.print(cp.getBaseColumn().getName());
-			pw.print("=>");
-			pw.print(cp.getReferencedColumn().getName());
-			if (stream.hasNext()) {
-				pw.print(", ");
-			}
-		}
-		pw.print(')');
-		pw.println();
-	}
-
-	protected void dumpSequenceOn(Sequence sequence, IndentingPrintWriter pw) {
-		pw.print("sequence: ");
-		pw.println(sequence.getName());
-	}
-
-
-	// ********** dump JDBC metadata **********
-
-	protected void dumpJDBCCatalogs() throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpJDBCCatalogsOn(pw);
-		}
-		pw.flush();
-	}
-
-	protected void dumpJDBCCatalogsOn(IndentingPrintWriter pw) throws SQLException {
-		pw.println("JDBC catalogs: ");
-		pw.indent();
-			ArrayList<ArrayList<Object>> rows = this.buildRows(this.getDatabaseMetaData().getCatalogs());
-			for (Iterator<ArrayList<Object>> stream = rows.iterator(); stream.hasNext(); ) {
-				pw.println(stream.next().get(0));
-			}
-		pw.undent();
-	}
-
-	protected void dumpJDBCSchemata() throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpJDBCSchemataOn(pw);
-		}
-		pw.flush();
-	}
-
-	protected void dumpJDBCSchemataOn(IndentingPrintWriter pw) throws SQLException {
-		pw.println("JDBC schemata: ");
-		pw.indent();
-			ArrayList<ArrayList<Object>> rows = this.buildRows(this.getDatabaseMetaData().getSchemas());
-			for (ArrayList<Object> row : rows) {
-				if (row.size() == 2) {  // catalogs were added in jdk 1.4
-					Object catalog = row.get(1);
-					pw.print(catalog);
-					pw.print('.');
-				}
-				Object schema = row.get(0);
-				pw.println(schema);
-			}
-		pw.undent();
-	}
-
-
-	// ********** connection profile listener **********
-
-	protected static class TestConnectionProfileListener implements ConnectionProfileListener {
-		public String addedName;
-		public String removedName;
-		public String renamedOldName;
-		public String renamedNewName;
-
-		public void connectionProfileAdded(String name) {
-			this.addedName = name;
-		}
-		public void connectionProfileRemoved(String name) {
-			this.removedName = name;
-		}
-		public void connectionProfileRenamed(String oldName, String newName) {
-			this.renamedOldName = oldName;
-			this.renamedNewName = newName;
-		}
-		public void clear() {
-			this.addedName = null;
-			this.removedName = null;
-			this.renamedOldName = null;
-			this.renamedNewName = null;
-		}
-	}
-
-
-	// ********** connection listener **********
-
-	protected static class TestConnectionListener implements ConnectionListener {
-		public ConnectionProfile openedProfile;
-		public ConnectionProfile modifiedProfile;
-		public ConnectionProfile okToCloseProfile;
-		public ConnectionProfile aboutToCloseProfile;
-		public ConnectionProfile closedProfile;
-		public Database changedDatabase;
-		public Catalog changedCatalog;
-		public Schema changedSchema;
-		public Sequence changedSequence;
-		public Table changedTable;
-		public Column changedColumn;
-		public ForeignKey changedForeignKey;
-
-		public void opened(ConnectionProfile profile) {
-			this.openedProfile = profile;
-		}
-		public void modified(ConnectionProfile profile) {
-			this.modifiedProfile = profile;
-		}
-		public boolean okToClose(ConnectionProfile profile) {
-			this.okToCloseProfile = profile;
-			return true;
-		}
-		public void aboutToClose(ConnectionProfile profile) {
-			this.aboutToCloseProfile = profile;
-		}
-		public void closed(ConnectionProfile profile) {
-			this.closedProfile = profile;
-		}
-		public void databaseChanged(ConnectionProfile profile, Database database) {
-			this.changedDatabase = database;
-		}
-		public void catalogChanged(ConnectionProfile profile, Catalog catalog) {
-			this.changedCatalog = catalog;
-		}
-		public void schemaChanged(ConnectionProfile profile, Schema schema) {
-			this.changedSchema = schema;
-		}
-		public void sequenceChanged(ConnectionProfile profile, Sequence sequence) {
-			this.changedSequence = sequence;
-		}
-		public void tableChanged(ConnectionProfile profile, Table table) {
-			this.changedTable = table;
-		}
-		public void columnChanged(ConnectionProfile profile, Column column) {
-			this.changedColumn = column;
-		}
-		public void foreignKeyChanged(ConnectionProfile profile, ForeignKey foreignKey) {
-			this.changedForeignKey = foreignKey;
-		}
-		public void clear() {
-			this.openedProfile = null;
-			this.modifiedProfile = null;
-			this.okToCloseProfile = null;
-			this.aboutToCloseProfile = null;
-			this.closedProfile = null;
-			this.changedDatabase = null;
-			this.changedCatalog = null;
-			this.changedSchema = null;
-			this.changedSequence = null;
-			this.changedTable = null;
-			this.changedColumn = null;
-			this.changedForeignKey = null;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java
deleted file mode 100644
index 4dd8792..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-
-@SuppressWarnings("nls")
-public class DerbyTests extends DTPPlatformTests {
-
-	public DerbyTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "derby.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Derby Embedded JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Derby Embedded JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.connectivity.db.derby101.genericDriverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Derby";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10.1";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "org.apache.derby.jdbc.EmbeddedDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Derby_10.1_Embedded";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Derby 10.1 Embedded JDBC Profile [Test]";
-	}
-
-	@Override
-	protected String getProviderID() {
-		return "org.eclipse.datatools.connectivity.db.derby.embedded.connectionProfile";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;
-	}
-
-	public void testSchema() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("TEST1");
-		this.dropSchema("TEST2");
-
-		this.executeUpdate("CREATE SCHEMA TEST1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema1 = this.getDatabase().getSchemaNamed("TEST1");
-		assertNotNull(schema1);
-
-		this.executeUpdate("CREATE SCHEMA TEST2");
-		Schema schema2 = this.getDatabase().getSchemaNamed("TEST2");
-		assertNull(schema2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		schema2 = this.getDatabase().getSchemaNamed("TEST2");
-		assertNotNull(schema2);
-		assertNotSame(schema1, this.getDatabase().getSchemaNamed("TEST1"));  // we should have a new schema after the refresh
-
-		this.dropSchema("TEST2");
-		this.dropSchema("TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		this.executeUpdate("CREATE SCHEMA LOOKUP_TEST");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNotNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_test"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_test"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_TEST"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("LOOKUP_TEST");
-
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_test"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("lookup_test"));
-
-		assertNotNull(this.getDatabase().getSchemaNamed("lookup_TEST"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaIdentifier() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA lookup_test");  // this gets folded to uppercase
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST");
-		assertEquals("LOOKUP_TEST", schema.getIdentifier());
-		assertEquals("LOOKUP_TEST", schema.getIdentifier("LookupTest"));
-		assertNull(schema.getIdentifier("Lookup_Test"));
-
-		schema = this.getDatabase().getSchemaForIdentifier("lookup_test");
-		assertEquals("LOOKUP_TEST", schema.getIdentifier());
-
-		schema = this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\"");
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier());
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST"));
-
-		this.dropSchema("\"lookup_TEST\"");
-		this.dropSchema("LOOKUP_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET SCHEMA = TABLE_TEST");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getSchemaNamed("TABLE_TEST");
-
-		// FOO
-		Table fooTable = schema.getTableNamed("FOO");
-		assertEquals(4, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		assertEquals(1, fooTable.getForeignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("ID", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("ID");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INTEGER", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("NAME");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertEquals(20, nameColumn.getLength());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-		assertFalse(nameColumn.isNumeric());
-		assertTrue(nameColumn.isNullable());
-
-		Column barColumn = fooTable.getColumnNamed("BAR_ID");
-		assertEquals("INTEGER", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		Column salaryColumn = fooTable.getColumnNamed("SALARY");
-		assertEquals("DECIMAL", salaryColumn.getDataTypeName());
-		assertTrue(salaryColumn.isNullable());
-		assertTrue(salaryColumn.isNumeric());
-		assertEquals(11, salaryColumn.getPrecision());
-		assertEquals(2, salaryColumn.getScale());
-		assertEquals(-1, salaryColumn.getLength());
-
-		ForeignKey barFK = fooTable.getForeignKeys().iterator().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.getColumnPairsSize());
-		assertEquals("BAR", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("BAR");
-		assertEquals(3, barTable.getColumnsSize());
-		assertEquals(1, barTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, barTable.getForeignKeysSize());
-		assertEquals("ID", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-
-		Column id2Column = barTable.getColumnNamed("ID2");
-		assertEquals("INTEGER", id2Column.getDataTypeName());
-//		assertTrue(id2Column.isPartOfUniqueConstraint());  // doesn't work(?)
-		assertFalse(id2Column.isNullable());
-		assertTrue(id2Column.isNumeric());
-		assertEquals(0, id2Column.getPrecision());  // not sure what to expect here...
-		assertEquals(0, id2Column.getScale());  // not sure what to expect here either...
-		assertEquals("BLOB", barTable.getColumnNamed("CHUNK").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnNamed("CHUNK").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnNamed("CHUNK").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// BAZ
-		Table bazTable = schema.getTableNamed("BAZ");
-		Column nicknameColumn = bazTable.getColumnNamed("NICKNAME");
-		assertEquals(20, nicknameColumn.getLength());
-//		assertTrue(nicknameColumn.isPartOfUniqueConstraint());  // doesn't work(?)
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("FOO_BAZ");
-		assertEquals(2, foo_bazTable.getColumnsSize());
-		assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.getForeignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("FOO_ID").isPartOfForeignKey());
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAR (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    ID2 INT UNIQUE NOT NULL,").append(CR);
-		sb.append("    CHUNK BLOB(100K)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    NAME VARCHAR(20),").append(CR);
-		sb.append("    SALARY DECIMAL(11, 2),").append(CR);
-		sb.append("    BAR_ID INT REFERENCES BAR(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAZ (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    NICKNAME VARCHAR(20) NOT NULL UNIQUE").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO_BAZ (").append(CR);
-		sb.append("    FOO_ID INT REFERENCES FOO(ID),").append(CR);
-		sb.append("    BAZ_ID INT REFERENCES BAZ(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("COLUMN_TEST", "test");
-		this.dropSchema("COLUMN_TEST");
-
-		this.executeUpdate("CREATE SCHEMA COLUMN_TEST");
-		this.executeUpdate("SET SCHEMA = COLUMN_TEST");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" INTEGER, \"Name\" VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("COLUMN_TEST", "test");
-		this.dropSchema("COLUMN_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST1");
-		this.executeUpdate("SET SCHEMA = XREF_TEST1");
-		this.executeUpdate("CREATE TABLE ORG (ID INTEGER PRIMARY KEY, NAME VARCHAR(20))");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST2");
-		this.executeUpdate("SET SCHEMA = XREF_TEST2");
-		this.executeUpdate("CREATE TABLE EMP (ID INTEGER PRIMARY KEY, NAME VARCHAR(20), " +
-				"ORG_ID INTEGER REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("ORG");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("EMP");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.getForeignKeysSize());
-		ForeignKey fk = empTable.getForeignKeys().iterator().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("ORG", refTable.getName());
-		assertEquals(1, fk.getColumnPairsSize());
-		ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("ORG_ID", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("ID", refColumn.getName());
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String schemaName, String tableName) throws Exception {
-		Schema schema= this.getDatabase().getSchemaForIdentifier(schemaName);
-		if (schema != null) {
-			if (schema.getTableForIdentifier(tableName) != null) {
-				this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName);
-			}
-		}
-	}
-
-	/**
-	 * NB: A Derby schema must be empty before it can be dropped.
-	 */
-	private void dropSchema(String name) throws Exception {
-		if (this.getDatabase().getSchemaForIdentifier(name) != null) {
-			this.executeUpdate("DROP SCHEMA " + name + " RESTRICT");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java
deleted file mode 100644
index 18e945f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import java.util.Properties;
-
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-
-/**
- * MySQL
- * 
- * Notes:
- * - We can only get database objects from the database associated with our
- *     connection profile.
- * - We can reference objects across multiple databases, so they are sorta like
- *     schemas....
- * - Foreign keys must be defined as table-level constraints; they cannot be
- *     defined as part of the column clause.
- * - Case-sensitivity and -folding is whacked on MySQL....
- */
-@SuppressWarnings("nls")
-public class MySQLTests extends DTPPlatformTests {
-
-	public MySQLTests( String name) {
-		super(name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "mysql.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "MySQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.MySQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.mysql.4_1.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "MySql";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "4.1";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.mysql.jdbc.Driver";
-	}
-
-	@Override
-	protected String getDefaultJDBCURL() {
-		return "jdbc:mysql://localhost:3306";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "MySQL_4.1";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "MySQL 4.1 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected Properties buildDTPConnectionProfileProperties() {
-		Properties p = super.buildDTPConnectionProfileProperties();
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID, this.getDatabaseName());
-		return p;
-	}
-
-	private String getDatabaseName() {
-		return "dalitest";
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;  // seems to work...
-	}
-
-	public void testDatabase() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// DTP: MySQL has a single schema with the same name as the database
-		Schema schema = this.getDatabase().getSchemaNamed(this.getDatabaseName());
-		assertNotNull(schema);
-		assertSame(this.getDefaultSchema(), schema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "foo_baz");
-		this.dropTable(this.getDatabaseName(), "baz");
-		this.dropTable(this.getDatabaseName(), "foo");
-		this.dropTable(this.getDatabaseName(), "bar");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableNamed("foo");
-		assertEquals(3, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		assertEquals(1, fooTable.getForeignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("id");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INT", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("name");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnNamed("bar_id");
-		assertEquals("INT", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.getForeignKeys().iterator().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.getColumnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("bar");
-		assertEquals(2, barTable.getColumnsSize());
-		assertEquals(1, barTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, barTable.getForeignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BLOB", barTable.getColumnNamed("chunk").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnNamed("chunk").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnNamed("chunk").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("foo_baz");
-		assertEquals(2, foo_bazTable.getColumnsSize());
-		assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.getForeignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey());
-
-		this.dropTable(this.getDatabaseName(), "foo_baz");
-		this.dropTable(this.getDatabaseName(), "baz");
-		this.dropTable(this.getDatabaseName(), "foo");
-		this.dropTable(this.getDatabaseName(), "bar");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE bar (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    chunk BLOB").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR(20),").append(CR);
-		sb.append("    bar_id INTEGER,").append(CR);
-		sb.append("    FOREIGN KEY (bar_id) REFERENCES bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE baz (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo_baz (").append(CR);
-		sb.append("    foo_id INT,").append(CR);
-		sb.append("    baz_id INT,").append(CR);
-		sb.append("    FOREIGN KEY (foo_id) REFERENCES foo(id),").append(CR);
-		sb.append("    FOREIGN KEY (baz_id) REFERENCES baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	/**
-	 * On Windows, table names get folded to lowercase by default;
-	 * even if the name is delimited (apparently).
-	 */
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "test1");
-		this.dropTable(this.getDatabaseName(), "TEST2");
-		this.dropTable(this.getDatabaseName(), "`TEST3`");
-
-		this.executeUpdate("CREATE TABLE test1 (id INTEGER, name VARCHAR(20))");
-		this.executeUpdate("CREATE TABLE TEST2 (id INTEGER, name VARCHAR(20))");
-		this.executeUpdate("CREATE TABLE `TEST3` (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		Table test1Table = schema.getTableForIdentifier("test1");
-		assertNotNull(test1Table);
-
-		// this probably only works on Windows
-		Table test2Table = schema.getTableForIdentifier("test2");
-		assertNotNull(test2Table);
-
-		// this probably only works on Windows
-		Table test3Table = schema.getTableForIdentifier("`test3`");
-		assertNotNull(test3Table);
-
-		this.dropTable(this.getDatabaseName(), "test1");
-		this.dropTable(this.getDatabaseName(), "TEST2");
-		this.dropTable(this.getDatabaseName(), "`TEST3`");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("id"));
-		assertNotNull(table.getColumnNamed("name"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("ID"));
-		assertNotNull(table.getColumnNamed("NAME"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("Id"));
-		assertNotNull(table.getColumnNamed("Name"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (`Id` INTEGER, `Name` VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("`Id`"));
-		assertNotNull(table.getColumnForIdentifier("`Name`"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	/**
-	 * We can only get a single "schema" per connection via DTP,
-	 * so cross-schema references are not visible.
-	 */
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase("xref_test2");
-		this.dropDatabase("xref_test1");
-
-		this.executeUpdate("CREATE DATABASE xref_test1");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("CREATE TABLE org (id INTEGER PRIMARY KEY, name VARCHAR(20))");
-
-		this.executeUpdate("CREATE DATABASE xref_test2");
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("CREATE TABLE emp (id INTEGER PRIMARY KEY, name VARCHAR(20), " +
-				"org_id INTEGER, FOREIGN KEY (org_id) REFERENCES xref_test1.org(id))");
-
-		this.getJDBCConnection().setCatalog("xref_test2");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema2 = this.getDefaultSchema();
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		// no foreign keys
-		assertEquals(0, empTable.getForeignKeysSize());
-
-		this.dropDatabase("xref_test2");
-		this.dropDatabase("xref_test1");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String dbName, String tableName) throws Exception {
-		this.executeUpdate("DROP TABLE IF EXISTS " + dbName + '.' + tableName);
-	}
-
-	private void dropDatabase(String name) throws Exception {
-		this.executeUpdate("DROP DATABASE IF EXISTS " + name);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java
deleted file mode 100644
index c4711e8..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import java.sql.SQLException;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-
-@SuppressWarnings("nls")
-public class Oracle10gTests extends DTPPlatformTests {
-
-	public Oracle10gTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle10g.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 10g Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.10.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle10g_10.1.0.4";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle10g (10.1.0.4) JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-	public void testDatabase() throws Exception {
-		if (this.connectionProfile.getUserName().toUpperCase().equals("SYS")) {
-			System.out.println("skipped test: " + this.getClass() + '.' + this.getName());
-			return;  // SYS does not have a schema
-		}
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// Oracle should have a schema with the same name as the user
-		Schema schema = this.getDatabase().getSchemaForIdentifier(this.getUserID());
-		assertNotNull(schema);
-		assertSame(this.getDefaultSchema(), schema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("foo_baz");
-		this.dropTable("baz");
-		this.dropTable("foo");
-		this.dropTable("bar");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableForIdentifier("foo");
-		assertEquals(3, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		assertEquals(1, fooTable.getForeignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("ID", pkColumn.getName());
-		Column idColumn = fooTable.getColumnForIdentifier("id");
-		assertSame(pkColumn, idColumn);
-		assertEquals("NUMBER", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("java.math.BigDecimal", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnForIdentifier("name");
-		assertEquals("VARCHAR2", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnForIdentifier("bar_id");
-		assertEquals("NUMBER", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.getForeignKeys().iterator().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.getColumnPairsSize());
-		assertEquals("BAR", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableForIdentifier("bar");
-		assertEquals(2, barTable.getColumnsSize());
-		assertEquals(1, barTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, barTable.getForeignKeysSize());
-		assertEquals("ID", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BLOB", barTable.getColumnForIdentifier("chunk").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnForIdentifier("chunk").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnForIdentifier("chunk").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableForIdentifier("foo_baz");
-		assertEquals(2, foo_bazTable.getColumnsSize());
-		assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.getForeignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnForIdentifier("foo_id").isPartOfForeignKey());
-
-		this.dropTable("foo_baz");
-		this.dropTable("baz");
-		this.dropTable("foo");
-		this.dropTable("bar");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE bar (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    chunk BLOB").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR2(20),").append(CR);
-		sb.append("    bar_id REFERENCES bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE baz (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR2(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo_baz (").append(CR);
-		sb.append("    foo_id NUMBER(10) REFERENCES foo(id),").append(CR);
-		sb.append("    baz_id NUMBER(10) REFERENCES baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("\"test3\"");
-
-		this.executeUpdate("CREATE TABLE test1 (id NUMBER(10), name VARCHAR2(20))");
-		this.executeUpdate("CREATE TABLE TEST2 (id NUMBER(10), name VARCHAR2(20))");
-		this.executeUpdate("CREATE TABLE \"test3\" (id NUMBER(10), name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		Table test1Table = schema.getTableForIdentifier("test1");
-		assertNotNull(test1Table);
-		test1Table = schema.getTableForIdentifier("TEST1");
-		assertNotNull(test1Table);
-
-		Table test2Table = schema.getTableForIdentifier("test2");
-		assertNotNull(test2Table);
-		test2Table = schema.getTableForIdentifier("TEST2");
-		assertNotNull(test2Table);
-
-		Table test3Table = schema.getTableForIdentifier("\"test3\"");
-		assertNotNull(test3Table);
-		test3Table = schema.getTableForIdentifier("test3");
-		assertNull(test3Table);
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("\"test3\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("test");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id NUMBER(10), name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID NUMBER(10), NAME VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id NUMBER(10), Name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" NUMBER(10), \"Name\" VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		if ( ! this.connectionProfile.getUserName().toUpperCase().equals("SYS")) {
-			System.out.println("skipped test: " + this.getClass() + '.' + this.getName());
-			return;  // SYS does not have a schema
-		}
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.executeUpdateIgnoreErrors("DROP USER XREF_TEST2 CASCADE");
-		this.executeUpdateIgnoreErrors("DROP USER XREF_TEST1 CASCADE");
-
-		this.executeUpdate("CREATE USER XREF_TEST1 IDENTIFIED BY foo");
-		this.executeUpdate("ALTER USER XREF_TEST1 QUOTA UNLIMITED ON USERS");
-		this.executeUpdate("CREATE TABLE XREF_TEST1.ORG (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20))");
-
-		this.executeUpdate("CREATE USER XREF_TEST2 IDENTIFIED BY foo");
-		this.executeUpdate("ALTER USER XREF_TEST2 QUOTA UNLIMITED ON USERS");
-		this.executeUpdate("GRANT ALL ON XREF_TEST1.ORG TO XREF_TEST2");
-		this.executeUpdate("CREATE TABLE XREF_TEST2.EMP (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20), " +
-				"ORG_ID NUMBER(10) REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("ORG");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("EMP");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.getForeignKeysSize());
-		ForeignKey fk = empTable.getForeignKeys().iterator().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("ORG", refTable.getName());
-		assertEquals(1, fk.getColumnPairsSize());
-		ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("ORG_ID", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("ID", refColumn.getName());
-
-		this.executeUpdate("DROP USER XREF_TEST2 CASCADE");
-		this.executeUpdate("DROP USER XREF_TEST1 CASCADE");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String tableName) throws Exception {
-		this.executeUpdateIgnoreErrors("DROP TABLE " + tableName + " CASCADE CONSTRAINTS");
-	}
-
-// need Oracle enablement plug-in
-//	public void testSequence() throws Exception {
-//		this.connectionProfile.connect();
-//		TestConnectionListener listener = new TestConnectionListener();
-//		this.connectionProfile.addConnectionListener(listener);
-//
-//		this.dropSequence("FOO_SEQ");
-//
-//		this.executeUpdate("CREATE SEQUENCE FOO_SEQ");
-//		((ICatalogObject) this.getDTPDatabase()).refresh();
-//
-//		Sequence sequence = this.getDatabase().getDefaultSchema().getSequenceForIdentifier("FOO");
-//		assertNotNull(sequence);
-//		assertEquals("FOO_SEQ", sequence.getName());
-//
-//		this.dropSequence("FOO_SEQ");
-//
-//		this.connectionProfile.removeConnectionListener(listener);
-//		this.connectionProfile.disconnect();
-//	}
-//
-//	private void dropSequence(String sequenceName) throws Exception {
-//		this.executeUpdateIgnoreErrors("DROP SEQUENCE " + sequenceName);
-//	}
-//
-	protected void dumpUserObjects() throws SQLException {
-		this.dump("select * from user_objects");
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java
deleted file mode 100644
index d966a9a..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-
-/**
- *  Oracle 10g Thin Driver Test
- */
-@SuppressWarnings("nls")
-public class Oracle10gXETests extends DTPPlatformTests {
-
-	public Oracle10gXETests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle10gXE.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 10g Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.10.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle10g_XE";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle10g XE Release 2 (10.2) JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java
deleted file mode 100644
index 102e919..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-
-/**
- *  Oracle 9i Thin Driver Test
- */
-@SuppressWarnings("nls")
-public class Oracle9iTests extends DTPPlatformTests {
-
-	public Oracle9iTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle9i.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 9i Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.9.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "9";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle9i";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle9i JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java
deleted file mode 100644
index 6e501a7..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-
-@SuppressWarnings("nls")
-public class PostgreSQLTests extends DTPPlatformTests {
-
-	public PostgreSQLTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "postgresql.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "PostgreSQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.PostgreSQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.postgresql.postgresqlDriverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "postgres";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "8.x";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "org.postgresql.Driver";
-	}
-
-	@Override
-	protected String getDefaultJDBCURL() {
-		// using this URL will result in the DTP database containing a single
-		// catalog named "" - which, unfortunately, resembles the pseudo-catalog
-		// generated by DTP for databases that do not return any catalogs via
-		// JDBC metadata calls...
-		return "jdbc:postgresql";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "PostgreSQL";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "PostgreSQL 8.2 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// DTP does not support PostgreSQL off-line - see 226704/241558
-		return false;
-	}
-
-	public void testSchema() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("TEST1");
-		this.dropSchema("TEST2");
-
-		this.executeUpdate("CREATE SCHEMA TEST1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema1 = this.getDefaultCatalog().getSchemaForIdentifier("TEST1");
-		assertNotNull(schema1);
-
-		this.executeUpdate("CREATE SCHEMA TEST2");
-		Schema schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2");
-		assertNull(schema2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2");
-		assertNotNull(schema2);
-		assertNotSame(schema1, this.getDefaultCatalog().getSchemaForIdentifier("TEST1"));  // we should have a new schema after the refresh
-
-		this.dropSchema("TEST2");
-		this.dropSchema("TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA LOOKUP_TEST");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_test"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test"));
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_test\""));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\""));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-
-		this.dropSchema("LOOKUP_TEST");
-
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_test"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaIdentifier() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA lookup_test");  // this gets folded to lowercase
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST");
-		assertEquals("lookup_test", schema.getIdentifier());
-		assertEquals("lookup_test", schema.getIdentifier("LookupTest"));
-		assertNull(schema.getIdentifier("Lookup_Test"));
-
-		schema = this.getDefaultCatalog().getSchemaNamed("lookup_test");
-		assertEquals("lookup_test", schema.getIdentifier());
-
-		schema = this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\"");
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier());
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST"));
-
-		this.dropSchema("\"lookup_TEST\"");
-		this.dropSchema("LOOKUP_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET search_path TO TABLE_TEST");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST");
-
-		// FOO
-		Table fooTable = schema.getTableForIdentifier("FOO");
-		assertEquals(3, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		assertEquals(1, fooTable.getForeignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnForIdentifier("ID");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INT4", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("java.lang.Integer", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnForIdentifier("NAME");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnForIdentifier("BAR_ID");
-		assertEquals("INT4", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.getForeignKeys().iterator().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.getColumnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableForIdentifier("BAR");
-		assertEquals(2, barTable.getColumnsSize());
-		assertEquals(1, barTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, barTable.getForeignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BYTEA", barTable.getColumnForIdentifier("CHUNK").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnForIdentifier("CHUNK").getJavaTypeDeclaration());
-		// assertTrue(barTable.getColumnForIdentifier("CHUNK").dataTypeIsLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableForIdentifier("FOO_BAZ");
-		assertEquals(2, foo_bazTable.getColumnsSize());
-		assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.getForeignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnForIdentifier("FOO_ID").isPartOfForeignKey());
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAR (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    CHUNK bytea").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    NAME varchar(20),").append(CR);
-		sb.append("    BAR_ID integer REFERENCES BAR(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAZ (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    NAME varchar(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO_BAZ (").append(CR);
-		sb.append("    FOO_ID int REFERENCES FOO(ID),").append(CR);
-		sb.append("    BAZ_ID int REFERENCES BAZ(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "test");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET search_path TO TABLE_TEST");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id int, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID int, NAME varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id int, Name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" int, \"Name\" varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("TABLE_TEST", "test");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST1");
-		this.executeUpdate("SET search_path TO XREF_TEST1");
-		this.executeUpdate("CREATE TABLE ORG (ID integer PRIMARY KEY, NAME varchar(20))");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST2");
-		this.executeUpdate("SET search_path TO XREF_TEST2");
-		this.executeUpdate("CREATE TABLE EMP (ID integer PRIMARY KEY, NAME varchar(20), " +
-				"ORG_ID integer REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDefaultCatalog().getSchemaNamed("xref_test1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("org");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDefaultCatalog().getSchemaNamed("xref_test2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.getForeignKeysSize());
-		ForeignKey fk = empTable.getForeignKeys().iterator().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("org", refTable.getName());
-		assertEquals(1, fk.getColumnPairsSize());
-		ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("org_id", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("id", refColumn.getName());
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String schemaName, String tableName) throws Exception {
-		Schema schema= this.getDefaultCatalog().getSchemaForIdentifier(schemaName);
-		if (schema != null) {
-			if (schema.getTableForIdentifier(tableName) != null) {
-				this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName);
-			}
-		}
-	}
-
-	private void dropSchema(String name) throws Exception {
-		if (this.getDefaultCatalog().getSchemaForIdentifier(name) != null) {
-			this.executeUpdate("DROP SCHEMA " + name + " CASCADE");
-		}
-	}
-
-// see 241578/241557
-//	public void testSequence() throws Exception {
-//		this.connectionProfile.connect();
-//		TestConnectionListener listener = new TestConnectionListener();
-//		this.connectionProfile.addConnectionListener(listener);
-//
-//		this.dropSequence("SEQUENCE_TEST", "FOO");
-//		this.dropSchema("SEQUENCE_TEST");
-//
-//		this.executeUpdate("CREATE SCHEMA SEQUENCE_TEST");
-//		this.executeUpdate("SET search_path TO SEQUENCE_TEST");
-//
-//		this.executeUpdate(this.buildBarDDL());
-//		this.executeUpdate("CREATE SEQUENCE FOO START 1");
-////		List<Object[]> list = this.execute("SELECT nextval('foo')");
-////		System.out.println(list);
-//		((ICatalogObject) this.getDTPDatabase()).refresh();
-//
-//		Schema schema = this.getDefaultCatalog().getSchemaNamed("SEQUENCE_TEST");
-//		Sequence sequence = schema.getSequenceNamed("FOO");
-//		assertNotNull(sequence);
-//		assertEquals("foo_seq", sequence.getName());
-//
-//		this.dropSequence("SEQUENCE_TEST", "FOO");
-//		this.dropSchema("SEQUENCE_TEST");
-//
-//		this.connectionProfile.removeConnectionListener(listener);
-//		this.connectionProfile.disconnect();
-//	}
-//
-//	private void dropSequence(String schemaName, String sequenceName) throws Exception {
-//		Schema schema= this.getDefaultCatalog().getSchemaNamed(schemaName);
-//		if (schema != null) {
-//			if (schema.getSequenceNamed(sequenceName) != null) {
-//				this.executeUpdate("DROP SEQUENCE " + schemaName + '.' + sequenceName);
-//			}
-//		}
-//	}
-//
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java
deleted file mode 100644
index 346583f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-
-/**
- *  SQL Server 2005 Driver Test
- */
-@SuppressWarnings("nls")
-public class SQLServerTests extends DTPPlatformTests {
-
-	public SQLServerTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "sqlserver.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Microsoft SQL Server 2005 JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Microsoft SQL Server 2005 JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.msft.sqlserver.2005.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "SQLServer";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "2005";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.microsoft.sqlserver.jdbc.SQLServerDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "SQLServer_2005";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Microsoft SQL Server 2005 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected String getProviderID() {
-		return "org.eclipse.datatools.connectivity.db.generic.connectionProfile";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;  // haven't actually tried this yet...
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java b/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java
deleted file mode 100644
index ef91d7a..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.jpa.db.Catalog;
-import org.eclipse.jpt.jpa.db.Column;
-import org.eclipse.jpt.jpa.db.ForeignKey;
-import org.eclipse.jpt.jpa.db.Schema;
-import org.eclipse.jpt.jpa.db.Table;
-
-@SuppressWarnings("nls")
-public class SybaseTests extends DTPPlatformTests {
-
-	public SybaseTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "sybase.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Sybase JDBC Driver for Sybase ASE 15.x";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Sybase JDBC Driver for Sybase ASE 15.x";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.connectivity.db.sybase.ase.genericDriverTemplate_15";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Sybase_ASE";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "15.x";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.sybase.jdbc3.jdbc.SybDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Sybase_15";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Sybase ASE 15 jConnect JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-	/**
-	 * Sybase "databases" become DTP "catalogs"
-	 */
-	public void testCatalog() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database test1");
-		this.executeUpdateIgnoreErrors("drop database test2");
-
-		this.executeUpdate("create database test1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Catalog catalog1 = this.getDatabase().getCatalogNamed("test1");
-		assertNotNull(catalog1);
-		Schema schema1 = catalog1.getSchemaNamed("dbo");
-		assertNotNull(schema1);
-		assertSame(schema1, catalog1.getDefaultSchema());
-
-		this.executeUpdate("create database test2");
-		Catalog catalog2 = this.getDatabase().getCatalogNamed("test2");
-		assertNull(catalog2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		catalog2 = this.getDatabase().getCatalogNamed("test2");
-		assertNotNull(catalog2);
-		Schema schema2 = catalog2.getDefaultSchema();
-		assertNotNull(schema2);
-
-		assertNotSame(catalog1, this.getDatabase().getCatalogNamed("test1"));  // we should have a new catalog after the refresh
-		assertNotSame(schema1, this.getDatabase().getCatalogNamed("test1").getDefaultSchema());  // we should have a new schema after the refresh
-
-		this.executeUpdate("drop database test2");
-		this.executeUpdate("drop database test1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database table_test");
-		this.executeUpdate("create database table_test");
-		this.getJDBCConnection().setCatalog("table_test");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getCatalogNamed("table_test").getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableNamed("foo");
-		assertEquals(3, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		assertEquals(1, fooTable.getForeignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("id");
-		assertSame(fooTable, idColumn.getTable());
-		assertSame(pkColumn, idColumn);
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertTrue(idColumn.isPartOfUniqueConstraint());
-		assertFalse(idColumn.isNullable());
-
-		assertEquals("INT", idColumn.getDataTypeName());
-		assertTrue(idColumn.isNumeric());
-		assertEquals(0, idColumn.getPrecision());
-		assertEquals(0, idColumn.getScale());
-		assertEquals(-1, idColumn.getLength());
-		assertFalse(idColumn.isLOB());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("name");
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-		assertFalse(nameColumn.isPartOfForeignKey());
-		assertTrue(nameColumn.isPartOfUniqueConstraint());
-		assertFalse(nameColumn.isNullable());  // implied "NOT NULL" ?
-
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertFalse(nameColumn.isNumeric());
-		assertEquals(-1, nameColumn.getPrecision());
-		assertEquals(-1, nameColumn.getScale());
-		assertEquals(20, nameColumn.getLength());
-		assertFalse(nameColumn.isLOB());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-
-		Column barColumn = fooTable.getColumnNamed("bar_id");
-		assertEquals("INT", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.getForeignKeys().iterator().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.getColumnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("bar");
-		assertEquals(2, barTable.getColumnsSize());
-		assertEquals(1, barTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, barTable.getForeignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		Column chunkColumn = barTable.getColumnNamed("chunk");
-		assertEquals("IMAGE", chunkColumn.getDataTypeName());
-		assertFalse(chunkColumn.isNumeric());
-		assertTrue(chunkColumn.isLOB());
-		assertEquals("byte[]", chunkColumn.getJavaTypeDeclaration());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// BAZ
-		Table bazTable = schema.getTableNamed("baz");
-		assertEquals(4, bazTable.getColumnsSize());
-		assertEquals(1, bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(0, bazTable.getForeignKeysSize());
-
-		Column nicknameColumn = bazTable.getColumnNamed("nickname");
-		assertTrue(nicknameColumn.isNullable());
-
-		Column songColumn = bazTable.getColumnNamed("song");
-		assertFalse(songColumn.isNullable());
-
-		Column salaryColumn = bazTable.getColumnNamed("salary");
-		assertFalse(salaryColumn.isPartOfUniqueConstraint());
-		assertEquals("DECIMAL", salaryColumn.getDataTypeName());
-		assertTrue(salaryColumn.isNumeric());
-		assertEquals(10, salaryColumn.getPrecision());
-		assertEquals(2, salaryColumn.getScale());
-		assertEquals(-1, salaryColumn.getLength());
-		assertFalse(salaryColumn.isLOB());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("foo_baz");
-		assertEquals(2, foo_bazTable.getColumnsSize());
-		assertEquals(0, foo_bazTable.getPrimaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.getForeignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey());
-
-		this.executeUpdate("drop table foo_baz");
-		this.executeUpdate("drop table baz");
-		this.executeUpdate("drop table foo");
-		this.executeUpdate("drop table bar");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database table_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table bar (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    chunk image").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table foo (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    name varchar(20) unique,").append(CR);
-		sb.append("    bar_id integer references bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table baz (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    nickname varchar(20) null,").append(CR);
-		sb.append("    song varchar(20) not null,").append(CR);
-		sb.append("    salary decimal(10, 2)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table foo_baz (").append(CR);
-		sb.append("    foo_id integer references foo(id),").append(CR);
-		sb.append("    baz_id integer references baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database table_lookup_test");
-		this.executeUpdate("create database table_lookup_test");
-		this.getJDBCConnection().setCatalog("table_lookup_test");
-
-		this.executeUpdate("create table test1 (id integer, name varchar(20))");
-		this.executeUpdate("create table TEST2 (id integer, name varchar(20))");
-		this.executeUpdate("create table [Test3] (id integer, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getCatalogNamed("table_lookup_test").getDefaultSchema();
-
-		assertNotNull(schema.getTableNamed("test1"));
-		assertNotNull(schema.getTableForIdentifier("test1"));
-
-		assertNotNull(schema.getTableNamed("TEST2"));
-		assertNotNull(schema.getTableForIdentifier("TEST2"));
-
-		assertNotNull(schema.getTableForIdentifier("[Test3]"));
-
-		this.executeUpdate("drop table [Test3]");
-		this.executeUpdate("drop table TEST2");
-		this.executeUpdate("drop table test1");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database table_lookup_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database column_lookup_test");
-		this.executeUpdate("create database column_lookup_test");
-		this.getJDBCConnection().setCatalog("column_lookup_test");
-
-		// lowercase
-		this.executeUpdate("create table test (id integer, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("id"));
-		assertNotNull(table.getColumnNamed("name"));
-
-		this.executeUpdate("drop table test");
-
-		// uppercase
-		this.executeUpdate("create table test (ID integer, NAME varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.executeUpdate("drop table test");
-
-		// mixed case
-		this.executeUpdate("create table test (Id integer, Name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.executeUpdate("drop table test");
-
-		// delimited
-		this.executeUpdate("create table test ([Id] integer, [Name] varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("[Id]"));
-		assertNotNull(table.getColumnForIdentifier("[Name]"));
-
-		this.executeUpdate("drop table test");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database column_lookup_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database xref_test2");
-		this.executeUpdateIgnoreErrors("drop database xref_test1");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("create database xref_test1");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("create table org (id integer primary key, name varchar(20))");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("create database xref_test2");
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("create table emp (id integer primary key, name varchar(20), " +
-				"org_id integer references xref_test1..org(id))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Catalog catalog1 = this.getDatabase().getCatalogNamed("xref_test1");
-		assertNotNull(catalog1);
-		Schema schema1 = catalog1.getSchemaNamed("dbo");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("org");
-		assertNotNull(orgTable);
-
-		Catalog catalog2 = this.getDatabase().getCatalogNamed("xref_test2");
-		assertNotNull(catalog2);
-		Schema schema2 = catalog2.getSchemaNamed("dbo");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.getForeignKeysSize());
-		ForeignKey fk = empTable.getForeignKeys().iterator().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("org", refTable.getName());
-		assertEquals(1, fk.getColumnPairsSize());
-		ForeignKey.ColumnPair cp = fk.getColumnPairs().iterator().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("org_id", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("id", refColumn.getName());
-
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("drop table emp");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("drop table org");
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database xref_test2");
-		this.executeUpdate("drop database xref_test1");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath
deleted file mode 100644
index a6a514e..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/gen/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project
deleted file mode 100644
index b68577b..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.gen.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 2c6dda4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:12:14 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8bab913..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jul 07 20:13:24 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index fc42d0a..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.gen.tests
-Bundle-Version: 3.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
- org.eclipse.jdt.core;bundle-version="3.4.0",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.jpa.db;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.jpa.gen;bundle-version="[2.0.0,3.0.0)",
- org.junit;bundle-version="3.8.0"
-Export-Package: org.eclipse.jpt.jpa.gen.tests.internal;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties
deleted file mode 100644
index e68d4bf..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Copyright (c) 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               plugin.properties
-source.. = src/
-output.. = bin/
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties
deleted file mode 100644
index f81a674..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName=Java Persistence Tools Entity Generation Tests
-providerName=Eclipse.org
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java
deleted file mode 100644
index 25e870f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.tests.internal;
-
-import java.util.HashSet;
-import org.eclipse.jpt.jpa.gen.internal.util.EntityGenTools;
-
-import junit.framework.TestCase;
-
-/**
- * 
- */
-@SuppressWarnings("nls")
-public class EntityGenToolsTests extends TestCase {
-
-	public EntityGenToolsTests(String name) {
-		super(name);
-	}
-
-	public void testConvertToUniqueJavaStyleClassName1() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5oo", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName2() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("Foo");
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName3() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("foo");
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName4() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names));
-		assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names));
-		assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName5() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("FooBar");
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names));
-		assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names));
-		assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName1() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5oo", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName2() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("Foo");
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName3() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("foo");
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName4() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names));
-		assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names));
-		assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName5() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("FooBar");
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names));
-		assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names));
-		assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java
deleted file mode 100644
index 530dd84..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.jpa.gen.tests.internal.EntityGenToolsTests;
-
-/**
- * 
- */
-public class JptJpaGenTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite("JPT Entity Generation Tests"); //$NON-NLS-1$
-		suite.addTestSuite(EntityGenToolsTests.class);
-		return suite;
-	}
-
-	private JptJpaGenTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml
deleted file mode 100644
index 40a027f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Copyright (c) 2008, 2010 Oracle. All rights reserved.
-  This program and the accompanying materials are made available under the
-  terms of the Eclipse Public License v1.0, which accompanies this distribution
-  and is available at http://www.eclipse.org/legal/epl-v10.html.
-
-  Contributors:
-    Oracle - initial API and implementation
- -->
-<project name="testsuite" default="run" basedir=".">
-	<!-- The property ${eclipse-home} should be passed into this script -->
-	<!-- Set a meaningful default value for when it is not. -->
-	<echo message="basedir ${basedir}" />
-	<echo message="eclipse place ${eclipse-home}" />
-	<!-- sets the properties plugin-name -->
-	<property name="plugin-name" value="org.eclipse.jpt.jpa.gen.tests"/>
-
-	<!-- This target holds all initialization code that needs to be done for -->
-	<!-- all tests that are to be run. Initialization for individual tests -->
-	<!-- should be done within the body of the suite target. -->
-	<target name="init">
-		<tstamp/>
-		<delete>
-			<fileset dir="${eclipse-home}" includes="org*.xml"/>
-		</delete>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite">
-		<ant target="gen-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.jpt.jpa.gen.tests.internal.JptJpaGenTests" />
-			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-			<property name="extraVMargs" value=""/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init, suite, cleanup">
-	</target>
-</project>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath
deleted file mode 100644
index f19398a..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/ui/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project
deleted file mode 100644
index 9b0ee1f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpa.ui.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index d364a0f..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:27:16 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d909c10..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:55:01 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 34bfa32..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jpa.ui.tests
-Bundle-Version: 2.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: 
- org.junit;bundle-version="4.3.1",
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jface,
- org.eclipse.jpt.common.core.tests,
- org.eclipse.jpt.jpa.core.tests,
- org.eclipse.jpt.jpa.core.tests.extension.resource,
- org.eclipse.jpt.common.utility,
- org.eclipse.jpt.jpa.core,
- org.eclipse.jpt.jpa.ui,
- org.eclipse.ui.navigator;bundle-version="3.4.0",
- org.eclipse.ui.forms;bundle-version="3.3.100",
- org.eclipse.ui.workbench;bundle-version="3.4.0"
-Export-Package: org.eclipse.jpt.jpa.ui.tests;x-internal:=true,
- org.eclipse.jpt.jpa.ui.tests.internal.platform;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties
deleted file mode 100644
index 50f0aa3..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2010 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties
deleted file mode 100644
index ac887ad..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName=Dali Java Persistence Tools - UI Tests
-providerName=Eclipse Web Tools Platform
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java
deleted file mode 100644
index d527791..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.ui.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.jpa.ui.tests.internal.platform.JptUiPlatformTests;
-
-/**
- * Runs all JPT UI Tests
- */
-public class JptUiTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUiTests.class.getPackage().getName());
-		suite.addTest(JptUiPlatformTests.suite());
-		return suite;
-	}
-
-	private JptUiTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java
deleted file mode 100644
index ea60afa..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2010  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.jpa.ui.tests.internal.platform;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.jpa.core.JpaProject;
-import org.eclipse.jpt.jpa.core.internal.platform.JpaPlatformManagerImpl;
-import org.eclipse.jpt.jpa.core.tests.extension.resource.ExtensionTestPlugin;
-import org.eclipse.jpt.jpa.core.tests.extension.resource.TestJpaPlatformProvider;
-import org.eclipse.jpt.jpa.core.tests.internal.projects.TestJpaProject;
-
-@SuppressWarnings("nls")
-public class JpaPlatformUiExtensionTests extends TestCase
-{
-	protected TestJpaProject testProject;
-
-	protected static final String PROJECT_NAME = "ExtensionTestProject";
-	protected static final String PACKAGE_NAME = "extension.test";
-
-	public static final String TEST_PLUGIN_CLASS = ExtensionTestPlugin.class.getName();
-	public static final String TEST_PLUGIN_ID = ExtensionTestPlugin.PLUGIN_ID;
-
-	public static final String TEST_PLATFORM_ID = TestJpaPlatformProvider.ID;
-	public static final String TEST_PLATFORM_CLASS = TestJpaPlatformProvider.class.getName();
-	public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform";
-
-	public static final String TEST_UI_PLATFORM_ID = TEST_PLATFORM_ID;
-
-	public JpaPlatformUiExtensionTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.testProject = this.buildJpaProject(PROJECT_NAME, false);  // false = no auto-build
-	}
-
-	protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild) throws Exception {
-		return new TestJpaProject(projectName, autoBuild);  // false = no auto-build
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.testProject.getProject().delete(true, true, null);
-		this.testProject = null;
-		super.tearDown();
-	}
-
-	protected JpaProject jpaProject() {
-		return this.testProject.getJpaProject();
-	}
-
-	public void testJpaPlatform() {
-		assertNotNull(JpaPlatformManagerImpl.instance().buildJpaPlatformImplementation(this.testProject.getProject()));
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JptUiPlatformTests.java b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JptUiPlatformTests.java
deleted file mode 100644
index abd6960..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JptUiPlatformTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.ui.tests.internal.platform;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUiPlatformTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUiPlatformTests.class.getPackage().getName());
-		suite.addTestSuite(JpaPlatformUiExtensionTests.class);
-		return suite;
-	}
-
-	private JptUiPlatformTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/.project b/jpa/tests/org.eclipse.jpt.ui.tests/.project
deleted file mode 100644
index ab9bd7f..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.ui.tests</name>
-	<comment>renamed to org.eclipse.jpt.jpa.ui.tests</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/.project b/jpa/tests/org.eclipse.jpt.utility.tests/.project
deleted file mode 100644
index c371e9a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.utility.tests</name>
-	<comment>renamed to org.eclipse.jpt.common.utility.tests and moved to common component</comment>
-</projectDescription>