This commit was manufactured by cvs2svn to create tag 'R3_0_1'.
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/.project b/assembly/features/org.eclipse.jpt.tests/.project
deleted file mode 100644
index c9a282f..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests</name>
-	<comment>Unused Project</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project
deleted file mode 100644
index 7a69c2f..0000000
--- a/assembly/features/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment>Unused Project</comment>
-</projectDescription>
\ No newline at end of file
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/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/.cvsignore b/common/tests/org.eclipse.jpt.common.ui.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
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 1da1cd1..0000000
--- a/common/tests/org.eclipse.jpt.common.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Mar 08 12:06:44 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.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-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 8aa4fa0..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;x-internal:=true,
- 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 223b8e6..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) getModel()), 
-					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) getModel()), 
-					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/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath
deleted file mode 100644
index f8b7c93..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.classpath
+++ /dev/null
@@ -1,14 +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/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/common/utility/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/jaxb/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/jaxb/eclipselink/core/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project
deleted file mode 100644
index 71513f6..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jaxb.eclipselink.core.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/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ee129ed..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu May 05 17:25:11 EDT 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.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-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/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index e8ceb89..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.jaxb.eclipselink.core.tests;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Dali-Comment: jdk 1.6 has the javax.xml.bind annotations
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-Activator: org.eclipse.jpt.jaxb.eclipselink.core.tests.JptJaxbEclipseLinkCoreTestsPlugin
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.common.core.tests;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.jaxb.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.jaxb.core.tests;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.jaxb.eclipselink.core;bundle-version="[1.0.0,2.0.0)",
- org.junit;bundle-version="3.8.0"
-Export-Package: org.eclipse.jpt.jaxb.eclipselink.core.tests,
- org.eclipse.jpt.jaxb.eclipselink.core.tests.internal,
- org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource,
- org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/about.html b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.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/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties
deleted file mode 100644
index 38c9351..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/build.properties
+++ /dev/null
@@ -1,15 +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 = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-source.. = src/
-output.. = bin/
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/plugin.properties b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/plugin.properties
deleted file mode 100644
index 583cd43..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.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 - JAXB EclipseLink Core Tests
-providerName=Eclipse Web Tools Platform
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java
deleted file mode 100644
index 2d78246..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/JptJaxbEclipseLinkCoreTestsPlugin.java
+++ /dev/null
@@ -1,68 +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.jaxb.eclipselink.core.tests;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.jpt.common.utility.internal.ReflectionTools;
-import org.eclipse.jpt.jaxb.core.JaxbProjectManager;
-import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * configure the core to handle events synchronously when we are
- * running tests
- */
-@SuppressWarnings("nls")
-public class JptJaxbEclipseLinkCoreTestsPlugin
-		extends Plugin {
-	
-	private static JptJaxbEclipseLinkCoreTestsPlugin INSTANCE;
-	
-	public static final String ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.eclipselink.jar";
-	
-	
-	public static JptJaxbEclipseLinkCoreTestsPlugin instance() {
-		return INSTANCE;
-	}
-	
-	public static String eclipseLinkJarName() {
-		return getSystemProperty(ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY);
-	}
-
-	private static String getSystemProperty(String propertyName) {
-		return System.getProperty(propertyName);
-	}
-	
-	
-	// ********** plug-in implementation **********
-	
-	public JptJaxbEclipseLinkCoreTestsPlugin() {
-		super();
-		if (INSTANCE != null) {
-			throw new IllegalStateException();
-		}
-		// this convention is *wack*...  ~bjv
-		INSTANCE = this;
-	}
-	
-	
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		JaxbProjectManager jaxbProjectManager = JptJaxbCorePlugin.getProjectManager();
-		ReflectionTools.executeMethod(jaxbProjectManager, "handleEventsSynchronously");
-		ReflectionTools.executeStaticMethod(JptJaxbCorePlugin.class, "doNotFlushPreferences");
-	}
-	
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java
deleted file mode 100644
index 403948f..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/JaxbEclipseLinkCoreTests.java
+++ /dev/null
@@ -1,30 +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.jaxb.eclipselink.core.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.JaxbEclipseLinkCoreResourceModelTests;
-
-
-public class JaxbEclipseLinkCoreTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JaxbEclipseLinkCoreTests.class.getPackage().getName());
-		suite.addTest(JaxbEclipseLinkCoreResourceModelTests.suite());
-		return suite;
-	}
-	
-	
-	private JaxbEclipseLinkCoreTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java
deleted file mode 100644
index 09d8199..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/JaxbEclipseLinkCoreResourceModelTests.java
+++ /dev/null
@@ -1,33 +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.jaxb.eclipselink.core.tests.internal.resource;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.resource.java.ELJaxbJavaResourceModelTests;
-
-
-public class JaxbEclipseLinkCoreResourceModelTests 
-		extends TestCase {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JaxbEclipseLinkCoreResourceModelTests.class.getName());
-
-		suite.addTest(ELJaxbJavaResourceModelTests.suite());
-		return suite;
-	}
-	
-	
-	private JaxbEclipseLinkCoreResourceModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java
deleted file mode 100644
index 28746a2..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTestCase.java
+++ /dev/null
@@ -1,48 +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.jaxb.eclipselink.core.tests.internal.resource.java;
-
-import org.eclipse.jpt.jaxb.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotationDefinition;
-import org.eclipse.jpt.jaxb.core.tests.internal.resource.java.JavaResourceModelTestCase;
-import org.eclipse.jpt.jaxb.eclipselink.core.internal.v2_1.ELJaxb_2_1_PlatformDefinition;
-import org.eclipse.jpt.jaxb.eclipselink.core.tests.JptJaxbEclipseLinkCoreTestsPlugin;
-
-
-public class ELJaxbJavaResourceModelTestCase 
-		extends JavaResourceModelTestCase {	
-	
-	public ELJaxbJavaResourceModelTestCase(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.javaProject.addJar(JptJaxbEclipseLinkCoreTestsPlugin.eclipseLinkJarName());
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		// nothing as of yet
-	}
-	
-	@Override
-	protected AnnotationDefinition[] annotationDefinitions() {
-		return ELJaxb_2_1_PlatformDefinition.instance().getAnnotationDefinitions();
-	}
-	
-	@Override
-	protected NestableAnnotationDefinition[] nestableAnnotationDefinitions() {
-		return ELJaxb_2_1_PlatformDefinition.instance().getNestableAnnotationDefinitions();
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java
deleted file mode 100644
index 30f9ffe..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/ELJaxbJavaResourceModelTests.java
+++ /dev/null
@@ -1,33 +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.jaxb.eclipselink.core.tests.internal.resource.java;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-
-public class ELJaxbJavaResourceModelTests
-		extends TestCase {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ELJaxbJavaResourceModelTests.class.getName());
-		suite.addTestSuite(XmlInverseReferenceAnnotationTests.class);
-		suite.addTestSuite(XmlTransformationAnnotationTests.class);
-		
-		return suite;
-	}
-	
-	
-	private ELJaxbJavaResourceModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java
deleted file mode 100644
index 44b3bcd..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlInverseReferenceAnnotationTests.java
+++ /dev/null
@@ -1,112 +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.jaxb.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlInverseReferenceAnnotation;
-
-
-public class XmlInverseReferenceAnnotationTests
-		extends ELJaxbJavaResourceModelTestCase {
-	
-	public XmlInverseReferenceAnnotationTests(String name) {
-		super(name);
-	}
-	
-	
-	private ICompilationUnit createTestXmlInverseReference() 
-			throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(ELJaxb.XML_INVERSE_REFERENCE);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@XmlInverseReference");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestXmlInverseReferenceWithMappedBy()
-			throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(ELJaxb.XML_INVERSE_REFERENCE);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@XmlInverseReference(mappedBy = \"foo\")");
-			}
-		});
-	}
-	
-	private XmlInverseReferenceAnnotation getXmlInverseReferenceAnnotation(JavaResourceAttribute resourceAttribute) {
-		return (XmlInverseReferenceAnnotation) resourceAttribute.getAnnotation(ELJaxb.XML_INVERSE_REFERENCE);
-	}
-	
-	
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = createTestXmlInverseReference();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute);
-		
-		assertTrue(annotation != null);
-		assertNull(annotation.getMappedBy());
-	}
-	
-	public void testGetMappedBy() throws Exception {
-		ICompilationUnit cu = createTestXmlInverseReferenceWithMappedBy();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute);
-		
-		assertEquals("foo", annotation.getMappedBy());
-	}
-	
-	public void testSetMappedBy() throws Exception {
-		ICompilationUnit cu = createTestXmlInverseReference();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlInverseReferenceAnnotation annotation = getXmlInverseReferenceAnnotation(resourceAttribute);
-		
-		assertNull(annotation.getMappedBy());
-		
-		annotation.setMappedBy("bar");
-		
-		assertEquals("bar", annotation.getMappedBy());
-		assertSourceContains("@XmlInverseReference(mappedBy = \"bar\")", cu);
-		
-		annotation.setMappedBy("");
-		
-		assertEquals("", annotation.getMappedBy());
-		assertSourceContains("@XmlInverseReference(mappedBy = \"\")", cu);
-		
-		annotation.setMappedBy(null);
-		
-		assertNull(annotation.getMappedBy());
-		assertSourceContains("@XmlInverseReference", cu);
-		assertSourceDoesNotContain("mappedBy", cu);
-	}
-}
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java
deleted file mode 100644
index ca4c690..0000000
--- a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/resource/java/XmlTransformationAnnotationTests.java
+++ /dev/null
@@ -1,107 +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.jaxb.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField;
-import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlTransformationAnnotation;
-
-
-public class XmlTransformationAnnotationTests
-		extends ELJaxbJavaResourceModelTestCase {
-	
-	public XmlTransformationAnnotationTests(String name) {
-		super(name);
-	}
-	
-	
-	private ICompilationUnit createTestXmlTransformation() 
-			throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(ELJaxb.XML_TRANSFORMATION);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@XmlTransformation");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestXmlTransformationWithOptional()
-			throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(ELJaxb.XML_TRANSFORMATION);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@XmlTransformation(optional = true)");
-			}
-		});
-	}
-	
-	private XmlTransformationAnnotation getXmlTransformationAnnotation(JavaResourceAttribute resourceAttribute) {
-		return (XmlTransformationAnnotation) resourceAttribute.getAnnotation(ELJaxb.XML_TRANSFORMATION);
-	}
-	
-	
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = createTestXmlTransformation();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute);
-		
-		assertTrue(annotation != null);
-		assertNull(annotation.getOptional());
-	}
-	
-	public void testGetOptional() throws Exception {
-		ICompilationUnit cu = createTestXmlTransformationWithOptional();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute);
-		
-		assertEquals(Boolean.TRUE, annotation.getOptional());
-	}
-	
-	public void testSetOptional() throws Exception {
-		ICompilationUnit cu = createTestXmlTransformation();
-		JavaResourceType resourceType = buildJavaResourceType(cu); 
-		JavaResourceField resourceAttribute = getField(resourceType, 0);
-		XmlTransformationAnnotation annotation = getXmlTransformationAnnotation(resourceAttribute);
-		
-		assertNull(annotation.getOptional());
-		
-		annotation.setOptional(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, annotation.getOptional());
-		assertSourceContains("@XmlTransformation(optional = false)", cu);
-		
-		annotation.setOptional(null);
-		
-		assertNull(annotation.getOptional());
-		assertSourceContains("@XmlTransformation", cu);
-		assertSourceDoesNotContain("optional", cu);
-	}
-}
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 f2123ce..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink.feature/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.feature</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.feature</comment>
-</projectDescription>
\ No newline at end of file
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 d8a03f0..0000000
--- a/jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink_sdk.feature</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink_sdk.feature</comment>
-</projectDescription>
\ No newline at end of file
diff --git a/jpa/features/org.eclipse.jpt.feature/.project b/jpa/features/org.eclipse.jpt.feature/.project
deleted file mode 100644
index b83e9de..0000000
--- a/jpa/features/org.eclipse.jpt.feature/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.feature</name>
-	<comment>renamed to org.eclipse.jpt.jpa.feature</comment>
-</projectDescription>
\ No newline at end of file
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 5ee70fa..0000000
--- a/jpa/features/org.eclipse.jpt.tests.feature/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests.feature</name>
-	<comment>renamed to org.eclipse.jpt.jpa.tests.feature</comment>
-</projectDescription>
\ No newline at end of file
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 4d523ce..0000000
--- a/jpa/features/org.eclipse.jpt_sdk.feature/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt_sdk.feature</name>
-	<comment>renamed to org.eclipse.jpt.jpa_sdk.feature</comment>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.branding/.project b/jpa/plugins/org.eclipse.jpt.branding/.project
deleted file mode 100644
index 0b315e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.branding/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.branding</name>
-	<comment>renamed to org.eclipse.jpt.jpa.branding</comment>
-</projectDescription>
\ No newline at end of file
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.eclipselink.branding/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project
deleted file mode 100644
index 56cc5af..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.branding</name>
-	<comment>renamed to org.eclipse.jpt.jpa.eclipselink.branding</comment>
-</projectDescription>
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.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.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 486063b..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Mar 08 12:08:49 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.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-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 6cb7b60..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java
+++ /dev/null
@@ -1,1030 +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.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.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-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.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.rte.ICatalogObject;
-import org.eclipse.jpt.common.utility.IndentingPrintWriter;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-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.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 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, 30);
-	}
-
-	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 (HashMap<String, Object> row : this.execute(sql)) {
-			for (Map.Entry<String, Object> field : row.entrySet()) {
-				StringTools.padOrTruncateOn(String.valueOf(field.getKey()), columnWidth/2, pw);
-				pw.print('=');
-				StringTools.padOrTruncateOn(String.valueOf(field.getValue()), columnWidth/2, pw);
-				pw.print(' ');
-			}
-			pw.println();
-		}
-	}
-
-	protected ArrayList<HashMap<String, Object>> execute(String sql) throws SQLException {
-		Statement jdbcStatement = this.createJDBCStatement();
-		jdbcStatement.execute(sql);
-		ArrayList<HashMap<String, Object>> rows = this.buildRows(jdbcStatement.getResultSet());
-		jdbcStatement.close();
-		return rows;
-	}
-
-	protected ArrayList<HashMap<String, Object>> buildRows(ResultSet resultSet) throws SQLException {
-		ArrayList<HashMap<String, Object>> rows = new ArrayList<HashMap<String, Object>>();
-		CollectionTools.addAll(rows, this.buildResultSetIterator(resultSet));
-		return rows;
-	}
-
-	protected Iterator<HashMap<String, Object>> buildResultSetIterator(ResultSet resultSet) throws SQLException {
-		return new ResultSetIterator<HashMap<String, Object>>(resultSet, new MapResultSetIteratorAdapter(resultSet.getMetaData()));
-	}
-
-	public static class MapResultSetIteratorAdapter
-		implements ResultSetIterator.Adapter<HashMap<String, Object>>
-	{
-		private final int columnCount;
-		private final String[] columnNames;
-		public MapResultSetIteratorAdapter(ResultSetMetaData rsMetaData) throws SQLException {
-			super();
-			this.columnCount = rsMetaData.getColumnCount();
-			this.columnNames = new String[this.columnCount + 1];  // leave zero slot empty
-			for (int i = 1; i <= this.columnCount; i++) {  // NB: ResultSet index/subscript is 1-based
-				this.columnNames[i] = rsMetaData.getColumnName(i);
-			}
-		}
-		public HashMap<String, Object> buildNext(ResultSet rs) throws SQLException {
-			HashMap<String, Object> row = new HashMap<String, Object>(this.columnCount);
-			for (int i = 1; i <= this.columnCount; i++) {  // NB: ResultSet index/subscript is 1-based
-				row.put(this.columnNames[i], rs.getObject(i));
-			}
-			return row;
-		}
-	}
-
-	protected Statement createJDBCStatement() throws SQLException {
-		return this.getJDBCConnection().createStatement();
-	}
-
-	protected Connection getJDBCConnection() {
-		return this.connectionProfile.getJDBCConnection();
-	}
-
-	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<ForeignKey.ColumnPair> stream = foreignKey.getColumnPairs().iterator(); stream.hasNext(); ) {
-			ForeignKey.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<HashMap<String, Object>> rows = this.buildRows(this.getDatabaseMetaData().getCatalogs());
-			for (Iterator<HashMap<String, Object>> stream = rows.iterator(); stream.hasNext(); ) {
-				HashMap<String, Object> row = stream.next();
-				pw.println(row.get("TABLE_CAT"));
-			}
-		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<HashMap<String, Object>> rows = this.buildRows(this.getDatabaseMetaData().getSchemas());
-			for (HashMap<String, Object> row : rows) {
-				if (row.size() == 2) {  // catalogs were added in jdk 1.4
-					Object catalog = row.get("TABLE_CATALOG");
-					pw.print(catalog);
-					pw.print('.');
-				}
-				Object schema = row.get("TABLE_SCHEM");
-				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 e35b7e7..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java
+++ /dev/null
@@ -1,417 +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.jpa.db.tests.internal.platforms;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-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.common.utility.internal.ArrayTools;
-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:<ul>
- * <li>We can only get database objects from the database associated with our
- * connection profile.
- * <li>We can reference objects across multiple databases, so they are sorta like
- * schemas....
- * <li>Foreign keys must be defined as table-level constraints; they cannot be
- * defined as part of the column clause.
- * <li>Case-sensitivity and -folding is whacked on MySQL....
- * </ul>
- */
-@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 this.getUserID();  // by convention...
-	}
-
-	@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.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		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());
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableNamed("foo");
-		assertEquals(3, fooTable.getColumnsSize());
-		assertEquals(1, fooTable.getPrimaryKeyColumnsSize());
-		// if the tables are created with MyISAM as the backing store
-		// there will be no foreign keys
-		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("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");
-
-	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("    CONSTRAINT BAR 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.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("`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))");
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		Schema schema = this.getDefaultSchema();
-
-		Table test1Table = schema.getTableForIdentifier("test1");
-		assertNotNull(test1Table);
-
-		// if 'lctn' is 0 (UNIX), the table name is case-sensitive
-		int lctn = this.getLowerCaseTableNamesFromDatabase();
-
-		String test2Identifier = (lctn == 0) ? "TEST2" : "test2";
-		Table test2Table = schema.getTableForIdentifier(test2Identifier);
-		assertNotNull(test2Table);
-
-		String test3Identifier = (lctn == 0) ? "`TEST3`" : "`test3`";
-		Table test3Table = schema.getTableForIdentifier(test3Identifier);
-		assertNotNull(test3Table);
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("`TEST3`");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	protected int getLowerCaseTableNamesFromDatabase() throws SQLException {
-		// the underscore is a wild character on MySQL, so we need to escape it
-		ArrayList<HashMap<String, Object>> rows = this.execute("show variables like 'lower\\_case\\_table\\_names'");
-		Map<String, Object> row = rows.get(0);
-		return Integer.valueOf((String) row.get("Value")).intValue();
-	}
-
-	/**
-	 * MySQL preserves the case of column names, delimited or not;
-	 * but they are <em>not</em> case-sensitive when used in SQL.
-	 * Delimiters are useful for reserved identifiers and special characters.
-	 */
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable("test");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))");
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		Table table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("id"));
-		assertNotNull(table.getColumnNamed("name"));
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))");
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("ID"));
-		assertNotNull(table.getColumnNamed("NAME"));
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))");
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("Id"));
-		assertNotNull(table.getColumnNamed("Name"));
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (`Id` INTEGER, `Name` VARCHAR(20))");
-		// the MySQL database does NOT refresh - see bug 279721...
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		// ...refresh the single schema instead
-		((ICatalogObject) getDTPSchema(this.getDefaultSchema())).refresh();
-
-		table = this.getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("Id"));
-		assertNotNull(table.getColumnNamed("Name"));
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		boolean quotes = this.getANSIQuotesFromDatabase();
-		assertNotNull(table.getColumnForIdentifier("`Id`"));
-		if (quotes) {
-			assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		}
-
-		assertNotNull(table.getColumnForIdentifier("`Name`"));
-		if (quotes) {
-			assertNotNull(table.getColumnForIdentifier("\"Name\""));
-		}
-
-		this.dropTable("test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	protected boolean getANSIQuotesFromDatabase() throws SQLException {
-		ArrayList<HashMap<String, Object>> rows = this.execute("SELECT @@SESSION.sql_mode");
-		Map<String, Object> row = rows.get(0);
-		String sql_mode = (String) row.get("@@SESSION.sql_mode");
-		String[] modes = sql_mode.split(",");
-		return Boolean.valueOf(ArrayTools.contains(modes, "ANSI_QUOTES")).booleanValue();
-	}
-
-	private void dropTable(String tableName) throws Exception {
-		this.executeUpdate("DROP TABLE IF EXISTS " + tableName);
-	}
-}
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/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
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.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 58eaebe..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Mar 08 12:09: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.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-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 0473587..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties
+++ /dev/null
@@ -1,16 +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
-################################################################################
-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 516ebfb..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath
+++ /dev/null
@@ -1,14 +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/ui/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/jpa/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/common/core/**"/>
-			<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.ui.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
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.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bde70d3..0000000
--- a/jpa/tests/org.eclipse.jpt.jpa.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Mar 08 12:09:52 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.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-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>
diff --git a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/.project b/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/.project
deleted file mode 100644
index 6e0c0bb..0000000
--- a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpadiagrameditor.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/pom.xml b/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/pom.xml
deleted file mode 100644
index 511e16c..0000000
--- a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.releng/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	
-	<groupId>org.eclipse.jpt.jpadiagrameditor</groupId>
-	<artifactId>org.eclipse.jpt.jpadiagrameditor_parent</artifactId>
-	<version>1.0.1-SNAPSHOT</version>
-	<packaging>pom</packaging>
-	
-	<properties>
-		<tycho-version>0.9.0</tycho-version>
-	</properties>
-	
-	<modules>
-		<module>../../plugins/org.eclipse.jpt.jpadiagrameditor.ui</module>
-		<!-- module>../../tests/org.eclipse.jpt.jpadiagrameditor.tests</module -->
-		<module>../../features/org.eclipse.jpt.jpadiagrameditor.feature</module>
-		<module>../org.eclipse.jpt.jpadiagrameditor.repository</module>
-	</modules>
-	
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.sonatype.tycho</groupId>
-				<artifactId>tycho-maven-plugin</artifactId>
-				<version>${tycho-version}</version>
-				<extensions>true</extensions>
-			</plugin>
-			<plugin>
-				<groupId>org.sonatype.tycho</groupId>
-				<artifactId>target-platform-configuration</artifactId>
-				<version>${tycho-version}</version>
-				<configuration>
-					<resolver>p2</resolver>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-	
-	<repositories>
-		<repository>
-			<id>indigo</id>
-			<url>http://download.eclipse.org/releases/staging/</url>
-			<layout>p2</layout>			
-		</repository>	
-		<repository>
-			<id>indigo_WTP_RC1</id>
-			<url>http://build.eclipse.org/webtools/committers/wtp-R3.3.0-I/20110513100703/I-3.3.0-20110513100703/repository/</url>
-			<layout>p2</layout>
-		</repository>
-		<repository>
-			<id>Graphiti</id>
-			<url>http://download.eclipse.org/graphiti/updates/milestones/</url>
-			<layout>p2</layout>
-		</repository>
-		
-	</repositories>
-	
-</project>
\ No newline at end of file
diff --git a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/.project b/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/.project
deleted file mode 100644
index 42ea5b1..0000000
--- a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.jpadiagrameditor.repository</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/pom.xml b/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/pom.xml
deleted file mode 100644
index d1f29d6..0000000
--- a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	
-	<parent>
-		<artifactId>org.eclipse.jpt.jpadiagrameditor_parent</artifactId>
-		<groupId>org.eclipse.jpt.jpadiagrameditor</groupId>
-		<version>1.0.1-SNAPSHOT</version>
-		<relativePath>../org.eclipse.jpt.jpadiagrameditor.releng/pom.xml</relativePath>
-	</parent>
-	
-	<artifactId>org.eclipse.jpt.jpadiagrameditor.repository</artifactId>
-	<packaging>eclipse-update-site</packaging>
-	<name>JPA Editor Update Site</name>
-	
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.sonatype.tycho</groupId>
-				<artifactId>maven-osgi-packaging-plugin</artifactId>
-				<configuration>
-					<archiveSite>true</archiveSite>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-	
-</project>
\ No newline at end of file
diff --git a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/site.xml b/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/site.xml
deleted file mode 100644
index 8733c80..0000000
--- a/jpa_diagram_editor/development/org.eclipse.jpt.jpadiagrameditor.repository/site.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/org.eclipse.jpt.jpadiagrameditor.feature_1.0.1.qualifier.jar" id="org.eclipse.jpt.jpadiagrameditor.feature" version="1.0.1.qualifier">
-      <category name="jpa_diagram_editor"/>
-   </feature>
-   <category-def name="jpa_diagram_editor" label="JPA Diagram Editor"/>
-</site>