This commit was manufactured by cvs2svn to create tag 'v200709120000'.
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 abb0c88..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence API (JPA) 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 API (JPA) project SDK
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.xml b/assembly/features/org.eclipse.jpt.sdk/feature.xml
deleted file mode 100644
index 4b10e05..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/feature.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.sdk"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <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"/>
-
-   <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 76abfb4..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-   
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.tests/.cvsignore b/assembly/features/org.eclipse.jpt.tests/.cvsignore
deleted file mode 100644
index d9e4340..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.bin.dist.zip
-build.xml
diff --git a/assembly/features/org.eclipse.jpt.tests/.project b/assembly/features/org.eclipse.jpt.tests/.project
deleted file mode 100644
index 3d1dde6..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 17acb65..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:05 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jpt.tests/build.properties b/assembly/features/org.eclipse.jpt.tests/build.properties
deleted file mode 100644
index 7f47694..0000000
--- a/assembly/features/org.eclipse.jpt.tests/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.tests/epl-v10.html b/assembly/features/org.eclipse.jpt.tests/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.tests/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests/feature.properties b/assembly/features/org.eclipse.jpt.tests/feature.properties
deleted file mode 100644
index 6b58fe6..0000000
--- a/assembly/features/org.eclipse.jpt.tests/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence API (JPA) project Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence API (JPA) project Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.tests/feature.xml b/assembly/features/org.eclipse.jpt.tests/feature.xml
deleted file mode 100644
index e445c4c..0000000
--- a/assembly/features/org.eclipse.jpt.tests/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.tests.feature"
-         version="0.0.0"/>
-     
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.tests/license.html b/assembly/features/org.eclipse.jpt.tests/license.html
deleted file mode 100644
index 5644598..0000000
--- a/assembly/features/org.eclipse.jpt.tests/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-    
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt/.cvsignore b/assembly/features/org.eclipse.jpt/.cvsignore
deleted file mode 100644
index d9e4340..0000000
--- a/assembly/features/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.bin.dist.zip
-build.xml
diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project
deleted file mode 100644
index b7aaec2..0000000
--- a/assembly/features/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt/build.properties b/assembly/features/org.eclipse.jpt/build.properties
deleted file mode 100644
index 470b4bc..0000000
--- a/assembly/features/org.eclipse.jpt/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-               
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt/epl-v10.html b/assembly/features/org.eclipse.jpt/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/feature.properties b/assembly/features/org.eclipse.jpt/feature.properties
deleted file mode 100644
index 0ae42bb..0000000
--- a/assembly/features/org.eclipse.jpt/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Java Persistence API Tools
-
-# "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=Java Persistence API Tools - Runtime
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt/feature.xml b/assembly/features/org.eclipse.jpt/feature.xml
deleted file mode 100644
index fdae561..0000000
--- a/assembly/features/org.eclipse.jpt/feature.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt/license.html b/assembly/features/org.eclipse.jpt/license.html
deleted file mode 100644
index 2347060..0000000
--- a/assembly/features/org.eclipse.jpt/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/plugins/org.eclipse.jpt/.cvsignore b/assembly/plugins/org.eclipse.jpt/.cvsignore
deleted file mode 100644
index e4254b1..0000000
--- a/assembly/plugins/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-temp.folder
-build.xml
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 5ac613e..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: 1.0.0.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 159bfce..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=Java Persistence API 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 f45a08d..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 = Java Persistence API Tools
-providerName = Eclipse.org
diff --git a/jpa/features/org.eclipse.jpt.feature/.cvsignore b/jpa/features/org.eclipse.jpt.feature/.cvsignore
new file mode 100644
index 0000000..c14487c
--- /dev/null
+++ b/jpa/features/org.eclipse.jpt.feature/.cvsignore
@@ -0,0 +1 @@
+build.xml
diff --git a/jpa/features/org.eclipse.jpt.feature/feature.xml b/jpa/features/org.eclipse.jpt.feature/feature.xml
index a6e8a54..ed0f42d 100644
--- a/jpa/features/org.eclipse.jpt.feature/feature.xml
+++ b/jpa/features/org.eclipse.jpt.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jpt.feature"
       label="%featureName"
-      version="1.0.0.qualifier"
+      version="1.0.1.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg">
 
@@ -32,7 +32,7 @@
       <import feature="org.eclipse.datatools.sqldevtools.feature"/>
       <import feature="org.eclipse.datatools.enablement.feature"/>
       <import plugin="org.eclipse.datatools.connectivity.db.generic.ui"/>
-      <import plugin="org.eclipse.datatools.connectivity.db.generic"/>  
+      <import plugin="org.eclipse.datatools.connectivity.db.generic"/>
       <import plugin="org.eclipse.datatools.doc.user"/>
       <import plugin="org.eclipse.jdt.core"/>
       <import plugin="org.eclipse.core.commands"/>
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore b/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore
new file mode 100644
index 0000000..c14487c
--- /dev/null
+++ b/jpa/features/org.eclipse.jpt.tests.feature/.cvsignore
@@ -0,0 +1 @@
+build.xml
diff --git a/jpa/features/org.eclipse.jpt.tests.feature/feature.xml b/jpa/features/org.eclipse.jpt.tests.feature/feature.xml
index 2034cac..b136f0e 100644
--- a/jpa/features/org.eclipse.jpt.tests.feature/feature.xml
+++ b/jpa/features/org.eclipse.jpt.tests.feature/feature.xml
@@ -2,31 +2,37 @@
 <feature
       id="org.eclipse.jpt.tests.feature"
       label="Dali Java Persistence API Tools (JPA) JUnit Tests"
-      version="1.0.0.qualifier"
+      version="1.0.1.qualifier"
       provider-name="Eclipse.org">
 
    <description>
       %description
    </description>
 
-   <license url="license.html">
-      %license
-   </license>
-
    <copyright>
       %copyright
    </copyright>
 
+   <license url="license.html">
+      %license
+   </license>
+
    <plugin
          id="org.eclipse.jpt.utility.tests"
          download-size="0"
          install-size="0"
-         version="0.0.0" />
+         version="0.0.0"/>
 
    <plugin
          id="org.eclipse.jpt.core.tests"
          download-size="0"
          install-size="0"
-         version="0.0.0" />
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.jpt.core.tests.extension.resource"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
 
 </feature>
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore b/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore
new file mode 100644
index 0000000..6365d3d
--- /dev/null
+++ b/jpa/features/org.eclipse.jpt_sdk.feature/.cvsignore
@@ -0,0 +1,3 @@
+feature.temp.folder
+build.xml
+org.eclipse.jpt_sdk.feature_1.0.1.*
diff --git a/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml b/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml
index 78f3de1..aeea462 100644
--- a/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml
+++ b/jpa/features/org.eclipse.jpt_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jpt_sdk.feature"
       label="%featureName"
-      version="1.0.0.qualifier"
+      version="1.0.1.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.classpath b/jpa/plugins/org.eclipse.jpt.db.ui/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.cvsignore b/jpa/plugins/org.eclipse.jpt.db.ui/.cvsignore
deleted file mode 100644
index 814c6a8..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
\ 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 88ea5da..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.db.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index ee4b8c1..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:38 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 842c286..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:59:42 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.db.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 38a4d91..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/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.db.ui
-Bundle-Version: 1.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jpt.db.ui.internal; x-friends:="org.eclipse.jpt.ui"
-Require-Bundle: org.eclipse.ui,
- org.eclipse.jpt.db,
- org.eclipse.datatools.connectivity.ui,
- org.eclipse.datatools.sqltools.editor.core
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/about.html b/jpa/plugins/org.eclipse.jpt.db.ui/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>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>
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/build.properties b/jpa/plugins/org.eclipse.jpt.db.ui/build.properties
deleted file mode 100644
index 0d56981..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/component.xml b/jpa/plugins/org.eclipse.jpt.db.ui/component.xml
deleted file mode 100644
index bf648aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.db.ui"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.db.ui" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.db.ui/plugin.properties
deleted file mode 100644
index 2b0e583..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/plugin.properties
+++ /dev/null
@@ -1,25 +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
-###############################################################################
-# ====================================================================
-# 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 API Tools - DB UI
-providerName = Eclipse.org
-
diff --git a/jpa/plugins/org.eclipse.jpt.db.ui/src/org/eclipse/jpt/db/ui/internal/DTPUiTools.java b/jpa/plugins/org.eclipse.jpt.db.ui/src/org/eclipse/jpt/db/ui/internal/DTPUiTools.java
deleted file mode 100644
index 632fe81..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/src/org/eclipse/jpt/db/ui/internal/DTPUiTools.java
+++ /dev/null
@@ -1,99 +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.db.ui.internal;
-
-import org.eclipse.datatools.connectivity.ICategory;
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IProfileListener;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.datatools.connectivity.internal.ConnectionProfileManager;
-import org.eclipse.datatools.connectivity.internal.ui.wizards.CPWizardNode;
-import org.eclipse.datatools.connectivity.internal.ui.wizards.NewCPWizard;
-import org.eclipse.datatools.connectivity.internal.ui.wizards.ProfileWizardProvider;
-import org.eclipse.datatools.connectivity.ui.wizards.IWizardCategoryProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- *  ConnectionProfileUiTools
- */
-public class DTPUiTools {
-	
-	/**
-	 * Launch the DTP New Connection Profile wizard to create a new database connection profile.
-	 * 
-	 * Returns the name of the added profile, or null if the wizard is cancelled. ConnectionProfileRepository 
-	 * can be used to retrieve the added connection profile.
-	 */
-	public static String createNewProfile() {
-		NewCPWizard wizard;
-		WizardDialog wizardDialog;
-
-		// Filter datasource category
-	  	ViewerFilter viewerFilter = new ViewerFilter() {
-
-			public boolean select( Viewer viewer, Object parentElement, Object element) {
-				
-				CPWizardNode wizardNode = ( CPWizardNode) element;
-				if( !( wizardNode.getProvider() instanceof IWizardCategoryProvider)) {
-					ICategory cat = ConnectionProfileManager.getInstance().getProvider(
-									(( ProfileWizardProvider) wizardNode.getProvider()).getProfile()).getCategory();
-					
-					// Only display wizards belong to database category
-					while( cat != null) {
-						if( cat.getId().equals( ConnectionProfileRepository.DATABASE_CATEGORY_ID))
-							return true;
-						else
-							cat = cat.getParent();
-					}
-				}
-				return false;
-			}
-		};
-		wizard = new NewCPWizard( viewerFilter, null);
-		Shell currentShell = Display.getCurrent().getActiveShell();
-		wizardDialog = new WizardDialog( currentShell, wizard);
-		wizardDialog.setBlockOnOpen( true);
-		
-		LocalProfileListener listener = new LocalProfileListener();
-		ProfileManager.getInstance().addProfileListener( listener);
-		
-		if( wizardDialog.open() == Window.CANCEL) {
-			ProfileManager.getInstance().removeProfileListener( listener);
-			return null;
-		}
-		IConnectionProfile addedProfile = listener.addedProfile;
-		ProfileManager.getInstance().removeProfileListener( listener);
-		
-		return addedProfile.getName();
-	}
-
-	private static class LocalProfileListener implements IProfileListener {
-		IConnectionProfile addedProfile;
-		
-		public void profileAdded( IConnectionProfile profile) {
-			addedProfile = profile;
-		}
-	
-		public void profileChanged( IConnectionProfile profile) {
-			// do nothing
-		}
-	
-		public void profileDeleted( IConnectionProfile profile) {
-			// do nothing
-		}
-	}
-		  
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/.classpath b/jpa/plugins/org.eclipse.jpt.db/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.db/.cvsignore b/jpa/plugins/org.eclipse.jpt.db/.cvsignore
deleted file mode 100644
index e043cc4..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
diff --git a/jpa/plugins/org.eclipse.jpt.db/.project b/jpa/plugins/org.eclipse.jpt.db/.project
deleted file mode 100644
index 5675a48..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.db</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 797ea02..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:29 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 929d545..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:59:18 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.db/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.db/META-INF/MANIFEST.MF
deleted file mode 100644
index e1926db..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.db
-Bundle-Version: 1.0.1.qualifier
-Bundle-Activator: org.eclipse.jpt.db.internal.JptDbPlugin
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jpt.db.internal
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.datatools.sqltools.editor.core,
- org.eclipse.jpt.utility
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.db/about.html b/jpa/plugins/org.eclipse.jpt.db/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>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>
diff --git a/jpa/plugins/org.eclipse.jpt.db/build.properties b/jpa/plugins/org.eclipse.jpt.db/build.properties
deleted file mode 100644
index 974eada..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/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
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.db/component.xml b/jpa/plugins/org.eclipse.jpt.db/component.xml
deleted file mode 100644
index 644c396..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.db"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.db" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db/plugin.properties b/jpa/plugins/org.eclipse.jpt.db/plugin.properties
deleted file mode 100644
index e87a2d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/plugin.properties
+++ /dev/null
@@ -1,25 +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
-###############################################################################
-# ====================================================================
-# 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 API Tools - DB
-providerName = Eclipse.org
-
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Catalog.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Catalog.java
deleted file mode 100644
index 0c4238e..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Catalog.java
+++ /dev/null
@@ -1,108 +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.db.internal;
-
-import java.text.Collator;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.emf.common.util.EList;
-
-/**
- *  Wrap a DTP Catalogs
- */
-final class Catalog extends DTPWrapper implements Comparable<Catalog> {
-	private final Database database;
-	final org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog;
-	@SuppressWarnings("unused")
-	private ICatalogObjectListener catalogListener;		//TODO listen for change
-	
-	// ********** constructors **********
-
-	Catalog( Database database, org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog) {
-		super();
-		this.database = database;
-		this.dtpCatalog = dtpCatalog;
-	}
-
-	// ********** behavior **********
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.database.connectionIsOnline();
-	}
-
-	@SuppressWarnings("unused")
-	private ICatalogObjectListener buildCatalogListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject catalog, final int eventType) {     
-    			if( catalog == Catalog.this.dtpCatalog) {	
-//    				Catalog.this.refresh();
-//    				Catalog.this.database.catalogChanged( Catalog.this, eventType);
-    			}
-    	    }
-        };
-    }
-
-	@Override
-	protected void dispose() {
-//		this.removeCatalogObjectListener(( ICatalogObject) this.dtpCatalog, this.catalogListener);
-	}
-	
-	boolean wraps( org.eclipse.datatools.modelbase.sql.schema.Catalog catalog) {
-		return this.dtpCatalog == catalog;
-	}
-	
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-		return this.dtpCatalog.getName();
-	}
-	
-	boolean isCaseSensitive() {
-		return this.database.isCaseSensitive();
-	}
-
-	Column column( org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.database.column(dtpColumn);
-	}
-
-	// ***** schemata
-
-	synchronized Set<Schema> buildSchemata() {
-		EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.dtpSchemata();
-		
-		Set<Schema> result = new HashSet<Schema>( dtpSchemata.size());
-		for (org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema : dtpSchemata) {
-			result.add( this.wrap(dtpSchema));
-		}
-		return result;
-	}
-
-	@SuppressWarnings("unchecked")
-	private EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata() {
-		return this.dtpCatalog.getSchemas();
-	}
-
-	private Schema wrap( org.eclipse.datatools.modelbase.sql.schema.Schema schema) {
-
-		return new Schema( this.database, schema);
-	}
-
-	// ********** Comparable implementation **********
-
-	public int compareTo( Catalog catalog) {
-		return Collator.getInstance().compare( this.getName(), catalog.getName());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Column.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Column.java
deleted file mode 100644
index 547ba01..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Column.java
+++ /dev/null
@@ -1,162 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
-import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
-import org.eclipse.jpt.utility.internal.JavaType;
-import org.eclipse.jpt.utility.internal.NameTools;
-
-/**
- *  Wrap a DTP Column
- */
-public final class Column extends DTPWrapper implements Comparable<Column> {
-	private final Table table;
-	private final org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn;
-	private ICatalogObjectListener columnListener;
-
-	// TODO Object is the default?
-	private static final JavaType DEFAULT_JAVA_TYPE = new JavaType(java.lang.Object.class);
-
-	private static final JavaType BLOB_JAVA_TYPE = new JavaType(java.sql.Blob.class);
-	private static final JavaType BYTE_ARRAY_JAVA_TYPE = new JavaType(byte[].class);
-
-	private static final JavaType CLOB_JAVA_TYPE = new JavaType(java.sql.Clob.class);
-	private static final JavaType STRING_JAVA_TYPE = new JavaType(java.lang.String.class);
-
-
-	// ********** constructors **********
-
-	Column( Table table, org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		super();
-		this.table = table;
-		this.dtpColumn = dtpColumn;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-
-	private void initialize() {
-		if( this.connectionIsOnline()) {
-			this.columnListener = this.buildColumnListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpColumn, this.columnListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.table.connectionIsOnline();
-	}
-	
-	private ICatalogObjectListener buildColumnListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject column, final int eventType) { 
-//				TODO
-//    			if( column == Column.this.dtpColumn) {	    	    	
-//    				Column.this.table.columnChanged( Column.this, eventType);
-//    			}
-    	    }
-        };
-    }
-	
-	@Override
-	protected void dispose() {
-		
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpColumn, this.columnListener);
-	}
-	
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-		return this.dtpColumn.getName();
-	}
-
-	boolean isCaseSensitive() {
-		return this.table.isCaseSensitive();
-	}
-
-	public String dataTypeName() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType == null) ? null : dataType.getName();
-	}
-
-	public String javaFieldName() {
-		String jName = this.getName();
-		if ( ! this.isCaseSensitive()) {
-			jName = jName.toLowerCase();
-		}
-		return NameTools.convertToJavaIdentifier(jName);
-	}
-
-	public boolean matchesJavaFieldName(String javaFieldName) {
-		return this.isCaseSensitive() ?
-			this.getName().equals(javaFieldName)
-		:
-			this.getName().equalsIgnoreCase(javaFieldName);
-	}
-
-	/**
-	 * Return a Java type declaration that is reasonably
-	 * similar to the column's data type.
-	 */
-	public String javaTypeDeclaration() {
-		return this.javaType().declaration();
-	}
-
-	/**
-	 * Return a Java type that is reasonably
-	 * similar to the column's data type.
-	 */
-	public JavaType javaType() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof PredefinedDataType) ?
-			this.jpaSpecCompliantJavaType(DTPTools.javaTypeFor(((PredefinedDataType) dataType).getPrimitiveType()))
-		:
-			DEFAULT_JAVA_TYPE;
-	}
-
-	/**
-	 * The JDBC spec says JDBC drivers should be able to map BLOBs and CLOBs
-	 * directly, but the JPA spec does not allow them.
-	 */
-	private JavaType jpaSpecCompliantJavaType(JavaType javaType) {
-		if (javaType.equals(BLOB_JAVA_TYPE)) {
-			return BYTE_ARRAY_JAVA_TYPE;
-		}
-		if (javaType.equals(CLOB_JAVA_TYPE)) {
-			return STRING_JAVA_TYPE;
-		}
-		return javaType;
-	}
-
-	public boolean isLob() {
-		DataType dataType = this.dtpColumn.getDataType();
-		return (dataType instanceof PredefinedDataType) ?
-			DTPTools.dataTypeIsLob(((PredefinedDataType) dataType).getPrimitiveType())
-		:
-			false;
-	}
-
-	boolean wraps( org.eclipse.datatools.modelbase.sql.tables.Column column) {
-		return this.dtpColumn == column;
-	}
-
-	// ********** Comparable implementation **********
-	
-	public int compareTo( Column column) {
-		return Collator.getInstance().compare( this.getName(), column.getName());
-	}
-}
-
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Connection.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Connection.java
deleted file mode 100644
index 3e1e736..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Connection.java
+++ /dev/null
@@ -1,66 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-
-
-/**
- *  Connection wrapper base class.
- */
-public abstract class Connection extends DTPWrapper implements Comparable<Connection> {
-
-	// ********** constructors **********
-
-	/**
-	 * Create a wrapper for the given IManagedConnection.
-	 */
-	static Connection createConnection( org.eclipse.datatools.connectivity.IManagedConnection dtpConnection) {
-		return ( dtpConnection == null) ? NullConnection.instance() : new DTPConnectionWrapper( dtpConnection);
-	}
-
-	Connection() {
-		super();
-	}
-
-	// ********** listeners **********
-
-	public abstract void addConnectionListener( ConnectionListener listener);
-
-	public abstract void removeConnectionListener( ConnectionListener listener);
-
-
-	// ********** behavior **********
-
-	abstract void databaseChanged( Database database, int eventType);
-
-	abstract void schemaChanged( Schema schema, Database database, int eventType);
-	
-	abstract void tableChanged( Table table, Schema schema, Database database, int eventType);
-	
-
-	// ********** queries **********
-	
-	public abstract boolean isConnected();
-	
-	public abstract String getFactoryId();
-
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.isConnected();
-	}
-
-	// ********** Comparable implementation **********
-
-	public int compareTo(Connection connection) {
-		return Collator.getInstance().compare( this.getName(), connection.getName());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionListener.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionListener.java
deleted file mode 100644
index d778cbb..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionListener.java
+++ /dev/null
@@ -1,31 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-
-/**
- * ConnectionListener integrate th DTP IManagedConnectionListener listener.
- * This class purpose is to decouple from the DTP listeners by accepting wrappers as parameter.
- * 
- * @see org.eclipse.datatools.connectivity.IManagedConnectionListener
- */
-public interface ConnectionListener {
-    
-    public void opened( Connection connection);
-    public void modified( Connection connection);
-    public boolean okToClose( Connection connection);
-    public void aboutToClose( Connection connection);
-    public void closed( Connection connection);
-
-    public void databaseChanged( Connection connection, Database database);
-    public void schemaChanged( Connection connection, Schema schema);
-    public void tableChanged( Connection connection, Table table);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java
deleted file mode 100644
index a793bb4..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java
+++ /dev/null
@@ -1,259 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-
-/**
- *  ConnectionProfile wrapper base class.
- */
-public abstract class ConnectionProfile extends DTPWrapper implements Comparable<ConnectionProfile> {
-	
-	private Connection connection; // Lazy initialized
-	private Database database; // Lazy initialized
-	private String catalogName;  // Catalog used for this profile
-	
-	private ConnectionListener connectionListener;
-	
-	private ConnectionProfileRepository profileRepository;
-	
-	// ********** constructors **********
-
-	static ConnectionProfile createProfile( ConnectionProfileRepository profileRepository, org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile) {
-		return ( dtpProfile == null) ? NullConnectionProfile.instance() : new DTPConnectionProfileWrapper( profileRepository, dtpProfile);
-	}
-
-	ConnectionProfile( ConnectionProfileRepository profileRepository) {
-		super();
-		this.profileRepository = profileRepository;
-		this.connectionListener = buildConnectionListener();
-		this.catalogName = "";
-	}
-	
-	// ********** behavior **********
-
-	public abstract void connect();
-	
-	public abstract void disconnect();
-	
-	protected abstract Connection buildConnection();
-	
-	protected abstract Database buildDatabase();
-	
-	abstract void databaseChanged( Database db, int eventType);
-	
-	abstract void catalogChanged( Catalog catalog, Database db, int eventType);
-	
-	abstract void schemaChanged( Schema schema, Database db, int eventType);
-	
-	abstract void tableChanged( Table table, Schema schema, Database db, int eventType);
-
-	protected void refreshDatabase() {
-		this.disposeDatabase();
-		this.database = null;
-    }
-    
-	@Override
-	protected void dispose() {
-		this.disengageConnectionListener();
-		
-		this.disposeConnection();
-		this.disposeDatabase();
-	}
-	
-	private void disposeConnection() {
-		if( this.connection != null) {
-			this.getConnection().dispose();
-		}
-	}
-	
-	private void disposeDatabase() {
-		if( this.database != null) {
-			this.getDatabase().dispose();
-		}
-	}
-
-	// ********** queries **********
-	
-	public Connection getConnection() {
-		
-		if( this.connection == null) {
-			this.connection = this.buildConnection();
-			this.engageConnectionListener();
-
-		}
-		return this.connection;
-	}
-
-	public Database getDatabase() {
-		
-		if( this.database == null) {
-			this.database = this.buildDatabase();
-			this.setDefaultCatalogName();
-		}
-		return this.database;
-	}
-	
-	public abstract String getDatabaseName();
-
-	public abstract String getDatabaseProduct();
-	
-	public abstract String getDatabaseVendor();
-	
-	public abstract String getDatabaseVersion();
-	
-	public abstract String getDriverClass();
-	
-	public abstract String getUrl();
-	
-	public abstract String getUserName();
-	
-	public abstract String getUserPassword();
-	
-	public abstract String getDefaultSchema();
-	
-	public abstract String getInstanceId();
-
-	public abstract String getProviderId();
-
-	public abstract String getDriverDefinitionId();
-	
-	public abstract String getDriverJarList();
-	
-	public abstract boolean isConnected();
-
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.isConnected();
-	}
-	
-	abstract boolean wraps( org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile);
-	
-	public boolean isNull() {
-		return true;
-	}
-	
-	ConnectionProfileRepository getProfileRepository() {
-		return this.profileRepository;
-	}
-	
-	public String getCatalogName() {
-		return this.catalogName;
-	}
-	
-	/**
-	 * Set the default catalog name for this profile.
-	 */
-	public void setDefaultCatalogName() {
-		this.setCatalogName( this.database.getDefaultCatalogName());
-	}
-
-	/**
-	 * Can only set the catalog to use for this profile, when the database supports catalogs.
-	 */
-	public void setCatalogName( String catalogName) {
-		if( this.catalogName == catalogName) {
-			return;
-		}
-		if( this.database.supportsCatalogs()) {
-			String name = ( catalogName != null) ? catalogName : this.database.getDefaultCatalogName();
-			
-			Catalog catalog = this.database.catalogNamed( name);
-			if( catalog == null) {
-				throw new NoSuchElementException();
-			}
-			this.catalogName = name;
-			this.database.refresh();
-			this.catalogChanged( catalog, this.database, ICatalogObjectListener.EventTypeEnumeration.ELEMENT_REFRESH);
-		}
-		else {
-			this.catalogName = "";
-			this.database.refresh();
-		}
-	}
-	
-	// ********** listeners **********
-
-	abstract public void addProfileListener( ProfileListener listener);
-
-	abstract public void removeProfileListener( ProfileListener listener);
-
-	abstract public void addConnectionListener( ConnectionListener listener);
-
-	abstract public void removeConnectionListener( ConnectionListener listener);
-
-    private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-
-			public void aboutToClose(Connection c) {
-				// not interested to this event.
-			}
-
-			public void closed(Connection c) {
-				ConnectionProfile.this.refreshDatabase();
-			}
-
-			public void modified(Connection c) {
-				// not interested to this event.
-				return;
-			}
-
-			public boolean okToClose(Connection c) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection c) {
-				ConnectionProfile.this.refreshDatabase();
-			}
-
-			public void databaseChanged(Connection c, final Database db) {
-				// not interested to this event.
-				return;
-			}
-			
-			public void schemaChanged(Connection c, final Schema schema) {
-				// not interested to this event.
-				return;
-			}
-
-			public void tableChanged(Connection c, final Table table) {
-				// not interested to this event.
-				return;
-			}
-		};
-    }
-    
-	protected void disengageConnectionListener() {
-		this.removeConnectionListener();
-	}
-
-	protected void engageConnectionListener() {
-		this.addConnectionListener();
-	}
-
-	private void addConnectionListener() {
-		this.addConnectionListener( this.connectionListener);
-	}
-	
-	private void removeConnectionListener() {
-		this.removeConnectionListener( this.connectionListener);
-	}
-	
-	// ********** Comparable implementation **********
-
-	public int compareTo( ConnectionProfile connectionProfile) {
-		return Collator.getInstance().compare( this.getName(), connectionProfile.getName());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfileRepository.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfileRepository.java
deleted file mode 100644
index 25e7ea7..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfileRepository.java
+++ /dev/null
@@ -1,253 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IProfileListener;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- *  ConnectionProfileRepository is a mediator to the DTP ProfileManager.
- */
-public class ConnectionProfileRepository {
-	private ProfileManager dtpProfileManager;
-	
-	private LocalRepositoryListener repositoryListener;
-	private LocalProfileListener profileListener;
-	private Set<ConnectionProfile> profiles;
-
-	private static ConnectionProfileRepository INSTANCE;
-
-	public static final String DATABASE_CATEGORY_ID = "org.eclipse.datatools.connectivity.db.category"; //$NON-NLS-1$
-
-	/**
-	 * singleton support
-	 */
-	public static ConnectionProfileRepository instance() {
-		if (INSTANCE == null) {
-			INSTANCE = new ConnectionProfileRepository();
-		}
-		return INSTANCE;
-	}
-	
-	// ********** constructors **********
-
-	private ConnectionProfileRepository() {
-		super();
-		this.dtpProfileManager = ProfileManager.getInstance();
-	}
-
-	// ********** behavior **********
-	
-	public void initializeListeners() {
-
-		if( this.repositoryListener == null) {
-			this.repositoryListener = new LocalRepositoryListener();
-			this.dtpProfileManager.addProfileListener( this.repositoryListener);
-		}
-		if( this.profileListener == null) {
-			this.profileListener = new LocalProfileListener();
-			this.dtpProfileManager.addProfileListener( this.profileListener);	
-		}
-	}
-
-	public void disposeListeners() {
-		for( Iterator<ConnectionProfile> stream = this.profiles(); stream.hasNext(); ) {
-			stream.next().dispose();
-		}
-		if( this.repositoryListener != null) {
-			this.dtpProfileManager.removeProfileListener( this.repositoryListener);
-			this.repositoryListener = null;
-		}
-		if( this.profileListener != null) {
-			this.dtpProfileManager.removeProfileListener( this.profileListener);
-			this.profileListener = null;
-		}
-	}
-
-	public Connection getConnectionWithProfileNamed( String name) {
-		return this.profileNamed( name).getConnection();
-	}
-	
-	
-	@Override
-	public String toString() {
-		return this.profiles.toString();
-	}
-	
-	// ********** profiles
-
-	public Iterator<ConnectionProfile> profiles() {
-		return this.getProfiles().iterator();
-	}
-
-	public Iterator<String> profileNames() {
-		return new TransformationIterator<ConnectionProfile, String>( this.profiles()) {
-			@Override
-			protected String transform( ConnectionProfile profile) {
-				 return profile.getName();
-			}
-		};
-	}
-
-	public ConnectionProfile profileNamed( String name) {
-		for( Iterator<ConnectionProfile> stream = this.profiles(); stream.hasNext(); ) {
-			ConnectionProfile profile = stream.next();
-			if( profile.getName().equals( name)) {
-				return profile;
-			}
-		}
-		return NullConnectionProfile.instance();
-	}
-	
-	private Set<ConnectionProfile> getProfiles() {
-
-		if( this.profiles == null) {
-			this.profiles = this.buildProfiles();
-		}
-		return this.profiles;
-	}
-
-	private Set<ConnectionProfile> buildProfiles() {
-		IConnectionProfile[] dtpProfiles = this.dtpProfileManager.getProfiles();
-		Set<ConnectionProfile> result = new HashSet<ConnectionProfile>( dtpProfiles.length);
-		for (IConnectionProfile dtpProfile : dtpProfiles) {
-			result.add( ConnectionProfile.createProfile( this, dtpProfile));
-		}
-		return result;
-	}
-
-	void addProfile( IConnectionProfile dtpProfile) {
-		
-		if( !this.profileExists( dtpProfile)) {
-			ConnectionProfile newProfile = ConnectionProfile.createProfile( ConnectionProfileRepository.this, dtpProfile);
-			this.profiles.add( newProfile);
-		}
-	}
-	
-	void removeProfile( IConnectionProfile dtpProfile) {
-		
-		this.profiles.remove( this.getProfile( dtpProfile));
-	}
-	
-	private boolean profileExists( IConnectionProfile dtpProfile) {
-
-		return ( this.getProfile( dtpProfile) == null) ? false : true;
-	}
-
-	ConnectionProfile getProfile( IConnectionProfile dtpProfile) {
-		
-		for( Iterator<ConnectionProfile> stream = this.profiles(); stream.hasNext(); ) {
-			ConnectionProfile profile = stream.next();
-			if( profile.wraps( dtpProfile)) {
-				return profile;
-			}
-		}
-		return null;
-	}
-
-	// ********** listeners **********
-
-	public void addProfileListener( ProfileListener listener) {
-
-		this.profileListener.addProfileListener( listener);
-	}
-
-	public void removeProfileListener( ProfileListener listener) {
-		
-		this.profileListener.removeProfileListener( listener);
-	}
-
-	@SuppressWarnings("unused")
-	private void addInternalProfileListener( IProfileListener listener) {
-
-		this.dtpProfileManager.addProfileListener( listener);
-	}
-
-	@SuppressWarnings("unused")
-	private void removeInternalProfileListener( IProfileListener listener) {
-		
-		this.dtpProfileManager.removeProfileListener( listener);
-	}
-
-	// ********** member class **********
-	/**
-	 * Listens to ProfileManager events and updates the repository.
-	 */
-	private class LocalRepositoryListener implements IProfileListener {
-
-		LocalRepositoryListener() {
-			super();
-		}
-
-		public void profileAdded( IConnectionProfile connectionProfile) {
-			ConnectionProfileRepository.this.addProfile( connectionProfile);
-		}
-
-		public void profileChanged( IConnectionProfile connectionProfile) {
-			// do nothing
-		}
-
-		public void profileDeleted( IConnectionProfile connectionProfile) {
-			ConnectionProfileRepository.this.removeProfile( connectionProfile);
-		}
-	}
-	
-
-	/**
-	 * This listener translates and forwards IProfileListener events to ProfileListener.
-	 */
-	private class LocalProfileListener implements IProfileListener {
-		private Collection<ProfileListener> listeners = new ArrayList<ProfileListener>();
-
-		LocalProfileListener() {
-			super();
-		}
-
-		void addProfileListener( ProfileListener listener) {
-			this.listeners.add( listener);
-		}
-
-		void removeProfileListener( ProfileListener listener) {
-			this.listeners.remove( listener);
-		}
-		
-		// ********** behavior **********
-		
-		public void profileAdded( IConnectionProfile dtpProfile) {
-			ConnectionProfile profile = getProfile( dtpProfile);
-			for (ProfileListener listener : this.listeners) {
-				listener.profileAdded( profile);
-			}
-		}
-
-		public void profileChanged( IConnectionProfile dtpProfile) {
-			ConnectionProfile profile = getProfile( dtpProfile);
-			for (ProfileListener listener : this.listeners) {
-				listener.profileChanged( profile);
-			}
-		}
-
-		public void profileDeleted( IConnectionProfile dtpProfile) {
-			String profileName = dtpProfile.getName();
-			for (ProfileListener listener : this.listeners) {
-				listener.profileDeleted( profileName);
-			}
-		}
-	}
-}
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileWrapper.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileWrapper.java
deleted file mode 100644
index f7e0802..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileWrapper.java
+++ /dev/null
@@ -1,263 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.util.Properties;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.datatools.connectivity.IManagedConnection;
-import org.eclipse.datatools.connectivity.db.generic.IDBDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.drivers.DriverManager;
-import org.eclipse.datatools.sqltools.core.DatabaseIdentifier;
-import org.eclipse.datatools.sqltools.core.profile.ProfileUtil;
-
-/**
- *  Wrap a DTP ConnectionProfile
- */
-public final class DTPConnectionProfileWrapper extends ConnectionProfile {
-	
-	final private org.eclipse.datatools.connectivity.IConnectionProfile dtpConnectionProfile;
-	
-    public static final String CONNECTION_TYPE = "java.sql.Connection";  //$NON-NLS-1$
-    public static final String CONNECTION_PROFILE_TYPE = "org.eclipse.datatools.connectivity.db.generic.connectionProfile";  //$NON-NLS-1$
-    public static final String DATABASE_PRODUCT_PROPERTY = "org.eclipse.datatools.connectivity.server.version";  //$NON-NLS-1$
-	/**
-	 * This property is used in ConnectionProfile creation.
-	 */
-	public static final String DATABASE_SAVE_PWD_PROP_ID = IDBDriverDefinitionConstants.PROP_PREFIX + "savePWD"; //$NON-NLS-1$
-	/**
-	 * This property is used in ConnectionProfile creation.
-	 */
-	public static final String DRIVER_DEFINITION_PROP_ID = "org.eclipse.datatools.connectivity.driverDefinitionID"; //$NON-NLS-1$
-	/**
-	 * This property is used in DriverDefinition creation.
-	 */
-	public static final String DRIVER_DEFINITION_TYPE_PROP_ID = "org.eclipse.datatools.connectivity.drivers.defnType"; //$NON-NLS-1$
-	/**
-	 * This property is used in DriverDefinition creation.
-	 */
-	public static final String DRIVER_JAR_LIST_PROP_ID = "jarList"; //$NON-NLS-1$
-
-	public static final String POSTGRESQL_VENDOR = "postgres"; //$NON-NLS-1$
-
-	public static final String PUBLIC_SCHEMA = "public"; //$NON-NLS-1$
-
-	// ********** constructors **********
-
-	DTPConnectionProfileWrapper( ConnectionProfileRepository profileRepository, org.eclipse.datatools.connectivity.IConnectionProfile dtpConnectionProfile) {
-		super( profileRepository);
-		this.dtpConnectionProfile = dtpConnectionProfile;
-	}
-	
-	// ********** listeners **********
-
-	@Override
-	public void addProfileListener( ProfileListener listener) {
-		
-		this.getProfileRepository().addProfileListener( listener);
-	}
-
-	@Override
-	public void removeProfileListener( ProfileListener listener) {
-		
-		this.getProfileRepository().removeProfileListener( listener);
-	}
-	
-	@Override
-	public void addConnectionListener( ConnectionListener listener) {
-		
-		this.getConnection().addConnectionListener( listener);
-	}
-
-	@Override
-	public void removeConnectionListener( ConnectionListener listener) {
-
-		this.getConnection().removeConnectionListener( listener);
-	}
-	
-	// ********** behavior **********
-	
-	private IManagedConnection buildDtpManagedConnection( org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile) {
-		return dtpProfile.getManagedConnection( CONNECTION_TYPE);
-	}
-	/**
-	 * Connect using this profile.
-	 */
-	@Override
-	public void connect() {
-		if( !this.dtpConnectionProfile.isConnected()) {
-			
-			IStatus status = this.dtpConnectionProfile.connect();
-			if( !status.isOK()) {
-				if( status.isMultiStatus()) {
-					IStatus[] statusChildren = status.getChildren();
-					throw new RuntimeException( statusChildren[ 0].getMessage(), statusChildren[ 0].getException());
-				}
-				throw new RuntimeException( status.getMessage(), status.getException());
-			}
-		}
-	}
-	
-	@Override
-	public void disconnect() {
-		
-		IStatus status = this.dtpConnectionProfile.disconnect();
-		if( !status.isOK()) {
-			if( status.isMultiStatus()) {
-				IStatus[] statusChildren = status.getChildren();
-				throw new RuntimeException( statusChildren[ 0].getMessage(), statusChildren[ 0].getException());
-			}
-			throw new RuntimeException( status.getMessage(), status.getException());
-		}
-	}
-	
-	@Override
-	void databaseChanged( Database database, int eventType) {
-		this.getConnection().databaseChanged( database, eventType);
-		return;
-	}
-	
-	@Override
-	 void catalogChanged( Catalog catalog, Database database, int eventType) {
-		 //TODO
-//		this.getConnection().catalogChanged( catalog, eventType);
-		 return;
-	}
-	
-	@Override
-	void schemaChanged( Schema schema, Database database, int eventType) {
-		this.getConnection().schemaChanged( schema, database, eventType);
-	}
-		
-	@Override
-	void tableChanged( Table table, Schema schema, Database database, int eventType) {
-		this.getConnection().tableChanged( table, schema, database, eventType);
-	}
-		
-	// ********** queries **********
-
-	@Override
-	public boolean isConnected() {
-
-		return this.getConnection().isConnected();
-	}
-	
-	@Override
-	public boolean isNull() {
-		return false;
-	}
-	
-	@Override
-	public String getName() {
-
-		return this.dtpConnectionProfile.getName();
-	}
-	
-	@Override
-	public String getDatabaseName() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.DATABASE_NAME_PROP_ID);
-	}
-	
-	@Override
-	public String getDatabaseProduct() {
-		return this.getProperties().getProperty( DATABASE_PRODUCT_PROPERTY);
-	}
-	
-	@Override
-	public String getDatabaseVendor() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID);
-	}
-	
-	@Override
-	public String getDatabaseVersion() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.DATABASE_VERSION_PROP_ID);
-	}
-
-	@Override
-	public String getUserName() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.USERNAME_PROP_ID);
-	}
-
-	@Override
-	public String getUserPassword() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.PASSWORD_PROP_ID);
-	}
-
-	@Override
-	public String getDefaultSchema() {
-		if( this.getDatabase().getVendor().equalsIgnoreCase( POSTGRESQL_VENDOR)) {
-			return PUBLIC_SCHEMA;
-		}
-		return this.getUserName();
-	}
-
-	@Override
-	public String getDriverClass() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID);
-	}
-
-	@Override
-	public String getUrl() {
-		return this.getProperties().getProperty( IDBDriverDefinitionConstants.URL_PROP_ID);
-	}
-	
-	@Override
-	public String getInstanceId() {
-		return this.dtpConnectionProfile.getInstanceID();
-	}
-
-	@Override
-	public String getProviderId() {
-		return this.dtpConnectionProfile.getProviderId();
-	}
-
-	@Override
-	public String getDriverDefinitionId() {
-		return this.getProperties().getProperty( DTPConnectionProfileWrapper.DRIVER_DEFINITION_PROP_ID);
-	}
-
-	@Override
-	public String getDriverJarList() {
-		return DriverManager.getInstance().getDriverInstanceByID( this.getDriverDefinitionId()).getJarList();
-	}
-	
-	private Properties getProperties() {
-		return this.dtpConnectionProfile.getBaseProperties();
-	}
-	
-	@Override
-	protected Connection buildConnection() {
-
-		Connection connection = Connection.createConnection( this.buildDtpManagedConnection( this.dtpConnectionProfile));  //$NON-NLS-1$
-		return connection;
-	}
-
-	@Override
-	protected Database buildDatabase() {
-		
-		org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase;
-		if( this.isConnected()) {
-			//TODO see DTP bug 202306
-			//pass connect=true in to ProfileUtil.getDatabase()
-			//there is a bug mentioned in a comment: 
-            //     "during the profile connected event notification, 
-            //     IManagedConnection is connected while IConnectionProfile is not"
-			//so some hackery here for their hackery
-			dtpDatabase = ProfileUtil.getDatabase( new DatabaseIdentifier( this.getName(), this.getDatabaseName()), true);
-			return Database.createDatabase( this, dtpDatabase);
-		}
-		return NullDatabase.instance();
-	}
-	
-	@Override
-	boolean wraps( org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile) {
-		return this.dtpConnectionProfile == dtpProfile;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionWrapper.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionWrapper.java
deleted file mode 100644
index 5440b35..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionWrapper.java
+++ /dev/null
@@ -1,170 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.datatools.connectivity.ConnectEvent;
-import org.eclipse.datatools.connectivity.IManagedConnectionListener;
-
-/**
- *  Wrap a DTP Connection
- */
-public final class DTPConnectionWrapper extends Connection {
-	
-	final private org.eclipse.datatools.connectivity.IManagedConnection dtpConnection;
-	private LocalConnectionListener connectionListener;
-	
-	// ********** constructors **********
-
-	DTPConnectionWrapper( org.eclipse.datatools.connectivity.IManagedConnection dtpConnection) {
-		super();
-		this.dtpConnection = dtpConnection;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-	
-	protected void initialize() {
-		this.connectionListener = new LocalConnectionListener();
-		this.dtpConnection.addConnectionListener( this.connectionListener);
-	}
-	
-	@Override
-	protected void dispose() {
-		this.dtpConnection.removeConnectionListener( this.connectionListener);
-	}
-
-	@Override
-	public String getName() {
-
-		return this.dtpConnection.getConnection().getConnectionProfile().getName();
-	}
-	
-	@Override
-	public boolean isConnected() {
-
-		return this.dtpConnection.isConnected();
-	}
-
-	@Override
-	public String getFactoryId() {
-		
-		return this.dtpConnection.getFactoryID();
-	}
-
-	@Override
-	void databaseChanged( Database database, int eventType) {
-		
-		this.connectionListener.databaseChanged( database, eventType);
-	}
-	
-	@Override
-	void schemaChanged( Schema schema, Database database, int eventType) {
-		
-		this.connectionListener.schemaChanged( schema, database, eventType);
-	}
-		
-	@Override
-	void tableChanged( Table table, Schema schema, Database database, int eventType) {
-		
-		this.connectionListener.tableChanged( table, schema, database, eventType);
-	}
-		
-	// ********** listeners **********
-
-	@Override
-	public void addConnectionListener( ConnectionListener listener) {
-		// hook up the specified listener to our intermediate listeners
-		this.connectionListener.addConnectionListener( listener);
-	}
-
-	@Override
-	public void removeConnectionListener( ConnectionListener listener) {
-
-		this.connectionListener.removeConnectionListener( listener);
-	}
-	
-	// ********** member classes **********
-
-	/**
-	 * This listener translates and forwards IManagedConnectionListener events to ConnectionListeners.
-	 */
-	private class LocalConnectionListener implements IManagedConnectionListener {
-		private Collection<ConnectionListener> listeners = new ArrayList<ConnectionListener>();
-
-		LocalConnectionListener() {
-			super();
-		}
-
-		void addConnectionListener( ConnectionListener listener) {
-			this.listeners.add( listener);
-		}
-
-		void removeConnectionListener( ConnectionListener listener) {
-			this.listeners.remove( listener);
-		}
-
-		// ********** behavior **********
-		
-		public void aboutToClose( ConnectEvent event) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.aboutToClose( DTPConnectionWrapper.this);
-			}
-		}
-
-		public void closed( ConnectEvent event) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.closed( DTPConnectionWrapper.this);
-			}
-		}
-
-		public void modified( ConnectEvent event) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.modified( DTPConnectionWrapper.this);
-			}
-		}
-
-		public boolean okToClose( ConnectEvent event) {
-			for (ConnectionListener listener : this.listeners) {
-				if( !listener.okToClose( DTPConnectionWrapper.this)) {
-					return false;
-				}
-			}
-			return true;
-		}
-		
-		public void opened( ConnectEvent event) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.opened( DTPConnectionWrapper.this);
-			}
-		}
-		
-		void databaseChanged( Database database, int eventType) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.databaseChanged( DTPConnectionWrapper.this, database);
-			}
-		}
-		
-		void schemaChanged( Schema schema, Database database, int eventType) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.schemaChanged( DTPConnectionWrapper.this, schema);
-			}
-		}
-		
-		void tableChanged( Table table, Schema schema, Database database, int eventType) {
-			for (ConnectionListener listener : this.listeners) {
-				listener.tableChanged( DTPConnectionWrapper.this, table);
-			}
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java
deleted file mode 100644
index d8b1dad..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java
+++ /dev/null
@@ -1,229 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.emf.common.util.EList;
-
-/**
- *  Wrap a DTP Database
- */
-public final class DTPDatabaseWrapper extends Database {
-	
-	final ConnectionProfile profile;
-	final org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase;
-	private ICatalogObjectListener databaseListener;
-	
-	private Set<Catalog> catalogs;  // lazy-initialized
-	private Set<Schema> schemata;  // lazy-initialized
-
-	DTPDatabaseWrapper( ConnectionProfile profile, org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase) {
-		super();
-		this.dtpDatabase = dtpDatabase;
-		this.profile = profile;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-
-	private void initialize() {
-		
-		if( this.connectionIsOnline()) {
-			this.databaseListener = this.buildDatabaseListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpDatabase, this.databaseListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.profile.isConnected();
-	}
-	
-	private ICatalogObjectListener buildDatabaseListener() {
-	   return new ICatalogObjectListener() {
-		    public void notifyChanged( final ICatalogObject database, final int eventType) {     
-				if( database == DTPDatabaseWrapper.this.dtpDatabase) {	
-					DTPDatabaseWrapper.this.refresh();
-					DTPDatabaseWrapper.this.profile.databaseChanged( DTPDatabaseWrapper.this, eventType);
-				}
-		    }
-	    };
-	}
-
-	@Override
-	void refresh() {
-		this.disposeSchemata();
-		this.disposeCatalogs();
-		
-		this.schemata = null;
-		this.catalogs = null;
-	}
-	
-	@Override
-	void catalogChanged( Catalog catalog, int eventType) {
-		this.profile.catalogChanged( catalog, this, eventType);
-		return;
-	}	
-		
-	@Override
-	void schemaChanged( Schema schema, int eventType) {
-		this.profile.schemaChanged( schema, this, eventType);
-		return;
-	}
-
-	@Override
-	void tableChanged( Table table,  Schema schema, int eventType) {
-		this.profile.tableChanged( table, schema, this, eventType);
-		return;
-	}
-	
-	@Override
-	protected void dispose() {
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpDatabase, this.databaseListener);
-
-		this.disposeSchemata();
-		this.disposeCatalogs();
-	}
-
-	private void disposeSchemata() {
-		if( this.schemata != null) {
-			for( Iterator<Schema> stream = this.schemata(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-	
-	private void disposeCatalogs() {
-		if( this.catalogs != null) {
-			for( Iterator<Catalog> stream = this.catalogs(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-	
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-
-		return this.dtpDatabase.getName();
-	}
-
-	@Override
-	public String getVendor() {
-		
-		return this.dtpDatabase.getVendor();
-	}
-	
-	@Override
-	public String getVersion() {
-		
-		return this.dtpDatabase.getVersion();
-	}
-	
-	
-	// ***** schemata
-
-	@Override
-	synchronized Set<Schema> getSchemata() {
-		if( this.schemata == null) {
-			this.schemata = this.buildSchemata();
-		}
-		return this.schemata;
-	}
-
-	@SuppressWarnings("unchecked")
-	private EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata() {
-		return this.dtpDatabase.getSchemas();
-	}
-
-	private Set<Schema> buildSchemata() {
-		Set<Schema> result;
-		if( this.supportsCatalogs()) {
-			result = this.getSchemataForCatalogNamed( this.profile.getCatalogName());
-		}
-		else {
-			EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.dtpSchemata();
-			result = new HashSet<Schema>( dtpSchemata.size());
-			for (org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema : dtpSchemata) {
-				result.add( this.wrap(dtpSchema));
-			}
-		}
-		return result;
-	}
-	
-	// ***** catalogs
-
-	@Override
-	public boolean supportsCatalogs() {
-		EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.dtpSchemata();
-		return ( dtpSchemata == null || dtpSchemata.size() == 0);
-	}
-
-	@SuppressWarnings("unchecked")
-	private EList<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs() {
-		return this.dtpDatabase.getCatalogs();
-	}
-
-	@Override
-	public String getDefaultCatalogName() {
-		
-		if( !this.supportsCatalogs()) {	// this database doesn't support catalogs
-			return "";
-		}
-		String userName = this.profile.getUserName();
-		for (org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog : this.dtpCatalogs()) {
-			if( dtpCatalog.getName().length() == 0) {	// special catalog that contains all schemata
-				return "";
-			}
-			else if( dtpCatalog.getName().equals( userName)) {
-				return userName;		// returns user name as default catalog
-			}
-			else if( dtpCatalog.getName().equals( this.getName())) {
-				return this.getName();		 // special catalog with same name as DB (PostgreSQL)
-			}
-		}
-		throw new NoSuchElementException();
-	}
-	
-	@Override
-	synchronized Set<Catalog> getCatalogs() {
-		if( this.catalogs == null) {
-			this.catalogs = this.buildCatalogs();
-		}
-		return this.catalogs;
-	}
-
-	private Set<Catalog> buildCatalogs() {
-		
-		EList<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.dtpCatalogs();
-		if( dtpCatalogs == null) {
-			return Collections.emptySet();
-		}
-		Set<Catalog> result = new HashSet<Catalog>( dtpCatalogs.size());
-		for (org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog : dtpCatalogs) {
-			result.add( this.wrap(dtpCatalog));
-		}
-		return result;
-	}
-	
-	private Set<Schema> getSchemataForCatalogNamed( String catalogName) {
-
-		Catalog catalog = this.catalogNamed( catalogName);
-		return ( catalog != null) ? catalog.buildSchemata() : Collections.<Schema>emptySet();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPTools.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPTools.java
deleted file mode 100644
index 1c46efd..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPTools.java
+++ /dev/null
@@ -1,212 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.sql.Types;
-import java.util.HashMap;
-import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
-import org.eclipse.jpt.utility.internal.JDBCTools;
-import org.eclipse.jpt.utility.internal.JDBCType;
-import org.eclipse.jpt.utility.internal.JavaType;
-
-/**
- * Helper methods for dealing with Eclipse DTP.
- */
-public final class DTPTools {
-
-	/**
-	 * Return the JDBC type corresponding to the specified Primitive type.
-	 */
-	public static JDBCType jdbcTypeForPrimitiveTypeNamed(String primitiveTypeName) {
-		PrimitiveToJDBCTypeMapping mapping = primitiveToJDBCTypeMapping(primitiveTypeName);
-		return (mapping == null) ? DEFAULT_JDBC_TYPE : mapping.getJDBCType();
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified Primitive type.
-	 */
-	public static JDBCType jdbcTypeFor(PrimitiveType primitiveType) {
-		return jdbcTypeForPrimitiveTypeNamed(primitiveType.getName());
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified Primitive type.
-	 */
-	public static JDBCType jdbcTypeForPrimitiveTypeCode(int primitiveTypeCode) {
-		return jdbcTypeFor(PrimitiveType.get(primitiveTypeCode));
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified Primitive type.
-	 */
-	public static JavaType javaTypeForPrimitiveTypeNamed(String primitiveTypeName) {
-		return JDBCTools.javaTypeFor(jdbcTypeForPrimitiveTypeNamed(primitiveTypeName));
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified Primitive type.
-	 */
-	public static JavaType javaTypeFor(PrimitiveType primitiveType) {
-		return JDBCTools.javaTypeFor(jdbcTypeFor(primitiveType));
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified Primitive type.
-	 */
-	public static JavaType javaTypeForPrimitiveTypeCode(int primitiveTypeCode) {
-		return JDBCTools.javaTypeFor(jdbcTypeForPrimitiveTypeCode(primitiveTypeCode));
-	}
-
-	/**
-	 * Return whether the specified Primitive type is a LOB
-	 * (i.e. a BLOB, CLOB, or NCLOB).
-	 */
-	public static boolean dataTypeIsLob(PrimitiveType primitiveType) {
-		return (primitiveType == PrimitiveType.BINARY_LARGE_OBJECT_LITERAL)
-				|| (primitiveType == PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL)
-				|| (primitiveType == PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL);
-	}
-
-
-	// ********** internal stuff **********
-
-
-	// ********** DTP Primitive => JDBC **********
-
-	/**
-	 * Primitive => JDBC type mappings, keyed by Primitive type name (e.g. "CHARACTER_VARYING")
-	 */
-	private static HashMap<String, PrimitiveToJDBCTypeMapping> PRIMITIVE_TO_JDBC_TYPE_MAPPINGS;  // pseudo 'final' - lazy-initialized
-	private static final JDBCType DEFAULT_JDBC_TYPE = JDBCType.type(Types.VARCHAR);  // TODO VARCHAR is the default?
-
-
-	private static PrimitiveToJDBCTypeMapping primitiveToJDBCTypeMapping(String primitiveTypeName) {
-		return primitiveToJDBCTypeMappings().get(primitiveTypeName);
-	}
-
-	private static synchronized HashMap<String, PrimitiveToJDBCTypeMapping> primitiveToJDBCTypeMappings() {
-		if (PRIMITIVE_TO_JDBC_TYPE_MAPPINGS == null) {
-			PRIMITIVE_TO_JDBC_TYPE_MAPPINGS = buildPrimitiveToJDBCTypeMappings();
-		}
-		return PRIMITIVE_TO_JDBC_TYPE_MAPPINGS;
-	}
-
-	private static HashMap<String, PrimitiveToJDBCTypeMapping> buildPrimitiveToJDBCTypeMappings() {
-		HashMap<String, PrimitiveToJDBCTypeMapping> mappings = new HashMap<String, PrimitiveToJDBCTypeMapping>();
-		addPrimitiveToJDBCTypeMappingsTo(mappings);
-		return mappings;
-	}
-
-	/**
-	 * hard code the default mappings from the DTP primitive types to the
-	 * appropriate JDBC types;
-	 * pretty much a straight one-to-one mapping based on similar names;
-	 * TODO some JDBC types are missing: INTERVAL, XML_TYPE
-	 */
-	private static void addPrimitiveToJDBCTypeMappingsTo(HashMap<String, PrimitiveToJDBCTypeMapping> mappings) {
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.BIGINT_LITERAL, Types.BIGINT, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.BINARY_LARGE_OBJECT_LITERAL, Types.BLOB, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.BINARY_LITERAL, Types.BINARY, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.BINARY_VARYING_LITERAL, Types.VARBINARY, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.BOOLEAN_LITERAL, Types.BOOLEAN, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL, Types.CLOB, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.CHARACTER_LITERAL, Types.CHAR, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.CHARACTER_VARYING_LITERAL, Types.VARCHAR, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.DATALINK_LITERAL, Types.DATALINK, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.DATE_LITERAL, Types.DATE, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.DECIMAL_LITERAL, Types.DECIMAL, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.DOUBLE_PRECISION_LITERAL, Types.DOUBLE, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.FLOAT_LITERAL, Types.FLOAT, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.INTEGER_LITERAL, Types.INTEGER, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.INTERVAL_LITERAL, Types.OTHER, mappings);  // ???
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL, Types.CLOB, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.NATIONAL_CHARACTER_LITERAL, Types.CHAR, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.NATIONAL_CHARACTER_VARYING_LITERAL, Types.VARCHAR, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.NUMERIC_LITERAL, Types.NUMERIC, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.REAL_LITERAL, Types.REAL, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.SMALLINT_LITERAL, Types.SMALLINT, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.TIME_LITERAL, Types.TIME, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.TIMESTAMP_LITERAL, Types.TIMESTAMP, mappings);
-		addPrimitiveToJDBCTypeMappingTo(PrimitiveType.XML_TYPE_LITERAL, Types.OTHER, mappings);  // ???
-	}
-
-	private static void addPrimitiveToJDBCTypeMappingTo(PrimitiveType primitiveType, int jdbcTypeCode, HashMap<String, PrimitiveToJDBCTypeMapping> mappings) {
-		// check for duplicates
-		Object prev = mappings.put(primitiveType.getName(), buildPrimitiveToJDBCTypeMapping(primitiveType, jdbcTypeCode));
-		if (prev != null) {
-			throw new IllegalArgumentException("duplicate Java class: " + ((PrimitiveToJDBCTypeMapping) prev).getPrimitiveType().getName());
-		}
-	}
-
-	private static PrimitiveToJDBCTypeMapping buildPrimitiveToJDBCTypeMapping(PrimitiveType primitiveType, int jdbcTypeCode) {
-		return new PrimitiveToJDBCTypeMapping(primitiveType, JDBCType.type(jdbcTypeCode));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private DTPTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * Primitive => JDBC
-	 */
-	private static class PrimitiveToJDBCTypeMapping {
-		private final PrimitiveType primitiveType;
-		private final JDBCType jdbcType;
-
-		PrimitiveToJDBCTypeMapping(PrimitiveType primitiveType, JDBCType jdbcType) {
-			super();
-			this.primitiveType = primitiveType;
-			this.jdbcType = jdbcType;
-		}
-
-		public PrimitiveType getPrimitiveType() {
-			return this.primitiveType;
-		}
-
-		public JDBCType getJDBCType() {
-			return this.jdbcType;
-		}
-
-		public boolean maps(PrimitiveType pt) {
-			return this.primitiveType.equals(pt);
-		}
-
-		public boolean maps(String primitiveTypeName) {
-			return this.primitiveType.getName().equals(primitiveTypeName);
-		}
-
-		public boolean maps(int primitiveTypeCode) {
-			return this.primitiveType.getValue() == primitiveTypeCode;
-		}
-
-		@Override
-		public String toString() {
-			StringBuffer sb = new StringBuffer();
-			this.appendTo(sb);
-			return sb.toString();
-		}
-
-		public void appendTo(StringBuffer sb) {
-			sb.append(this.primitiveType.getName());
-			sb.append(" => ");
-			this.jdbcType.appendTo(sb);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPWrapper.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPWrapper.java
deleted file mode 100644
index 11e9808..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPWrapper.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- *  DataTools Wrapper base class.
- */
-public abstract class DTPWrapper {
-	
-	DTPWrapper() {
-		super();
-	}
-	
-	// ********** behavior **********
-	
-	protected abstract void dispose();
-	
-	protected abstract boolean connectionIsOnline();
-
-	protected void addCatalogObjectListener( ICatalogObject catalogObject, ICatalogObjectListener catalogObjectListener) {
-		if( this.connectionIsOnline()) {
-			RefreshManager.getInstance().AddListener( catalogObject, catalogObjectListener);
-		}
-	}
-
-	protected void removeCatalogObjectListener( ICatalogObject catalogObject, ICatalogObjectListener catalogObjectListener) {
-		if( this.connectionIsOnline()) {
-	        RefreshManager.getInstance().removeListener( catalogObject, catalogObjectListener);
-		}
-	}
-
-	// ********** queries **********
-
-	public abstract String getName();
-	
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor( this, this.getName());
-	}	
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Database.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Database.java
deleted file mode 100644
index ab7f565..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Database.java
+++ /dev/null
@@ -1,229 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- *  Database wrapper base class.
- */
-public abstract class Database extends DTPWrapper implements Comparable<Database> {
-	
-	private boolean caseSensitive = false;  // TODO allow user to configure
-
-	// ********** constructors **********
-
-	static Database createDatabase( ConnectionProfile profile, org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase) {
-		return ( dtpDatabase == null) ? NullDatabase.instance() : new DTPDatabaseWrapper( profile, dtpDatabase);
-	}
-
-	Database() {
-		super();
-	}
-
-	// ********** behavior **********
-
-	abstract void catalogChanged( Catalog catalog, int eventType);
-
-	abstract void schemaChanged( Schema schema, int eventType);
-
-	abstract void tableChanged( Table table,  Schema schema, int eventType);
-	
-	abstract void refresh();
-	
-	protected Schema wrap( org.eclipse.datatools.modelbase.sql.schema.Schema schema) {
-		return new Schema( this, schema);
-	}
-	
-	protected Catalog wrap( org.eclipse.datatools.modelbase.sql.schema.Catalog catalog) {
-		return new Catalog( this, catalog);
-	}
-	
-	// ********** queries **********
-
-	public abstract String getVendor();
-	
-	public abstract String getVersion();
-
-	/**
-	 * return the column for the specified dtp column
-	 */
-	Column column( org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.table( dtpColumn.getTable()).column( dtpColumn);
-	}
-	
-	/**
-	 * return the table for the specified dtp table
-	 */
-	Table table( org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		return this.schema( dtpTable.getSchema()).table( dtpTable);
-	}
-
-	// ********** Comparable implementation **********
-
-	public int compareTo( Database database) {
-		return Collator.getInstance().compare( this.getName(), database.getName());
-	}
-
-	// ***** caseSensitive
-
-	public boolean isCaseSensitive() {
-		return this.caseSensitive;
-	}
-
-	public void setCaseSensitive( boolean caseSensitive) {
-		this.caseSensitive = caseSensitive;
-	}
-
-	// ***** catalogs
-
-	abstract Set<Catalog> getCatalogs();
-
-	/**
-	 * Returns true if this database accepts catalogs.
-	 */
-	public abstract boolean supportsCatalogs();
-	
-	/**
-	 * Returns the catalog to use by default.
-	 */
-	public abstract String getDefaultCatalogName();
-	
-	public Iterator<Catalog> catalogs() {
-		return this.getCatalogs().iterator();
-	}
-
-	public int catalogSize() {
-		return this.getCatalogs().size();
-	}
-
-	public Iterator<String> catalogNames() {
-		return new TransformationIterator<Catalog, String>( this.catalogs()) {
-			@Override
-			protected String transform( Catalog catalog) {
-				 return catalog.getName();
-			}
-		};
-	}
-
-	public boolean containsCatalogNamed( String name) {
-		return this.catalogNamed( name) != null;
-	}
-
-	public Catalog catalogNamed( String name) {
-		return this.isCaseSensitive() ? this.catalogNamedInternal( name) : this.catalogNamedIgnoreCase( name);
-	}
-	
-	private Catalog catalogNamedInternal( String name) {
-		for ( Iterator<Catalog> stream = this.catalogs(); stream.hasNext(); ) {
-			Catalog catalog = stream.next();
-			if ( catalog.getName().equals( name)) {
-				return catalog;
-			}
-		}
-		return null;
-	}
-	
-	private Catalog catalogNamedIgnoreCase( String name) {
-		for ( Iterator<Catalog> stream = this.catalogs(); stream.hasNext(); ) {
-			Catalog catalog = stream.next();
-			if ( StringTools.stringsAreEqualIgnoreCase( catalog.getName(), name)) {
-				return catalog;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * return the catalog for the specified dtp catalog
-	 */
-	Catalog catalog( org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog) {
-		for ( Iterator<Catalog> stream = this.catalogs(); stream.hasNext(); ) {
-			Catalog catalog = stream.next();
-			if (catalog.wraps( dtpCatalog)) {
-				return catalog;
-			}
-		}
-		throw new IllegalArgumentException( "invalid dtp catalog: " + dtpCatalog);
-	}
-
-
-	// ***** schemata
-
-	abstract Set<Schema> getSchemata();
-
-	public Iterator<Schema> schemata() {
-		return this.getSchemata().iterator();
-	}
-
-	public int schemataSize() {
-		return this.getSchemata().size();
-	}
-
-	public boolean schemataContains( Column column) {
-		return this.getSchemata().contains( column);
-	}
-
-	public Iterator<String> schemaNames() {
-		return new TransformationIterator<Schema, String>( this.schemata()) {
-			@Override
-			protected String transform( Schema schema) {
-				 return schema.getName();
-			}
-		};
-	}
-
-	public boolean containsSchemaNamed( String name) {
-		return this.schemaNamed( name) != null;
-	}
-
-	public Schema schemaNamed( String name) {
-		return this.isCaseSensitive() ? this.schemaNamedInternal( name) : this.schemaNamedIgnoreCase( name);
-	}
-	
-	private Schema schemaNamedInternal( String name) {
-		for ( Iterator<Schema> stream = this.schemata(); stream.hasNext(); ) {
-			Schema schema = stream.next();
-			if ( schema.getName().equals( name)) {
-				return schema;
-			}
-		}
-		return null;
-	}
-	
-	private Schema schemaNamedIgnoreCase( String name) {
-		for ( Iterator<Schema> stream = this.schemata(); stream.hasNext(); ) {
-			Schema schema = stream.next();
-			if ( StringTools.stringsAreEqualIgnoreCase( schema.getName(), name)) {
-				return schema;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * return the schema for the specified dtp schema
-	 */
-	Schema schema( org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		for ( Iterator<Schema> stream = this.schemata(); stream.hasNext(); ) {
-			Schema schema = stream.next();
-			if ( schema.wraps( dtpSchema)) {
-				return schema;
-			}
-		}
-		throw new IllegalArgumentException( "invalid dtp schema: " + dtpSchema);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ForeignKey.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ForeignKey.java
deleted file mode 100644
index 6fc0501..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ForeignKey.java
+++ /dev/null
@@ -1,337 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- *  Wrap a DTP ForeignKey
- */
-public final class ForeignKey extends DTPWrapper implements Comparable<ForeignKey> {
-	private final Table baseTable;
-	private final org.eclipse.datatools.modelbase.sql.constraints.ForeignKey dtpForeignKey;
-	private ICatalogObjectListener foreignKeyListener;
-
-	private Table referencedTable;  // lazy-initialized
-	private Set<ColumnPair> columnPairs;  // lazy-initialized
-	private String defaultEntityFieldName;  // lazy-initialized
-	private boolean defaultEntityFieldNameCalculated = false;
-
-
-	// ********** constructors **********
-
-	ForeignKey(Table baseTable, org.eclipse.datatools.modelbase.sql.constraints.ForeignKey dtpForeignKey) {
-		super();
-		this.baseTable = baseTable;
-		this.dtpForeignKey = dtpForeignKey;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-
-	private void initialize() {
-		if( this.connectionIsOnline()) {
-			this.foreignKeyListener = this.buildForeignKeyListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpForeignKey, this.foreignKeyListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.baseTable.connectionIsOnline();
-	}
-	
-	private ICatalogObjectListener buildForeignKeyListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject foreignKey, final int eventType) { 
-//				TODO
-//    			if( foreignKey == ForeignKey.this.dtpForeignKey) {	    	    	
-//    				ForeignKey.this.baseTable.foreignKeyChanged( ForeignKey.this, eventType);
-//    			}
-    	    }
-        };
-    }
-
-	@Override
-	protected void dispose() {
-		
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpForeignKey, this.foreignKeyListener);
-	}
-
-	// ********** queries **********
-
-	public Table getBaseTable() {
-		return this.baseTable;
-	}
-
-	@Override
-	public String getName() {
-		return this.dtpForeignKey.getName();
-	}
-
-	boolean isCaseSensitive() {
-		return this.baseTable.isCaseSensitive();
-	}
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.constraints.ForeignKey foreignKey) {
-		return this.dtpForeignKey == foreignKey;
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getName() + ": " + this.getColumnPairs());
-	}
-
-	public Table getReferencedTable() {
-		if (this.referencedTable == null) {
-			this.referencedTable = this.baseTable.table(this.dtpForeignKey.getUniqueConstraint().getBaseTable());
-		}
-		return this.referencedTable;
-	}
-
-	/**
-	 * return the foreign key's "base" columns
-	 */
-	public Iterator<Column> baseColumns() {
-		return new TransformationIterator<ColumnPair, Column>(this.columnPairs()) {
-			@Override
-			protected Column transform(ColumnPair pair) {
-				return pair.getBaseColumn();
-			}
-		};
-	}
-
-	/**
-	 * return the foreign key's "base" columns that are not part of
-	 * the base table's primary key
-	 */
-	public Iterator<Column> nonPrimaryKeyBaseColumns() {
-		return new FilteringIterator<Column>(this.baseColumns()) {
-			@Override
-			protected boolean accept(Object o) {
-				return ! ForeignKey.this.getBaseTable().primaryKeyColumnsContains((Column) o);
-			}
-		};
-	}
-
-	/**
-	 * return the foreign key's "referenced" columns
-	 */
-	public Iterator<Column> referencedColumns() {
-		return new TransformationIterator<ColumnPair, Column>(this.columnPairs()) {
-			@Override
-			protected Column transform(ColumnPair columnPair) {
-				return columnPair.getReferencedColumn();
-			}
-		};
-	}
-
-	public String javaFieldName() {
-		String fieldName = this.getDefaultEntityFieldName();
-		return (fieldName == null) ?
-			this.nonDefaultEntityFieldName()
-		:
-			fieldName;
-	}
-
-	public boolean matchesJavaFieldName(String javaFieldName) {
-		return this.isCaseSensitive() ?
-			javaFieldName.equals(this.getDefaultEntityFieldName())
-		:
-			javaFieldName.equalsIgnoreCase(this.getDefaultEntityFieldName());
-	}
-
-	public boolean isDefaultFor(String javaFieldName) {
-		if (this.columnPairsSize() != 1) {
-			return false;
-		}
-
-		if (this.getReferencedTable().primaryKeyColumnsSize() != 1) {
-			return false;
-		}
-
-		ColumnPair columnPair = this.columnPairs().next();
-		Column pkColumn = this.getReferencedTable().primaryKeyColumns().next();
-		if (columnPair.getReferencedColumn() != pkColumn) {
-			return false;
-		}
-
-		return columnPair.getBaseColumn().matchesJavaFieldName(javaFieldName + "_" + pkColumn.getName());
-	}
-
-
-	// ***** column pairs
-
-	private synchronized Set<ColumnPair> getColumnPairs() {
-		if (this.columnPairs == null) {
-			this.columnPairs = this.buildColumnPairs();
-		}
-		return this.columnPairs;
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> dtpBaseColumns() {
-		return this.dtpForeignKey.getMembers();
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<org.eclipse.datatools.modelbase.sql.tables.Column> dtpRefColumns() {
-		return this.dtpForeignKey.getUniqueConstraint().getMembers();
-	}
-
-	private Set<ColumnPair> buildColumnPairs() {
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> baseColumns = this.dtpBaseColumns();
-		int size = baseColumns.size();
-		List<org.eclipse.datatools.modelbase.sql.tables.Column> refColumns = this.dtpRefColumns();
-		if (refColumns.size() != size) {
-			throw new IllegalStateException("mismatched sizes: " + size + " vs. " + refColumns.size());
-		}
-		Set<ColumnPair> result = new HashSet<ColumnPair>(baseColumns.size());
-		for (int i = baseColumns.size(); i-- > 0; ) {
-			Column baseColumn = this.baseTable.column(baseColumns.get(i));
-			Column refColumn = this.baseTable.column(refColumns.get(i));
-			result.add(new ColumnPair(baseColumn, refColumn));
-		}
-		return result;
-	}
-
-	public Iterator<ColumnPair> columnPairs() {
-		return this.getColumnPairs().iterator();
-	}
-
-	public int columnPairsSize() {
-		return this.getColumnPairs().size();
-	}
-
-
-	// ***** default entity field name
-
-	/**
-	 * If the name of the "base" column adheres to the EJB standard for a
-	 * default mapping (i.e. it ends with an underscore followed by the name
-	 * of the "referenced" column, and the "referenced" column is the single
-	 * primary key column of the "referenced" table), return the corresponding
-	 * default entity field name:
-	 *     ForeignKey(EMP.CUBICLE_ID => CUBICLE.ID) => "CUBICLE"
-	 * Return a null if it does not adhere to the EJB standard:
-	 *     ForeignKey(EMP.CUBICLE_ID => CUBICLE.CUBICLE_ID) => null
-	 */
-	private String getDefaultEntityFieldName() {
-		if ( ! this.defaultEntityFieldNameCalculated) {
-			this.defaultEntityFieldNameCalculated = true;
-			this.defaultEntityFieldName = this.buildDefaultEntityFieldName();
-		}
-		return this.defaultEntityFieldName;
-	}
-
-	/**
-	 * @see #getDefaultEntityFieldName()
-	 */
-	private String buildDefaultEntityFieldName() {
-		if ( ! this.referencesSingleColumnPrimaryKey()) {
-			return null;
-		}
-		ColumnPair columnPair = this.columnPairs().next();
-		String baseColName = columnPair.getBaseColumn().getName();
-		String refColName = columnPair.getReferencedColumn().getName();
-		if (baseColName.length() <= (refColName.length() + 1)) {
-			return null;
-		}
-		if ( ! baseColName.endsWith(refColName)) {
-			return null;
-		}
-		int _index = baseColName.length() - refColName.length() - 1;
-		if (baseColName.charAt(_index) != '_') {
-			return null;
-		}
-		String name = baseColName.substring(0, _index);
-		return this.isCaseSensitive() ? name : name.toLowerCase();
-	}
-
-	/**
-	 * Return whether the foreign key references the primary key of the
-	 * "referenced" table and that primary key has only a single column.
-	 */
-	public boolean referencesSingleColumnPrimaryKey() {
-		if (this.columnPairsSize() != 1) {
-			return false;
-		}
-		if (this.getReferencedTable().primaryKeyColumnsSize() != 1) {
-			return false;
-		}
-
-		ColumnPair columnPair = this.columnPairs().next();
-		return columnPair.getReferencedColumn() == this.getReferencedTable().primaryKeyColumns().next();
-	}
-
-	/**
-	 * If this is a simple (single-column) foreign key, return the java field
-	 * name of the single base column. If this is a compound foreign key,
-	 * return the java field name of the referenced table.
-	 */
-	// TODO if there is only one FK to a given table, use the table's name instead of the column's name?
-	// TODO if the FK column name ends with the PK column name, strip the PK column name?
-	private String nonDefaultEntityFieldName() {
-		return (this.columnPairsSize() == 1) ?
-			this.columnPairs().next().getBaseColumn().javaFieldName()
-		:
-			this.getReferencedTable().javaFieldName();
-	}
-
-
-	// ********** Comparable implementation **********
-
-	public int compareTo(ForeignKey foreignKey) {
-		return Collator.getInstance().compare(this.getName(), foreignKey.getName());
-	}
-
-
-	// ********** member class **********
-
-	public static class ColumnPair implements Comparable<ColumnPair> {
-		private final Column baseColumn;
-		private final Column referencedColumn;
-
-		ColumnPair(Column baseColumn, Column referencedColumn) {
-			super();
-			this.baseColumn = baseColumn;
-			this.referencedColumn = referencedColumn;
-		}
-
-		public Column getBaseColumn() {
-			return this.baseColumn;
-		}
-
-		public Column getReferencedColumn() {
-			return this.referencedColumn;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, baseColumn.getName() + "=>" + this.referencedColumn.getName());
-		}
-
-		public int compareTo(ColumnPair cp) {
-			return Collator.getInstance().compare(this.getBaseColumn().getName(), cp.getBaseColumn().getName());
-		}
-
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/JptDbPlugin.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/JptDbPlugin.java
deleted file mode 100644
index 0d9f217..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/JptDbPlugin.java
+++ /dev/null
@@ -1,64 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JptDbPlugin extends Plugin {
-	private ConnectionProfileRepository connectionProfileRepository;
-
-	// The shared instance
-	private static JptDbPlugin plugin;
-
-	/**
-	 * Returns the shared instance
-	 */
-	public static JptDbPlugin getDefault() {
-		return plugin;
-	}
-	
-	/**
-	 * The constructor
-	 */
-	public JptDbPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		this.connectionProfileRepository = ConnectionProfileRepository.instance();
-        this.connectionProfileRepository.initializeListeners();
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		this.connectionProfileRepository.disposeListeners();
-		this.connectionProfileRepository = null;
-		plugin = null;
-		super.stop(context);
-	}
-
-
-	public ConnectionProfileRepository getConnectionProfileRepository() {
-		return this.connectionProfileRepository;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnection.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnection.java
deleted file mode 100644
index f095633..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnection.java
+++ /dev/null
@@ -1,81 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- *  NullConnection
- */
-public final class NullConnection extends Connection {
-
-	private static NullConnection INSTANCE;
-
-	/**
-	 * singleton support
-	 */
-	static synchronized Connection instance() {
-		if( INSTANCE == null) {
-			INSTANCE = new NullConnection();
-		}
-		return INSTANCE;
-	}
-
-	private NullConnection() {
-		super();
-	}
-
-	// ********** behavior **********
-
-	@Override
-	protected void dispose() {
-		// do nothing
-	}
-
-	@Override
-	public String getName() {
-		return ClassTools.shortClassNameForObject( this);
-	}
-
-	@Override
-	void databaseChanged( Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	 void schemaChanged( Schema schema, Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	 void tableChanged( Table table, Schema schema, Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	public boolean isConnected() {
-		return false;
-	}
-
-	@Override
-	public String getFactoryId() {
-		return "";
-	}
-
-	@Override
-	public void addConnectionListener( ConnectionListener listener) {
-		// do nothing
-	}
-
-	@Override
-	public void removeConnectionListener( ConnectionListener listener) {
-		// do nothing
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnectionProfile.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnectionProfile.java
deleted file mode 100644
index 67a2e59..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullConnectionProfile.java
+++ /dev/null
@@ -1,192 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import org.eclipse.datatools.connectivity.drivers.DriverManager;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- *  NullConnectionProfile
- */
-public final class NullConnectionProfile extends ConnectionProfile {
-	
-	private static NullConnectionProfile INSTANCE;
-
-	/**
-	 * singleton support
-	 */
-	static synchronized ConnectionProfile instance() {
-		if( INSTANCE == null) {
-			INSTANCE = new NullConnectionProfile();
-		}
-		return INSTANCE;
-	}
-
-	private NullConnectionProfile() {
-		super( null);
-	}
-
-	// ********** behavior **********
-
-	@Override
-	protected Connection buildConnection() {
-		return NullConnection.instance();
-	}
-
-	@Override
-	protected Database buildDatabase() {
-		return NullDatabase.instance();
-	}
-	
-	@Override
-	public void connect() {
-		// do nothing
-	}
-
-	@Override
-	public void disconnect() {
-		// do nothing
-	}
-	
-	@Override
-	void databaseChanged( Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	 void catalogChanged( Catalog catalog, Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	 void schemaChanged( Schema schema, Database database, int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	 void tableChanged( Table table, Schema schema, Database database, int eventType) {
-		// do nothing
-	}
-
-	// ********** queries **********
-	
-	@Override
-	public Connection getConnection() {
-		return NullConnection.instance();
-	}
-
-	@Override
-	public Database getDatabase() {
-		return NullDatabase.instance();
-	}
-	
-	@Override
-	public String getName() {
-		return ClassTools.shortClassNameForObject( this);
-	}
-
-	@Override
-	public String getDatabaseName() {
-		return "";
-	}
-
-	@Override
-	public String getDatabaseProduct() {
-		return "";
-	}
-
-	@Override
-	public String getDatabaseVendor() {
-		return "";
-	}
-
-	@Override
-	public String getDatabaseVersion() {
-		return "";
-	}
-
-	@Override
-	public String getUserName() {
-		return "";
-	}
-
-	@Override
-	public String getUserPassword() {
-		return "";
-	}
-
-	@Override
-	public String getDefaultSchema() {
-		return "";
-	}
-
-	@Override
-	public String getDriverClass() {
-		return "";
-	}
-
-	@Override
-	public String getUrl() {
-		return "";
-	}
-	
-	@Override
-	public String getInstanceId() {
-		return "";
-	}
-
-	@Override
-	public String getProviderId() {
-		return "";
-	}
-
-	@Override
-	public String getDriverDefinitionId() {
-		return "";
-	}
-
-	@Override
-	public String getDriverJarList() {
-		return "";
-	}
-	
-	@Override
-	public boolean isConnected() {
-		return false;
-	}
-	
-	@Override
-	boolean wraps( org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile) {
-		return false;
-	}
-	
-	// ********** listeners **********
-
-	@Override
-	public void addProfileListener( ProfileListener listener) {
-		// do nothing
-	}
-
-	@Override
-	public void removeProfileListener( ProfileListener listener) {
-		// do nothing
-	}
-	
-	@Override
-	public void addConnectionListener( ConnectionListener listener) {
-		// do nothing
-	}
-
-	@Override
-	public void removeConnectionListener( ConnectionListener listener) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullDatabase.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullDatabase.java
deleted file mode 100644
index fa316b8..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/NullDatabase.java
+++ /dev/null
@@ -1,109 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.util.Collections;
-import java.util.Set;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- *  NullDatabase
- */
-public final class NullDatabase extends Database {
-
-	private static NullDatabase INSTANCE;
-
-	/**
-	 * singleton support
-	 */
-	static synchronized Database instance() {
-		if( INSTANCE == null) {
-			INSTANCE = new NullDatabase();
-		}
-		return INSTANCE;
-	}
-
-	private NullDatabase() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	@Override
-	void catalogChanged( Catalog catalog, int eventType) {
-		// do nothing
-	}
-
-	@Override
-	void schemaChanged( Schema schema, int eventType) {
-		// do nothing
-	}
-
-	@Override
-	void tableChanged( Table table,  Schema schema,int eventType) {
-		// do nothing
-	}
-	
-	@Override
-	void refresh() {
-		// do nothing
-	}
-	
-	@Override
-	protected void dispose() {
-		// do nothing
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return false;
-	}
-
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-		return ClassTools.shortClassNameForObject( this);
-	}
-
-	@Override
-	public String getVendor() {
-		return this.getName();
-	}
-	
-	@Override
-	public String getVersion() {
-		return "";
-	}
-
-	// ***** catalogs
-
-	@Override
-	public boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	public String getDefaultCatalogName() {
-		return "";
-	}
-
-	@Override
-	Set<Catalog> getCatalogs() {
-		return Collections.emptySet();
-	}
-
-	// ***** schemata
-	
-	@Override
-	Set<Schema> getSchemata() {
-		return Collections.emptySet();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ProfileListener.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ProfileListener.java
deleted file mode 100644
index 677b38c..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ProfileListener.java
+++ /dev/null
@@ -1,35 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-/**
- * ProfileListener integrate th DTP IProfileListener listener.
- * This class purpose is to decouple from the DTP listeners by accepting wrappers as parameter.
- * 
- * @see org.eclipse.datatools.connectivity.IProfileListener
- */
-public interface ProfileListener {
-	/**
-	 * The specified profile has been added.
-	 */
-	public void profileAdded( ConnectionProfile profile);
-
-	/**
-	 * The specified profile has been deleted.
-	 */
-	public void profileDeleted( String profileName);
-
-	/**
-	 * The specified profile has been modified.  Modification includes
-	 * changes to any properties, the name, auto-connect flag, etc.
-	 */
-	public void profileChanged( ConnectionProfile profile);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java
deleted file mode 100644
index 9ef2c7f..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java
+++ /dev/null
@@ -1,299 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- *  Wrap a DTP Schema
- */
-public final class Schema extends DTPWrapper implements Comparable<Schema> {
-	final Database database;
-	final org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema;
-	private ICatalogObjectListener schemaListener;
-	
-	private Set<Table> tables;  // lazy-initialized
-	private Set<Sequence> sequences;  // lazy-initialized
-	
-
-	// ********** constructors **********
-
-	Schema( Database database, org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
-		super();
-		this.database = database;
-		this.dtpSchema = dtpSchema;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-
-	private void initialize() {
-		if( this.connectionIsOnline()) {
-			this.schemaListener = this.buildSchemaListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpSchema, this.schemaListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.database.connectionIsOnline();
-	}
-
-	private ICatalogObjectListener buildSchemaListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject schema, final int eventType) {     
-    			if( schema == Schema.this.dtpSchema) {	
-    				Schema.this.refresh();
-    				Schema.this.database.schemaChanged( Schema.this, eventType);
-    			}
-    	    }
-        };
-    }
-
-	void refresh() {
-		this.disposeTables();
-		this.disposeSequences();
-		
-		this.tables = null;
-		this.sequences = null;
-	}
-
-	void tableChanged( Table table, int eventType) {
-		this.database.tableChanged( table, this, eventType);
-	}
-	
-	protected Table wrap( org.eclipse.datatools.modelbase.sql.tables.Table table) {
-		return new Table( this, table);
-	}
-	
-	protected Sequence wrap(  org.eclipse.datatools.modelbase.sql.schema.Sequence sequence) {
-		return new Sequence( this, sequence);
-	}
-
-	@Override
-	protected void dispose() {
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpSchema, this.schemaListener);
-
-		this.disposeTables();
-		this.disposeSequences();
-	}
-
-	private void disposeTables() {
-		if( this.tables != null) {
-			for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-
-	private void disposeSequences() {
-		if( this.sequences != null) {
-			for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-	
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-		return this.dtpSchema.getName();
-	}
-	
-	boolean isCaseSensitive() {
-		return this.database.isCaseSensitive();
-	}
-
-	Column column( org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		return this.database.column(dtpColumn);
-	}
-
-
-	// ********** tables **********
-
-	private synchronized Collection<Table> getTables() {
-		if( this.tables == null) {
-			this.tables = this.buildTables();
-		}
-		return this.tables;
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables() {
-		return this.dtpSchema.getTables();
-	}
-
-	private Set<Table> buildTables() {
-		Collection<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables = this.dtpTables();
-		Set<Table> result = new HashSet<Table>( dtpTables.size());
-		for (org.eclipse.datatools.modelbase.sql.tables.Table dtpTable : dtpTables) {
-			result.add( this.wrap(dtpTable));
-		}
-		return result;
-	}
-	
-	public Iterator<Table> tables() {
-		return this.getTables().iterator();
-	}
-
-	public int tablesSize() {
-		return this.getTables().size();
-	}
-
-	public boolean tablesContains( Column column) {
-		return this.getTables().contains( column);
-	}
-
-	public Iterator<String> tableNames() {
-		return new TransformationIterator<Table, String>( this.tables()) {
-			@Override
-			protected String transform( Table table) {
-				 return table.getName();
-			}
-		};
-	}
-
-	public boolean containsTableNamed( String name) {
-		return this.tableNamed( name) != null;
-	}
-
-	public Table tableNamed( String name) {
-		return this.isCaseSensitive() ? this.tableNamedInternal( name) : this.tableNamedIgnoreCase( name);
-	}
-	
-	private Table tableNamedInternal( String name) {
-		for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
-			Table table = stream.next();
-			if( table.getName().equals( name)) {
-				return table;
-			}
-		}
-		return null;
-	}
-	
-	private Table tableNamedIgnoreCase( String name) {
-		for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
-			Table table = stream.next();
-			if( StringTools.stringsAreEqualIgnoreCase( table.getName(), name)) {
-				return table;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * return the table for the specified dtp table
-	 */
-	Table table( org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		if( dtpTable.getSchema() != this.dtpSchema) {
-			return this.database.table( dtpTable);
-		}
-		for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
-			Table table = stream.next();
-			if( table.wraps( dtpTable)) {
-				return table;
-			}
-		}
-		throw new IllegalArgumentException( "invalid DTP table: " + dtpTable);
-	}
-
-	// ***** sequences
-
-	private synchronized Collection<Sequence> getSequences() {
-		if( this.sequences == null) {
-			this.sequences = this.buildSequences();
-		}
-		return this.sequences;
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<org.eclipse.datatools.modelbase.sql.schema.Sequence> dtpSequences() {
-		return this.dtpSchema.getSequences();
-	}
-
-	private Set<Sequence> buildSequences() {
-		Collection<org.eclipse.datatools.modelbase.sql.schema.Sequence> dtpSequences = this.dtpSequences();
-		Set<Sequence> result = new HashSet<Sequence>( dtpSequences.size());
-		for (org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence : dtpSequences) {
-			result.add( this.wrap(dtpSequence));
-		}
-		return result;
-	}
-
-	public Iterator<Sequence> sequences() {
-		return this.getSequences().iterator();
-	}
-
-	public int sequencesSize() {
-		return this.getSequences().size();
-	}
-
-	public boolean sequencesContains( Column column) {
-		return this.getSequences().contains( column);
-	}
-
-	public Iterator<String> sequenceNames() {
-		return new TransformationIterator<Sequence, String>(this.sequences()) {
-			@Override
-			protected String transform( Sequence sequence) {
-				 return sequence.getName();
-			}
-		};
-	}
-
-	public boolean containsSequenceNamed( String name) {
-		return this.sequenceNamed( name) != null;
-	}
-
-	public Sequence sequenceNamed( String name) {
-		return this.isCaseSensitive() ? this.sequenceNamedInternal( name) : this.sequenceNamedIgnoreCase( name);
-	}
-	
-	private Sequence sequenceNamedInternal( String name) {
-		for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
-			Sequence sequence = stream.next();
-			if( sequence.getName().equals( name)) {
-				return sequence;
-			}
-		}
-		return null;
-	}
-
-	private Sequence sequenceNamedIgnoreCase( String name) {
-		for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
-			Sequence sequence = stream.next();
-			if( sequence.getName().equalsIgnoreCase( name)) {
-				return sequence;
-			}
-		}
-		return null;
-	}
-	
-	boolean wraps( org.eclipse.datatools.modelbase.sql.schema.Schema schema) {
-		return this.dtpSchema == schema;
-	}
-
-	// ********** Comparable implementation **********
-
-	public int compareTo( Schema schema) {
-		return Collator.getInstance().compare( this.getName(), schema.getName());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Sequence.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Sequence.java
deleted file mode 100644
index 7cb68a4..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Sequence.java
+++ /dev/null
@@ -1,74 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-
-/**
- *  Wrap a DTP Sequence
- */
-public final class Sequence extends DTPWrapper implements Comparable<Sequence> {
-	private final Schema schema;
-	private final org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence;
-	private ICatalogObjectListener sequenceListener;
-
-	Sequence( Schema schema, org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence) {
-		super();
-		this.schema = schema;
-		this.dtpSequence = dtpSequence;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-
-	private void initialize() {
-		if( this.connectionIsOnline()) {
-			this.sequenceListener = this.buildSequenceListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpSequence, this.sequenceListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.schema.connectionIsOnline();
-	}
-	
-	private ICatalogObjectListener buildSequenceListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject sequence, final int eventType) {
-//				TODO
-//    			if( sequence == Sequence.this.dtpSequence) {	    	    	
-//    				Sequence.this.schema.sequenceChanged( Sequence.this, eventType);
-//    			}
-    	    }
-        };
-    }
-
-
-	// ********** queries **********
-
-	@Override
-	protected void dispose() {
-		
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpSequence, this.sequenceListener);
-	}
-
-	@Override
-	public String getName() {
-		return this.dtpSequence.getName();
-	}
-
-	public int compareTo( Sequence sequence) {
-		return Collator.getInstance().compare( this.getName(), sequence.getName());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Table.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Table.java
deleted file mode 100644
index 7b49b72..0000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Table.java
+++ /dev/null
@@ -1,359 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.internal;
-
-import java.text.Collator;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
-import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.NameTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- *  Wrap a DTP Table
- */
-public final class Table extends DTPWrapper implements Comparable<Table> {
-	final Schema schema;
-	final org.eclipse.datatools.modelbase.sql.tables.Table dtpTable;
-	private ICatalogObjectListener tableListener;
-	
-	private Set<Column> columns;  // lazy-initialized
-	private Set<Column> primaryKeyColumns;  // lazy-initialized
-	private Set<ForeignKey> foreignKeys;  // lazy-initialized
-	private Set<Column> foreignKeyColumns;  // lazy-initialized
-	
-	// ********** constructors **********
-
-	Table(Schema schema, org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
-		super();
-		this.schema = schema;
-		this.dtpTable = dtpTable;
-		this.initialize();
-	}
-
-
-	// ********** behavior **********
-
-	private void initialize() {
-		if( this.connectionIsOnline()) {
-			this.tableListener = this.buildTableListener();
-			this.addCatalogObjectListener(( ICatalogObject) this.dtpTable, this.tableListener);
-		}
-	}
-	
-	@Override
-	protected boolean connectionIsOnline() {
-		return this.schema.connectionIsOnline();
-	}
-	
-	private ICatalogObjectListener buildTableListener() {
-       return new ICatalogObjectListener() {
-    	    public void notifyChanged( final ICatalogObject table, final int eventType) {     
-    			if( table == Table.this.dtpTable) {	    	    	
-    				Table.this.refresh();
-	    			Table.this.schema.tableChanged( Table.this, eventType);
-    			}
-    	    }
-        };
-    }
-
-    void refresh() {
-		this.disposeColumns();
-		
-    	this.columns = null;
-    	this.primaryKeyColumns = null;
-    	this.foreignKeys = null;
-    	this.foreignKeyColumns = null;
-    }
-
-	@Override
-	protected void dispose() {
-		this.removeCatalogObjectListener(( ICatalogObject) this.dtpTable, this.tableListener);
-		
-		this.disposeColumns();
-		this.disposeForeignKey();
-	}
-
-	private void disposeColumns() {
-		if( this.columns != null) {
-			for( Iterator<Column> stream = this.columns(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-
-	private void disposeForeignKey() {
-		if( this.foreignKeys != null) {
-			for( Iterator<ForeignKey> stream = this.foreignKeys(); stream.hasNext(); ) {
-				stream.next().dispose();
-			}
-		}
-	}
-
-	// ********** queries **********
-
-	@Override
-	public String getName() {
-		return this.dtpTable.getName();
-	}
-	
-	boolean isCaseSensitive() {
-		return this.schema.isCaseSensitive();
-	}
-
-	public String shortJavaClassName() {
-		String jName = this.getName();
-		if ( ! this.isCaseSensitive()) {
-			jName = StringTools.capitalize(jName.toLowerCase());
-		}
-		return NameTools.convertToJavaIdentifier(jName);
-	}
-
-	public boolean matchesShortJavaClassName(String shortJavaClassName) {
-		return this.isCaseSensitive() ?
-			this.getName().equals(shortJavaClassName)
-		:
-			this.getName().equalsIgnoreCase(shortJavaClassName);
-	}
-
-	public String javaFieldName() {
-		String jName = this.getName();
-		if ( ! this.isCaseSensitive()) {
-			jName = jName.toLowerCase();
-		}
-		return NameTools.convertToJavaIdentifier(jName);
-	}
-
-	boolean wraps(org.eclipse.datatools.modelbase.sql.tables.Table table) {
-		return this.dtpTable == table;
-	}
-
-	/**
-	 * return the table for the specified DTP table
-	 */
-	Table table(org.eclipse.datatools.modelbase.sql.tables.Table table) {
-		return this.schema.table(table);
-	}
-
-	// ***** columns
-
-	private synchronized Set<Column> getColumns() {
-		if (this.columns == null) {
-			this.columns = this.buildColumns();
-		}
-		return this.columns;
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<org.eclipse.datatools.modelbase.sql.tables.Column> dtpColumns() {
-		return this.dtpTable.getColumns();
-	}
-
-	private Set<Column> buildColumns() {
-		Collection<org.eclipse.datatools.modelbase.sql.tables.Column> dtpColumns = this.dtpColumns();
-		Set<Column> result = new HashSet<Column>(dtpColumns.size());
-		for (org.eclipse.datatools.modelbase.sql.tables.Column c : dtpColumns) {
-			result.add(new Column(this, c));
-		}
-		return result;
-	}
-
-	public Iterator<Column> columns() {
-		return this.getColumns().iterator();
-	}
-
-	public int columnsSize() {
-		return this.getColumns().size();
-	}
-
-	public boolean columnsContains(Column column) {
-		return this.getColumns().contains(column);
-	}
-
-	public Iterator<String> columnNames() {
-		return new TransformationIterator<Column, String>(this.columns()) {
-			@Override
-			protected String transform(Column next) {
-				 return next.getName();
-			}
-		};
-	}
-
-	public boolean containsColumnNamed(String name) {
-		return this.columnNamed(name) != null;
-	}
-
-	public Column columnNamed(String name) {
-		return this.isCaseSensitive() ? this.columnNamedInternal(name) : this.columnNamedIgnoreCase(name);
-	}
-	
-	private Column columnNamedInternal(String name) {
-		for (Iterator<Column> stream = this.columns(); stream.hasNext(); ) {
-			Column column = stream.next();
-			if (column.getName().equals(name)) {
-				return column;
-			}
-		}
-		return null;
-	}
-
-	private Column columnNamedIgnoreCase(String name) {
-		for (Iterator<Column> stream = this.columns(); stream.hasNext(); ) {
-			Column column = stream.next();
-			if (StringTools.stringsAreEqualIgnoreCase(column.getName(), name)) {
-				return column;
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * return the column for the specified dtp column
-	 */
-	Column column(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
-		if (dtpColumn.getTable() != this.dtpTable) {
-			return this.schema.column(dtpColumn);
-		}
-		for (Iterator<Column> stream = this.columns(); stream.hasNext(); ) {
-			Column column = stream.next();
-			if (column.wraps(dtpColumn)) {
-				return column;
-			}
-		}
-		throw new IllegalArgumentException("invalid dtp column: " + dtpColumn);
-	}
-
-
-	// ***** primaryKeyColumns
-
-	private synchronized Set<Column> getPrimaryKeyColumns() {
-		if (this.primaryKeyColumns == null) {
-			this.primaryKeyColumns = this.buildPrimaryKeyColumns();
-		}
-		return this.primaryKeyColumns;
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<org.eclipse.datatools.modelbase.sql.tables.Column> columns(PrimaryKey pk) {
-		return pk.getMembers();
-	}
-
-	private Set<Column> buildPrimaryKeyColumns() {
-		if ( ! (this.dtpTable instanceof BaseTable)) {
-			return Collections.emptySet();
-		}
-		PrimaryKey pk = ((BaseTable) this.dtpTable).getPrimaryKey();
-		if (pk == null) {
-			// no PK was defined
-			return Collections.emptySet();
-		}
-		Collection<org.eclipse.datatools.modelbase.sql.tables.Column> pkColumns = this.columns(pk);
-		Set<Column> result = new HashSet<Column>(pkColumns.size());
-		for (org.eclipse.datatools.modelbase.sql.tables.Column pkColumn : pkColumns) {
-			result.add(this.column(pkColumn));
-		}
-		return result;
-	}
-
-	public Iterator<Column> primaryKeyColumns() {
-		return this.getPrimaryKeyColumns().iterator();
-	}
-
-	public int primaryKeyColumnsSize() {
-		return this.getPrimaryKeyColumns().size();
-	}
-
-	public boolean primaryKeyColumnsContains(Column column) {
-		return this.getPrimaryKeyColumns().contains(column);
-	}
-
-
-	// ***** foreignKeys
-
-	private synchronized Set<ForeignKey> getForeignKeys() {
-		if (this.foreignKeys == null) {
-			this.foreignKeys = this.buildForeignKeys();
-		}
-		return this.foreignKeys;
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<org.eclipse.datatools.modelbase.sql.constraints.ForeignKey> dtpForeignKeys() {
-		return ((BaseTable) this.dtpTable).getForeignKeys();
-	}
-
-	private Set<ForeignKey> buildForeignKeys() {
-		if ( ! (this.dtpTable instanceof BaseTable)) {
-			return Collections.emptySet();
-		}
-		Collection<org.eclipse.datatools.modelbase.sql.constraints.ForeignKey> dtpForeignKeys = this.dtpForeignKeys();
-		Set<ForeignKey> result = new HashSet<ForeignKey>(dtpForeignKeys.size());
-		for (org.eclipse.datatools.modelbase.sql.constraints.ForeignKey dtpForeignKey : dtpForeignKeys) {
-			result.add(new ForeignKey(this, dtpForeignKey));
-		}
-		return result;
-	}
-
-	public Iterator<ForeignKey> foreignKeys() {
-		return this.getForeignKeys().iterator();
-	}
-
-	public int foreignKeysSize() {
-		return this.getForeignKeys().size();
-	}
-
-
-	// ***** foreignKeyColumns
-
-	private synchronized Set<Column> getForeignKeyColumns() {
-		if (this.foreignKeyColumns == null) {
-			this.foreignKeyColumns = this.buildForeignKeyColumns();
-		}
-		return this.foreignKeyColumns;
-	}
-
-	private Set<Column> buildForeignKeyColumns() {
-		if ( ! (this.dtpTable instanceof BaseTable)) {
-			return Collections.emptySet();
-		}
-		Set<Column> result = new HashSet<Column>(this.columnsSize());
-		for (Iterator<ForeignKey> stream = this.foreignKeys(); stream.hasNext(); ) {
-			CollectionTools.addAll(result, stream.next().baseColumns());
-		}
-		return result;
-	}
-
-	public Iterator<Column> foreignKeyColumns() {
-		return this.getForeignKeyColumns().iterator();
-	}
-
-	public int foreignKeyColumnsSize() {
-		return this.getForeignKeyColumns().size();
-	}
-
-	public boolean foreignKeyColumnsContains(Column column) {
-		return this.getForeignKeyColumns().contains(column);
-	}
-
-	// ********** Comparable implementation **********
-
-	public int compareTo( Table table) {
-		return Collator.getInstance().compare( this.getName(), table.getName());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.classpath b/jpa/plugins/org.eclipse.jpt.gen/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.cvsignore b/jpa/plugins/org.eclipse.jpt.gen/.cvsignore
deleted file mode 100644
index 2d14989..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-@dot
-build.xml
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.project b/jpa/plugins/org.eclipse.jpt.gen/.project
deleted file mode 100644
index ef2d508..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.gen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 7e690b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:55 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3e1d50a..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:28:54 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.gen/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.gen/META-INF/MANIFEST.MF
deleted file mode 100644
index 2394380..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.gen
-Bundle-Version: 1.0.1.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jpt.gen.internal; x-friends:="org.eclipse.jpt.ui"
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.jdt.core,
- org.eclipse.jpt.core,
- org.eclipse.jpt.db,
- org.eclipse.jpt.utility
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.gen/about.html b/jpa/plugins/org.eclipse.jpt.gen/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>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>
diff --git a/jpa/plugins/org.eclipse.jpt.gen/build.properties b/jpa/plugins/org.eclipse.jpt.gen/build.properties
deleted file mode 100644
index 41837eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.gen/component.xml b/jpa/plugins/org.eclipse.jpt.gen/component.xml
deleted file mode 100644
index 7a4e04e..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.gen"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.gen" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.gen/plugin.properties b/jpa/plugins/org.eclipse.jpt.gen/plugin.properties
deleted file mode 100644
index 4875a8b..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/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 = Java Persistence API Tools - Entity Gen
-providerName = Eclipse.org
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java
deleted file mode 100644
index f1e6b92..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/EntityGenerator.java
+++ /dev/null
@@ -1,1459 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.io.StringWriter;
-import java.lang.reflect.Modifier;
-import java.text.Collator;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jdt.core.IJavaModelStatusConstants;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jpt.core.internal.content.java.mappings.JPA;
-import org.eclipse.jpt.db.internal.Column;
-import org.eclipse.jpt.db.internal.ForeignKey;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.utility.internal.IndentingPrintWriter;
-import org.eclipse.jpt.utility.internal.JavaType;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-// TODO handle table names that are illegal class names
-// TODO handle table names that are illegal file names
-// TODO handle column names that are illegal field/method names
-// TODO format code per preferences
-// TODO organize imports per preferences
-// TODO prompt user to overwrite existing classes
-/**
- * This generator will generate an entity for a table.
- */
-public class EntityGenerator {
-	final Config config;
-	private final IPackageFragment packageFragment;
-	private final GenTable genTable;
-	private final String entityClassName;
-	private final OverwriteConfirmer overwriteConfirmer;
-	private final IProgressMonitor monitor;
-	private final String pkClassName;
-
-
-	// ********** public API **********
-
-	public static void generateEntity(Config config, IPackageFragment packageFragment, GenTable genTable, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) {
-		if ((config == null) || (packageFragment == null) || (genTable == null)) {
-			throw new NullPointerException();
-		}
-		new EntityGenerator(config, packageFragment, genTable, overwriteConfirmer, monitor).generateEntity();
-	}
-
-
-	// ********** constructor/initialization **********
-
-	private EntityGenerator(Config config, IPackageFragment packageFragment, GenTable genTable, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) {
-		super();
-		this.config = config;
-		this.packageFragment = packageFragment;
-		this.genTable = genTable;
-		this.entityClassName = this.fullyQualify(this.entityName());
-		this.overwriteConfirmer = overwriteConfirmer;
-		this.monitor = monitor;
-		this.pkClassName = this.entityClassName + "PK";  // hack
-	}
-
-
-	// ********** code gen **********
-
-	private void generateEntity() {
-		int totalWork = pkClassIsGenerated() ? 40 : 20;
-		try {
-			this.monitor.beginTask("", totalWork);
-			this.generateEntity_();
-		} catch (JavaModelException ex) {
-			throw new RuntimeException(ex);
-		}
-		finally {
-			this.monitor.done();
-		}
-	}
-
-	private void generateEntity_() throws JavaModelException {
-		// build the body source first so we can gather up the import statements
-		this.generateSourceFile(this.entityClassName, this.entityName() + ".java", this.buildSource(this.buildBodySource()));
-		if (this.pkClassIsGenerated()) {
-			this.generateSourceFile(this.pkClassName, this.pkName() + ".java", this.buildSource(this.buildPKBodySource()));
-		}
-		
-	}
-
-	private void generateSourceFile(String className, String fileName, String source) throws JavaModelException {
-		try {
-			this.packageFragment.createCompilationUnit(fileName, source, false, new SubProgressMonitor(this.monitor, 10));
-		} catch (JavaModelException ex) {
-			if (ex.getJavaModelStatus().getCode() == IJavaModelStatusConstants.NAME_COLLISION) {
-				if (this.overwriteConfirmer.overwrite(className)) {
-					this.packageFragment.createCompilationUnit(fileName, source, true, new SubProgressMonitor(this.monitor, 0));
-				}
-			} else {
-				throw ex;
-			}
-		}
-	}
-
-	/**
-	 * build the "body" source first; then build the "package" and "imports" source
-	 * and concatenate the "body" source to it
-	 */
-	private String buildSource(BodySource bodySource) {
-		StringWriter sw = new StringWriter(bodySource.length() + 1000);
-		PrintWriter pw = new PrintWriter(sw);
-		this.printPackageAndImportsOn(pw, bodySource);
-		pw.print(bodySource.source());
-		this.monitor.worked(10);
-		return sw.toString();
-	}
-
-	private BodySource buildBodySource() {
-		EntitySourceWriter pw = new EntitySourceWriter(this.packageName(), this.entityClassName);
-		this.printBodySourceOn(pw);
-		return pw;
-	}
-
-	private BodySource buildPKBodySource() {
-		EntitySourceWriter pw = new EntitySourceWriter(this.packageName(), this.pkClassName);
-		this.printPrimaryKeyClassOn(pw);
-		return pw;
-	}
-
-	private void printBodySourceOn(EntitySourceWriter pw) {
-		this.printClassDeclarationOn(pw);
-
-		pw.indent();
-			this.printEntityPrimaryKeyFieldsOn(pw);
-			this.printEntityNonPrimaryKeyBasicFieldsOn(pw);
-			this.printEntityManyToOneFieldsOn(pw);
-			this.printEntityOneToManyFieldsOn(pw);
-			this.printEntityOwnedManyToManyFieldsOn(pw);
-			this.printEntityNonOwnedManyToManyFieldsOn(pw);
-			this.printSerialVersionUID(pw);
-			pw.println();
-
-			this.printZeroArgumentConstructorOn(this.entityName(), this.config.methodVisibility(), pw);
-			if (this.config.propertyAccessType() || this.config.generateGettersAndSetters()) {
-				this.printEntityPrimaryKeyGettersAndSettersOn(pw);
-				this.printEntityNonPrimaryKeyBasicGettersAndSettersOn(pw);
-				this.printEntityManyToOneGettersAndSettersOn(pw);
-				this.printEntityOneToManyGettersAndSettersOn(pw);
-				this.printEntityOwnedManyToManyGettersAndSettersOn(pw);
-				this.printEntityNonOwnedManyToManyGettersAndSettersOn(pw);
-			}
-		pw.undent();
-
-		pw.print('}');
-		pw.println();
-	}
-
-	private void printClassDeclarationOn(EntitySourceWriter pw) {
-		this.printEntityAnnotationOn(pw);
-		this.printTableAnnotationOn(pw);
-		this.printIdClassAnnotationOn(pw);
-
-		pw.print("public class ");
-		pw.printTypeDeclaration(this.entityClassName);
-		if (config.serializable()) {
-			pw.print(" implements ");
-			pw.printTypeDeclaration(Serializable.class.getName());
-		}
-		pw.print(" {");
-		pw.println();
-	}
-
-	private void printEntityAnnotationOn(EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.ENTITY);
-		pw.println();
-	}
-
-	private void printTableAnnotationOn(EntitySourceWriter pw) {
-		if ( ! this.table().matchesShortJavaClassName(this.entityName())) {
-			pw.printAnnotation(JPA.TABLE);
-			pw.print("(name=\"");
-			pw.print(this.table().getName());
-			pw.print("\")");
-			pw.println();
-		}
-	}
-
-	private void printIdClassAnnotationOn(EntitySourceWriter pw) {
-		if (this.pkClassIsGenerated() && this.config.generateIdClassForCompoundPK()) {
-			pw.printAnnotation(JPA.ID_CLASS);
-			pw.print('(');
-			pw.printTypeDeclaration(pkClassName);
-			pw.print(".class)");
-			pw.println();
-		}
-	}
-
-	private void printEntityPrimaryKeyFieldsOn(EntitySourceWriter pw) {
-		if (this.pkClassIsGenerated() && this.config.generateEmbeddedIdForCompoundPK()) {
-			this.printEntityEmbeddedIdPrimaryKeyFieldOn(pw);
-		} else {
-			this.printEntityReadOnlyPrimaryKeyFieldsOn(pw);
-			this.printEntityWritablePrimaryKeyFieldsOn(pw);
-		}
-	}
-
-	private void printEntityEmbeddedIdPrimaryKeyFieldOn(EntitySourceWriter pw) {
-		if (this.config.fieldAccessType()) {
-			pw.printAnnotation(JPA.EMBEDDED_ID);
-			pw.println();
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(this.pkClassName);
-		pw.print(' ');
-		pw.print(this.genTable.fieldNameForEmbeddedId());
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printEntityReadOnlyPrimaryKeyFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.readOnlyPrimaryKeyColumns(); stream.hasNext(); ) {
-			this.printEntityReadOnlyPrimaryKeyFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityReadOnlyPrimaryKeyFieldOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		if (this.config.fieldAccessType()) {
-			pw.printAnnotation(JPA.ID);
-			pw.println();
-			if (column.matchesJavaFieldName(fieldName)) {
-				this.printReadOnlyColumnAnnotationOn(pw);  // no Column name needed
-			} else {
-				this.printReadOnlyColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(column.javaTypeDeclaration());
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printReadOnlyColumnAnnotationOn(String columnName, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.COLUMN);
-		pw.print("(name=\"");
-		pw.print(columnName);
-		pw.print("\", insertable=false, updatable=false)");
-		pw.println();
-	}
-
-	private void printReadOnlyColumnAnnotationOn(EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.COLUMN);
-		pw.print("(insertable=false, updatable=false)");
-		pw.println();
-	}
-
-	private void printEntityWritablePrimaryKeyFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.writablePrimaryKeyColumns(); stream.hasNext(); ) {
-			this.printEntityWritablePrimaryKeyFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityWritablePrimaryKeyFieldOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		if (this.config.fieldAccessType()) {
-			pw.printAnnotation(JPA.ID);
-			pw.println();
-			if ( ! column.matchesJavaFieldName(fieldName)) {
-				this.printColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(column.javaTypeDeclaration());
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printEntityNonPrimaryKeyBasicFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.nonPrimaryKeyBasicColumns(); stream.hasNext(); ) {
-			this.printEntityNonPrimaryKeyBasicFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityNonPrimaryKeyBasicFieldOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		if (this.config.fieldAccessType()) {
-			if ( ! column.matchesJavaFieldName(fieldName)) {
-				this.printColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-		if (column.isLob()) {
-			pw.printAnnotation(JPA.LOB);
-			pw.println();
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(column.javaTypeDeclaration());
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printColumnAnnotationOn(String columnName, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.COLUMN);
-		pw.print("(name=\"");
-		pw.print(columnName);
-		pw.print("\")");
-		pw.println();
-	}
-
-	private void printEntityManyToOneFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToOneRelation> stream = this.genTable.manyToOneRelations(); stream.hasNext(); ) {
-			this.printEntityManyToOneFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityManyToOneFieldOn(ManyToOneRelation relation, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(relation);
-		if (this.config.fieldAccessType()) {
-			this.printManyToOneAnnotationOn(fieldName, relation, pw);
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(this.fullyQualify(relation.referencedEntityName()));
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printManyToOneAnnotationOn(String fieldName, ManyToOneRelation relation, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.MANY_TO_ONE);
-		pw.println();
-		ForeignKey fk = relation.getForeignKey();
-		if (fk.matchesJavaFieldName(fieldName)) {
-			return;  // no JoinColumn annotation needed
-		}
-		if (fk.referencesSingleColumnPrimaryKey()) {
-			pw.printAnnotation(JPA.JOIN_COLUMN);
-			pw.print("(name=\"");
-			pw.print(fk.columnPairs().next().getBaseColumn().getName());
-			pw.print("\")");
-		} else {
-			if (fk.columnPairsSize() > 1) {
-				pw.printAnnotation(JPA.JOIN_COLUMNS);
-				pw.print("({");
-				pw.println();
-				pw.indent();
-			}
-			this.printJoinColumnAnnotationsOn(fk, pw);
-			if (fk.columnPairsSize() > 1) {
-				pw.undent();
-				pw.println();
-				pw.print("})");
-			}
-		}
-		pw.println();
-	}
-
-	private void printJoinColumnAnnotationsOn(ForeignKey foreignKey, EntitySourceWriter pw) {
-		for (Iterator<ForeignKey.ColumnPair> stream = foreignKey.columnPairs(); stream.hasNext(); ) {
-			this.printJoinColumnAnnotationOn(stream.next(), pw);
-			if (stream.hasNext()) {
-				pw.println(',');
-			}
-		}
-	}
-
-	private void printJoinColumnAnnotationOn(ForeignKey.ColumnPair columnPair, EntitySourceWriter pw) {
-		this.printJoinColumnAnnotationOn(columnPair.getBaseColumn().getName(), columnPair.getReferencedColumn().getName(), pw);
-	}
-
-	/**
-	 * assume that at least one of the two names is not null
-	 */
-	private void printJoinColumnAnnotationOn(String baseColumnName, String referencedColumnName, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.JOIN_COLUMN);
-		pw.print('(');
-		if (baseColumnName != null) {
-			pw.print("name=\"");
-			pw.print(baseColumnName);
-		}
-		if (referencedColumnName != null) {
-			if (baseColumnName != null) {
-				pw.print("\", ");
-			}
-			pw.print("referencedColumnName=\"");
-			pw.print(referencedColumnName);
-		}
-		pw.print("\")");
-	}
-
-	private void printEntityOneToManyFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<OneToManyRelation> stream = this.genTable.oneToManyRelations(); stream.hasNext(); ) {
-			this.printEntityOneToManyFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityOneToManyFieldOn(OneToManyRelation relation, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(relation);
-		if (this.config.fieldAccessType()) {
-			this.printOneToManyAnnotationOn(fieldName, relation, pw);
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(this.config.getCollectionTypeName());
-		pw.print('<');
-		pw.printTypeDeclaration(this.fullyQualify(relation.referencedEntityName()));
-		pw.print('>');
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printOneToManyAnnotationOn(String fieldName, OneToManyRelation relation, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.ONE_TO_MANY);
-		pw.print("(mappedBy=\"");
-		pw.print(relation.mappedBy());
-		pw.print("\")");
-		pw.println();
-	}
-
-	private void printEntityOwnedManyToManyFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToManyRelation>  stream = this.genTable.ownedManyToManyRelations(); stream.hasNext(); ) {
-			this.printEntityOwnedManyToManyFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityOwnedManyToManyFieldOn(ManyToManyRelation relation, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(relation);
-		if (this.config.fieldAccessType()) {
-			this.printOwnedManyToManyAnnotationOn(fieldName, relation, pw);
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(this.config.getCollectionTypeName());
-		pw.print('<');
-		pw.printTypeDeclaration(this.fullyQualify(relation.nonOwningEntityName()));
-		pw.print('>');
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	/**
-	 * I guess you could build a state machine for all this crap,
-	 * but that seems like overkill...
-	 */
-	private void printOwnedManyToManyAnnotationOn(String fieldName, ManyToManyRelation relation, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.MANY_TO_MANY);
-		pw.println();
-		boolean first = true;
-		boolean comma = false;
-		if ( ! relation.joinTableNameIsDefault()) {
-			if (first) {
-				first = false;
-				pw.printAnnotation(JPA.JOIN_TABLE);
-				pw.print('(');
-			}
-			pw.print("name=\"");
-			pw.print(relation.getJoinTable().name());
-			pw.print('\"');
-			comma = true;
-		}
-		if ( ! relation.joinColumnsIsDefaultFor(fieldName)) {
-			if (first) {
-				first = false;
-				pw.printAnnotation(JPA.JOIN_TABLE);
-				pw.print('(');
-			} else if (comma) {
-				pw.print(',');
-			}
-			pw.println();
-			pw.indent();
-			this.printJoinTableJoinColumnsOn("joinColumns", fieldName, relation.getOwningForeignKey(), pw);
-			pw.undent();
-			comma = true;
-		}
-		String inverseFieldName = relation.getNonOwningTable().fieldNameFor(relation);
-		if ( ! relation.inverseJoinColumnsIsDefaultFor(inverseFieldName)) {
-			if (first) {
-				first = false;
-				pw.printAnnotation(JPA.JOIN_TABLE);
-				pw.print('(');
-			} else if (comma) {
-				pw.print(',');
-			}
-			pw.println();
-			pw.indent();
-			this.printJoinTableJoinColumnsOn("inverseJoinColumns", inverseFieldName, relation.getNonOwningForeignKey(), pw);
-			pw.undent();
-			comma = true;
-		}
-		if ( ! first) {
-			pw.print(')');
-		}
-		pw.println();
-	}
-
-	private void printJoinTableJoinColumnsOn(String elementName, String fieldName, ForeignKey foreignKey, EntitySourceWriter pw) {
-		if (foreignKey.columnPairsSize() != 1) {
-			this.printJoinTableJoinColumnsOn(elementName, foreignKey, pw);
-		} else if (foreignKey.getReferencedTable().primaryKeyColumnsSize() != 1) {
-			// if the referenced table has a composite primary key, neither of the columns can be a default
-			// since both of the defaults require a single-column primary key
-			this.printJoinTableJoinColumnsOn(elementName, foreignKey, pw);
-		} else {
-			ForeignKey.ColumnPair columnPair = foreignKey.columnPairs().next();
-			Column pkColumn = foreignKey.getReferencedTable().primaryKeyColumns().next();
-			if (columnPair.getBaseColumn().matchesJavaFieldName(fieldName + "_" + pkColumn.getName())) {
-				if (columnPair.getReferencedColumn() == pkColumn) {
-					// we shouldn't get here...
-				} else {
-					pw.print(elementName);
-					pw.print('=');
-					this.printJoinColumnAnnotationOn(null, columnPair.getReferencedColumn().getName(), pw);
-				}
-			} else {
-				if (columnPair.getReferencedColumn() == pkColumn) {
-					pw.print(elementName);
-					pw.print('=');
-					this.printJoinColumnAnnotationOn(columnPair.getBaseColumn().getName(), null, pw);
-				} else {
-					this.printJoinTableJoinColumnsOn(elementName, foreignKey, pw);
-				}
-			}
-		}
-	}
-
-	private void printJoinTableJoinColumnsOn(String elementName, ForeignKey foreignKey, EntitySourceWriter pw) {
-		pw.print(elementName);
-		pw.print('=');
-		if (foreignKey.columnPairsSize() > 1) {
-			pw.print('{');
-			pw.println();
-			pw.indent();
-		}
-		this.printJoinColumnAnnotationsOn(foreignKey, pw);
-		if (foreignKey.columnPairsSize() > 1) {
-			pw.undent();
-			pw.println();
-			pw.print('}');
-			pw.println();
-		}
-	}
-
-	private void printEntityNonOwnedManyToManyFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToManyRelation> stream = this.genTable.nonOwnedManyToManyRelations(); stream.hasNext(); ) {
-			this.printEntityNonOwnedManyToManyFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityNonOwnedManyToManyFieldOn(ManyToManyRelation relation, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(relation);
-		if (this.config.fieldAccessType()) {
-			this.printNonOwnedManyToManyAnnotationOn(fieldName, relation, pw);
-		}
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(this.config.getCollectionTypeName());
-		pw.print('<');
-		pw.printTypeDeclaration(this.fullyQualify(relation.owningEntityName()));
-		pw.print('>');
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-		pw.println();
-	}
-
-	private void printNonOwnedManyToManyAnnotationOn(String fieldName, ManyToManyRelation relation, EntitySourceWriter pw) {
-		pw.printAnnotation(JPA.MANY_TO_MANY);
-		pw.print("(mappedBy=\"");
-		pw.print(relation.getMappedBy());
-		pw.print("\")");
-		pw.println();
-	}
-
-	private String fullyQualify(String shortClassName) {
-		String pkg = this.packageName();
-		return (pkg.length() == 0) ? shortClassName : pkg + '.' + shortClassName;
-	}
-
-	private void printSerialVersionUID(EntitySourceWriter pw) {
-		if (this.config.generateSerialVersionUID()) {
-			pw.print("private static final long serialVersionUID = 1L;");
-			pw.println();
-		}
-	}
-
-	private void printZeroArgumentConstructorOn(String ctorName, String visibility, EntitySourceWriter pw) {
-		if (this.config.generateDefaultConstructor()) {
-			pw.printVisibility(visibility);
-			pw.print(ctorName);
-			pw.print("() {");
-			pw.println();
-			pw.indent();
-				pw.println("super();");
-			pw.undent();
-			pw.print('}');
-			pw.println();
-			pw.println();
-		}
-	}
-
-	private void printEntityPrimaryKeyGettersAndSettersOn(EntitySourceWriter pw) {
-		if (this.pkClassIsGenerated() && this.config.generateEmbeddedIdForCompoundPK()) {
-			this.printEntityEmbeddedIdPrimaryKeyGetterAndSetterOn(pw);
-		} else {
-			this.printEntityReadOnlyPrimaryKeyGettersAndSettersOn(pw);
-			this.printEntityWritablePrimaryKeyGettersAndSettersOn(pw);
-		}
-	}
-
-	private void printEntityEmbeddedIdPrimaryKeyGetterAndSetterOn(EntitySourceWriter pw) {
-		if (this.config.propertyAccessType()) {
-			pw.printAnnotation(JPA.EMBEDDED_ID);
-			pw.println();
-		}
-		pw.printGetterAndSetter(this.genTable.fieldNameForEmbeddedId(), this.pkClassName, this.config.methodVisibility());
-	}
-
-	private void printEntityReadOnlyPrimaryKeyGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.readOnlyPrimaryKeyColumns(); stream.hasNext(); ) {
-			this.printEntityReadOnlyPrimaryKeyGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityReadOnlyPrimaryKeyGetterAndSetterOn(Column column, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(column);
-		if (this.config.propertyAccessType()) {
-			pw.printAnnotation(JPA.ID);
-			pw.println();
-			if (column.matchesJavaFieldName(propertyName)) {
-				this.printReadOnlyColumnAnnotationOn(pw);  // no Column name needed
-			} else {
-				this.printReadOnlyColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-
-		pw.printGetterAndSetter(propertyName, column.javaTypeDeclaration(), this.config.methodVisibility());
-	}
-
-	private void printEntityWritablePrimaryKeyGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.writablePrimaryKeyColumns(); stream.hasNext(); ) {
-			this.printEntityWritablePrimaryKeyGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityWritablePrimaryKeyGetterAndSetterOn(Column column, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(column);
-		if (this.config.propertyAccessType()) {
-			pw.printAnnotation(JPA.ID);
-			pw.println();
-			if ( ! column.matchesJavaFieldName(propertyName)) {
-				this.printColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-
-		pw.printGetterAndSetter(propertyName, column.javaTypeDeclaration(), this.config.methodVisibility());
-	}
-
-	private void printEntityNonPrimaryKeyBasicGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.genTable.nonPrimaryKeyBasicColumns(); stream.hasNext(); ) {
-			this.printEntityNonPrimaryKeyBasicGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityNonPrimaryKeyBasicGetterAndSetterOn(Column column, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(column);
-		if (this.config.propertyAccessType()) {
-			if ( ! column.matchesJavaFieldName(propertyName)) {
-				this.printColumnAnnotationOn(column.getName(), pw);
-			}
-		}
-
-		pw.printGetterAndSetter(propertyName, column.javaTypeDeclaration(), this.config.methodVisibility());
-	}
-
-	private void printEntityManyToOneGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToOneRelation> stream = this.genTable.manyToOneRelations(); stream.hasNext(); ) {
-			this.printEntityManyToOneGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityManyToOneGetterAndSetterOn(ManyToOneRelation relation, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(relation);
-		if (this.config.propertyAccessType()) {
-			this.printManyToOneAnnotationOn(propertyName, relation, pw);
-		}
-
-		String typeDeclaration = this.fullyQualify(relation.referencedEntityName());
-		pw.printGetterAndSetter(propertyName, typeDeclaration, this.config.methodVisibility());
-	}
-
-	private void printEntityOneToManyGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<OneToManyRelation> stream = this.genTable.oneToManyRelations(); stream.hasNext(); ) {
-			this.printEntityOneToManyGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityOneToManyGetterAndSetterOn(OneToManyRelation relation, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(relation);
-		if (this.config.propertyAccessType()) {
-			this.printOneToManyAnnotationOn(propertyName, relation, pw);
-		}
-
-		String elementTypeDeclaration = this.fullyQualify(relation.referencedEntityName());
-		pw.printCollectionGetterAndSetter(propertyName, this.config.getCollectionTypeName(), elementTypeDeclaration, this.config.methodVisibility());
-	}
-
-	private void printEntityOwnedManyToManyGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToManyRelation> stream = this.genTable.ownedManyToManyRelations(); stream.hasNext(); ) {
-			this.printEntityOwnedManyToManyGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityOwnedManyToManyGetterAndSetterOn(ManyToManyRelation relation, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(relation);
-		if (this.config.propertyAccessType()) {
-			this.printOwnedManyToManyAnnotationOn(propertyName, relation, pw);
-		}
-
-		String elementTypeDeclaration = this.fullyQualify(relation.nonOwningEntityName());
-		pw.printCollectionGetterAndSetter(propertyName, this.config.getCollectionTypeName(), elementTypeDeclaration, this.config.methodVisibility());
-	}
-
-	private void printEntityNonOwnedManyToManyGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<ManyToManyRelation> stream = this.genTable.nonOwnedManyToManyRelations(); stream.hasNext(); ) {
-			this.printEntityNonOwnedManyToManyGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printEntityNonOwnedManyToManyGetterAndSetterOn(ManyToManyRelation relation, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(relation);
-		if (this.config.propertyAccessType()) {
-			this.printNonOwnedManyToManyAnnotationOn(propertyName, relation, pw);
-		}
-
-		String elementTypeDeclaration = this.fullyQualify(relation.owningEntityName());
-		pw.printCollectionGetterAndSetter(propertyName, this.config.getCollectionTypeName(), elementTypeDeclaration, this.config.methodVisibility());
-	}
-
-	private void printPrimaryKeyClassOn(EntitySourceWriter pw) {
-		if (this.config.generateEmbeddedIdForCompoundPK()) {
-			pw.printAnnotation(JPA.EMBEDDABLE);
-			pw.println();
-		}
-		pw.print("public class ");
-		pw.printTypeDeclaration(this.pkClassName);
-		pw.print(" implements ");
-		pw.printTypeDeclaration(Serializable.class.getName());
-		pw.print(" {");
-		pw.println();
-
-		pw.indent();
-			this.printIdFieldsOn(pw);
-			this.printSerialVersionUID(pw);
-			pw.println();
-			this.printZeroArgumentConstructorOn(this.pkName(), "public", pw);
-
-			if (this.config.propertyAccessType() || this.config.generateGettersAndSetters()) {
-				this.printIdGettersAndSettersOn(pw);
-			}
-
-			this.printEqualsMethodOn(this.pkName(), this.table().primaryKeyColumns(), pw);
-			this.printHashCodeMethodOn(this.table().primaryKeyColumns(), pw);
-		pw.undent();
-
-		pw.print('}');
-		pw.println();
-	}
-
-	private void printIdFieldsOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.table().primaryKeyColumns(); stream.hasNext(); ) {
-			this.printIdFieldOn(stream.next(), pw);
-		}
-	}
-
-	private void printIdFieldOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		pw.printVisibility(this.config.fieldVisibility());
-		pw.printTypeDeclaration(column.javaTypeDeclaration());
-		pw.print(' ');
-		pw.print(fieldName);
-		pw.print(';');
-		pw.println();
-	}
-
-	private void printIdGettersAndSettersOn(EntitySourceWriter pw) {
-		for (Iterator<Column> stream = this.table().primaryKeyColumns(); stream.hasNext(); ) {
-			this.printIdGetterAndSetterOn(stream.next(), pw);
-		}
-	}
-
-	private void printIdGetterAndSetterOn(Column column, EntitySourceWriter pw) {
-		String propertyName = this.genTable.fieldNameFor(column);
-		pw.printGetterAndSetter(propertyName, column.javaTypeDeclaration(), this.config.methodVisibility());
-	}
-
-	private void printEqualsMethodOn(String className, Iterator<Column> columns, EntitySourceWriter pw) {
-		pw.printAnnotation("java.lang.Override");
-		pw.println();
-
-		pw.println("public boolean equals(Object o) {");
-		pw.indent();
-			pw.println("if (o == this) {");
-			pw.indent();
-				pw.println("return true;");
-			pw.undent();
-			pw.print('}');
-			pw.println();
-
-			pw.print("if ( ! (o instanceof ");
-			pw.print(className);
-			pw.print(")) {");
-			pw.println();
-			pw.indent();
-				pw.println("return false;");
-			pw.undent();
-			pw.print('}');
-			pw.println();
-
-			pw.print(className);
-			pw.print(" other = (");
-			pw.print(className);
-			pw.print(") o;");
-			pw.println();
-
-			pw.print("return ");
-			pw.indent();
-				while (columns.hasNext()) {
-					this.printEqualsClauseOn(columns.next(), pw);
-					if (columns.hasNext()) {
-						pw.println();
-						pw.print("&& ");
-					}
-				}
-				pw.print(';');
-				pw.println();
-			pw.undent();
-		pw.undent();
-		pw.print('}');
-		pw.println();
-		pw.println();
-	}
-
-	private void printEqualsClauseOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		JavaType javaType = column.javaType();
-		if (javaType.isPrimitive()) {
-			this.printPrimitiveEqualsClauseOn(fieldName, pw);
-		} else {
-			this.printReferenceEqualsClauseOn(fieldName, pw);
-		}
-	}
-
-	private void printPrimitiveEqualsClauseOn(String fieldName, EntitySourceWriter pw) {
-		pw.print("(this.");
-		pw.print(fieldName);
-		pw.print(" == other.");
-		pw.print(fieldName);
-		pw.print(')');
-	}
-
-	private void printReferenceEqualsClauseOn(String fieldName, EntitySourceWriter pw) {
-		pw.print("this.");
-		pw.print(fieldName);
-		pw.print(".equals(other.");
-		pw.print(fieldName);
-		pw.print(')');
-	}
-
-	private void printHashCodeMethodOn(Iterator<Column> columns, EntitySourceWriter pw) {
-		pw.printAnnotation("java.lang.Override");
-		pw.println();
-
-		pw.println("public int hashCode() {");
-		pw.indent();
-			pw.print("return ");
-			pw.indent();
-				while (columns.hasNext()) {
-					this.printHashCodeClauseOn(columns.next(), pw);
-					if (columns.hasNext()) {
-						pw.println();
-						pw.print("^ ");
-					}
-				}
-				pw.print(';');
-				pw.println();
-			pw.undent();
-		pw.undent();
-		pw.print('}');
-		pw.println();
-		pw.println();
-	}
-
-	private void printHashCodeClauseOn(Column column, EntitySourceWriter pw) {
-		String fieldName = this.genTable.fieldNameFor(column);
-		JavaType javaType = column.javaType();
-		if (javaType.isPrimitive()) {
-			this.printPrimitiveHashCodeClauseOn(javaType.getElementTypeName(), fieldName, pw);
-		} else {
-			this.printReferenceHashCodeClauseOn(fieldName, pw);
-		}
-	}
-
-	private void printPrimitiveHashCodeClauseOn(String primitiveName, String fieldName, EntitySourceWriter pw) {
-		if (primitiveName.equals("int") || primitiveName.equals("short") || primitiveName.equals("byte") || primitiveName.equals("char")) {
-			pw.print("this.");
-			pw.print(fieldName);
-		} else if (primitiveName.equals("long")) {  // cribbed from Long#hashCode()
-			// ((int) (this.value ^ (this.value >>> 32)))
-			pw.print("((int) (this.");
-			pw.print(fieldName);
-			pw.print(" ^ (this.");
-			pw.print(fieldName);
-			pw.print(" >>> 32)))");
-		} else if (primitiveName.equals("double")) {  // cribbed from Double#hashCode()
-			//	((int) (java.lang.Double.doubleToLongBits(this.value) ^ (java.lang.Double.doubleToLongBits(this.value) >>> 32)))
-			pw.print("((int) (");
-			pw.printTypeDeclaration("java.lang.Double");
-			pw.print(".doubleToLongBits(this.");
-			pw.print(fieldName);
-			pw.print(") ^ (");
-			pw.printTypeDeclaration("java.lang.Double");
-			pw.print(".doubleToLongBits(this.");
-			pw.print(fieldName);
-			pw.print(") >>> 32)))");
-		} else if (primitiveName.equals("float")) {  // cribbed from Float#hashCode()
-			// java.lang.Float.floatToIntBits(this.value)
-			pw.printTypeDeclaration("java.lang.Float");
-			pw.print(".floatToIntBits(this.");
-			pw.print(fieldName);
-			pw.print(')');
-		} else if (primitiveName.equals("boolean")) {  // cribbed from Boolean#hashCode()
-			// (this.value ? 1231 : 1237)
-			pw.print("(this.");
-			pw.print(fieldName);
-			pw.print(" ? 1231 : 1237)");
-		} else {
-			throw new IllegalArgumentException(primitiveName);
-		}
-	}
-
-	private void printReferenceHashCodeClauseOn(String fieldName, EntitySourceWriter pw) {
-		pw.print("this.");
-		pw.print(fieldName);
-		pw.print(".hashCode()");
-	}
-
-	private void printPackageAndImportsOn(PrintWriter pw, BodySource bodySource) {
-		if (this.packageName().length() != 0) {
-			pw.print("package ");
-			pw.print(this.packageName());
-			pw.print(';');
-			pw.println();
-			pw.println();
-		}
-
-		for (Iterator<Map.Entry<String, String>> stream = bodySource.importEntries(); stream.hasNext(); ) {
-			Map.Entry<String, String> entry = stream.next();
-			pw.print("import ");
-			pw.print(entry.getValue());  // package
-			pw.print('.');
-			pw.print(entry.getKey());  // short class name
-			pw.print(';');
-			pw.println();
-		}
-		pw.println();
-	}
-
-
-	// ********** convenience methods **********
-
-	private String packageName() {
-		return this.packageFragment.getElementName();
-	}
-
-	private Table table() {
-		return this.genTable.getTable();
-	}
-
-	private String entityName() {
-		return this.genTable.getEntityName();
-	}
-
-	private String pkName() {
-		return this.entityName() + "PK";  // hack
-	}
-
-	private boolean pkClassIsGenerated() {
-		return this.table().primaryKeyColumnsSize() > 1;
-	}
-
-
-	// ********** writer **********
-
-	private interface BodySource {
-
-		/**
-		 * return a sorted set of map entries; the key is the short class name,
-		 * the value is the package name
-		 */
-		Iterator<Map.Entry<String, String>> importEntries();
-
-		/**
-		 * return the body source code
-		 */
-		String source();
-
-		/**
-		 * return the length of the body source code
-		 */
-		int length();
-
-	}
-
-	/**
-	 * Extend IndentingPrintWriter with some methods that facilitate building
-	 * class source code.
-	 */
-	private static class EntitySourceWriter extends IndentingPrintWriter implements BodySource {
-		final String packageName;
-		final String className;
-		// key = short class name; value = package name
-		private final Map<String, String> imports = new HashMap<String, String>();
-
-		EntitySourceWriter(String packageName, String className) {
-			super(new StringWriter(20000));
-			this.packageName = packageName;
-			this.className = className;
-		}
-
-		void printVisibility(String visibilityModifier) {
-			if (visibilityModifier.length() != 0) {
-				this.print(visibilityModifier);
-				this.print(' ');
-			}
-		}
-
-		void printAnnotation(String annotationName) {
-			this.print('@');
-			this.printTypeDeclaration(annotationName);
-		}
-
-		void printTypeDeclaration(String typeDeclaration) {
-			this.print(this.importedTypeDeclaration(typeDeclaration));
-		}
-
-		/**
-		 * Return the specified class's "imported" name.
-		 * The class declaration must be of the form:
-		 *     "int"
-		 *     "int[]" (not "[I")
-		 *     "java.lang.Object"
-		 *     "java.lang.Object[]" (not "[Ljava.lang.Object;")
-		 *     "java.util.Map.Entry" (not "java.util.Map$Entry")
-		 *     "java.util.Map.Entry[][]" (not "[[Ljava.util.Map$Entry;")
-		 */
-		private String importedTypeDeclaration(String typeDeclaration) {
-			if (this.typeDeclarationIsMemberClass(typeDeclaration)) {
-				// no need for an import, just return the partially-qualified name
-				return this.memberClassTypeDeclaration(typeDeclaration);
-			}
-			int last = typeDeclaration.lastIndexOf('.');
-			String pkg = (last == -1) ? "" : typeDeclaration.substring(0, last);
-			String shortTypeDeclaration = typeDeclaration.substring(last + 1);
-			String shortElementTypeName = shortTypeDeclaration;
-			while (shortElementTypeName.endsWith("[]")) {
-				shortElementTypeName = shortElementTypeName.substring(0, shortElementTypeName.length() - 2);
-			}
-			String prev = this.imports.get(shortElementTypeName);
-			if (prev == null) {
-				// this is the first class with this short element type name
-				this.imports.put(shortElementTypeName, pkg);
-				return shortTypeDeclaration;
-			}
-			if (prev.equals(pkg)) {
-				// this element type has already been imported
-				return shortTypeDeclaration;
-			}
-			// another class with the same short element type name has been
-			// previously imported, so this one must be used fully-qualified
-			return typeDeclaration;
-		}
-
-		/**
-		 * e.g. "foo.bar.Employee.PK" will return true
-		 */
-		private boolean typeDeclarationIsMemberClass(String typeDeclaration) {
-			return (typeDeclaration.length() > this.className.length())
-					&& typeDeclaration.startsWith(this.className)
-					&& (typeDeclaration.charAt(this.className.length()) == '.');
-		}
-
-		/**
-		 * e.g. "foo.bar.Employee.PK" will return "Employee.PK"
-		 * this prevents collisions with other imported classes (e.g. "joo.jar.PK")
-		 */
-		private String memberClassTypeDeclaration(String typeDeclaration) {
-			int index = this.packageName.length();
-			if (index != 0) {
-				index++;  // bump past the '.'
-			}
-			return typeDeclaration.substring(index);
-		}
-
-		public Iterator<Map.Entry<String, String>> importEntries() {
-			return new FilteringIterator<Map.Entry<String, String>>(this.sortedImportEntries()) {
-				@Override
-				protected boolean accept(Object next) {
-					@SuppressWarnings("unchecked")
-					String pkg = ((Map.Entry<String, String>) next).getValue();
-					if (pkg.equals("")
-							|| pkg.equals("java.lang")
-							|| pkg.equals(EntitySourceWriter.this.packageName)) {
-						return false;
-					}
-					return true;
-				}
-			};
-		}
-
-		private Iterator<Map.Entry<String, String>> sortedImportEntries() {
-			TreeSet<Map.Entry<String, String>> sortedImports = new TreeSet<Map.Entry<String, String>>(this.buildImportEntriesComparator());
-			sortedImports.addAll(this.imports.entrySet());
-			return sortedImports.iterator();
-		}
-
-		private Comparator<Map.Entry<String, String>> buildImportEntriesComparator() {
-			return new Comparator<Map.Entry<String, String>>() {
-				public int compare(Map.Entry<String, String> e1, Map.Entry<String, String> e2) {
-					Collator collator = Collator.getInstance();
-					int pkg = collator.compare(e1.getValue(), e2.getValue());
-					return (pkg == 0) ? collator.compare(e1.getKey(), e2.getKey()) : pkg;
-				}
-			};
-		}
-
-		void printGetterAndSetter(String propertyName, String typeDeclaration, String visibility) {
-			this.printGetter(propertyName, typeDeclaration, visibility);
-			this.println();
-			this.println();
-
-			this.printSetter(propertyName, typeDeclaration, visibility);
-			this.println();
-			this.println();
-		}
-
-		private void printGetter(String propertyName, String typeDeclaration, String visibility) {
-			this.printVisibility(visibility);
-			this.printTypeDeclaration(typeDeclaration);
-			this.print(' ');
-			this.print(typeDeclaration.equals("boolean") ? "is" : "get");
-			this.print(StringTools.capitalize(propertyName));
-			this.print("() {");
-			this.println();
-
-			this.indent();
-				this.print("return this.");
-				this.print(propertyName);
-				this.print(';');
-				this.println();
-			this.undent();
-
-			this.print('}');
-		}
-
-		private void printSetter(String propertyName, String typeDeclaration, String visibility) {
-			this.printVisibility(visibility);
-			this.print("void set");
-			this.print(StringTools.capitalize(propertyName));
-			this.print('(');
-			this.printTypeDeclaration(typeDeclaration);
-			this.print(' ');
-			this.print(propertyName);
-			this.print(") {");
-			this.println();
-
-			this.indent();
-				this.print("this.");
-				this.print(propertyName);
-				this.print(" = ");
-				this.print(propertyName);
-				this.print(';');
-				this.println();
-			this.undent();
-
-			this.print('}');
-		}
-
-		void printCollectionGetterAndSetter(String propertyName, String collectionTypeDeclaration, String elementTypeDeclaration, String visibility) {
-			this.printCollectionGetter(propertyName, collectionTypeDeclaration, elementTypeDeclaration, visibility);
-			this.println();
-			this.println();
-
-			this.printCollectionSetter(propertyName, collectionTypeDeclaration, elementTypeDeclaration, visibility);
-			this.println();
-			this.println();
-		}
-
-		private void printCollectionGetter(String propertyName, String collectionTypeDeclaration, String elementTypeDeclaration, String visibility) {
-			this.printVisibility(visibility);
-			this.printTypeDeclaration(collectionTypeDeclaration);
-			this.print('<');
-			this.printTypeDeclaration(elementTypeDeclaration);
-			this.print("> get");
-			this.print(StringTools.capitalize(propertyName));
-			this.print("() {");
-			this.println();
-
-			this.indent();
-				this.print("return this.");
-				this.print(propertyName);
-				this.print(';');
-				this.println();
-			this.undent();
-
-			this.print('}');
-		}
-
-		private void printCollectionSetter(String propertyName, String collectionTypeDeclaration, String elementTypeDeclaration, String visibility) {
-			this.printVisibility(visibility);
-			this.print("void set");
-			this.print(StringTools.capitalize(propertyName));
-			this.print('(');
-			this.printTypeDeclaration(collectionTypeDeclaration);
-			this.print('<');
-			this.printTypeDeclaration(elementTypeDeclaration);
-			this.print('>');
-			this.print(' ');
-			this.print(propertyName);
-			this.print(") {");
-			this.println();
-
-			this.indent();
-				this.print("this.");
-				this.print(propertyName);
-				this.print(" = ");
-				this.print(propertyName);
-				this.print(';');
-				this.println();
-			this.undent();
-
-			this.print('}');
-		}
-
-		public String source() {
-			return this.out.toString();
-		}
-
-		public int length() {
-			return ((StringWriter) this.out).getBuffer().length();
-		}
-
-	}
-
-
-	// ********** config **********
-
-	public static class Config {
-		private boolean convertToCamelCase = true;
-		private boolean propertyAccessType = false;  // as opposed to "field"
-		private String collectionTypeName = Set.class.getName();
-		private int fieldVisibility = Modifier.PRIVATE;
-		private int methodVisibility = Modifier.PUBLIC;
-		private boolean generateGettersAndSetters = true;
-		private boolean generateDefaultConstructor = true;
-		private boolean serializable = true;
-		private boolean generateSerialVersionUID = true;
-		private boolean generateEmbeddedIdForCompoundPK = true;  // as opposed to IdClass
-		private Map<Table, String> overrideEntityNames = new HashMap<Table, String>();
-
-		public static final int PRIVATE = 0;
-		public static final int PACKAGE = 1;
-		public static final int PROTECTED = 2;
-		public static final int PUBLIC = 3;
-
-
-		public boolean convertToCamelCase() {
-			return this.convertToCamelCase;
-		}
-		public void setConvertToCamelCase(boolean convertToCamelCase) {
-			this.convertToCamelCase = convertToCamelCase;
-		}
-
-		public boolean propertyAccessType() {
-			return this.propertyAccessType;
-		}
-		public void setPropertyAccessType(boolean propertyAccessType) {
-			this.propertyAccessType = propertyAccessType;
-		}
-
-		public boolean fieldAccessType() {
-			return ! this.propertyAccessType;
-		}
-		public void setFieldAccessType(boolean fieldAccessType) {
-			this.propertyAccessType = ! fieldAccessType;
-		}
-
-		public String getCollectionTypeName() {
-			return this.collectionTypeName;
-		}
-		public void setCollectionTypeName(String collectionTypeName) {
-			this.collectionTypeName = collectionTypeName;
-		}
-
-		public int getFieldVisibility() {
-			return this.fieldVisibility;
-		}
-		/** entity fields cannot be 'public' */
-		public void setFieldVisibility(int fieldVisibility) {
-			switch (fieldVisibility) {
-				case PRIVATE:
-				case PACKAGE:
-				case PROTECTED:
-					this.fieldVisibility = fieldVisibility;
-					break;
-				default:
-					throw new IllegalArgumentException("invalid field visibility: " + fieldVisibility);
-			}
-		}
-		String fieldVisibility() {
-			switch (this.fieldVisibility) {
-				case PRIVATE:
-					return "private";
-				case PACKAGE:
-					return "";
-				case PROTECTED:
-					return "protected";
-				default:
-					throw new IllegalStateException("invalid field visibility: " + this.fieldVisibility);
-			}
-		}
-
-		public int getMethodVisibility() {
-			return this.methodVisibility;
-		}
-		/** entity properties must be 'public' or 'protected' */
-		public void setMethodVisibility(int methodVisibility) {
-			switch (methodVisibility) {
-				case PROTECTED:
-				case PUBLIC:
-					this.methodVisibility = methodVisibility;
-					break;
-				default:
-					throw new IllegalArgumentException("invalid method visibility: " + methodVisibility);
-			}
-		}
-		String methodVisibility() {
-			switch (this.methodVisibility) {
-				case PROTECTED:
-					return "protected";
-				case PUBLIC:
-					return "public";
-				default:
-					throw new IllegalStateException("invalid method visibility: " + this.methodVisibility);
-			}
-		}
-
-		public boolean generateGettersAndSetters() {
-			return this.generateGettersAndSetters;
-		}
-		public void setGenerateGettersAndSetters(boolean generateGettersAndSetters) {
-			this.generateGettersAndSetters = generateGettersAndSetters;
-		}
-
-		public boolean generateDefaultConstructor() {
-			return this.generateDefaultConstructor;
-		}
-		public void setGenerateDefaultConstructor(boolean generateDefaultConstructor) {
-			this.generateDefaultConstructor = generateDefaultConstructor;
-		}
-
-		public boolean serializable() {
-			return this.serializable;
-		}
-		public void setSerializable(boolean serializable) {
-			this.serializable = serializable;
-		}
-
-		public boolean generateSerialVersionUID() {
-			return this.generateSerialVersionUID;
-		}
-		public void setGenerateSerialVersionUID(boolean generateSerialVersionUID) {
-			this.generateSerialVersionUID = generateSerialVersionUID;
-		}
-
-		public boolean generateEmbeddedIdForCompoundPK() {
-			return this.generateEmbeddedIdForCompoundPK;
-		}
-		public void setGenerateEmbeddedIdForCompoundPK(boolean generateEmbeddedIdForCompoundPK) {
-			this.generateEmbeddedIdForCompoundPK = generateEmbeddedIdForCompoundPK;
-		}
-
-		public boolean generateIdClassForCompoundPK() {
-			return ! this.generateEmbeddedIdForCompoundPK;
-		}
-		public void setGenerateIdClassForCompoundPK(boolean generateIdClassForCompoundPK) {
-			this.generateEmbeddedIdForCompoundPK = ! generateIdClassForCompoundPK;
-		}
-
-		/**
-		 * key = table
-		 * value = user-supplied override entity name
-		 */
-		public String getOverrideEntityName(Table table) {
-			return this.overrideEntityNames.get(table);
-		}
-		public void setOverrideEntityName(Table table, String overrideEntityName) {
-			this.overrideEntityNames.put(table, overrideEntityName);
-		}
-		public void clearOverrideEntityNames() {
-			this.overrideEntityNames.clear();
-		}
-		public void setOverrideEntityNames(Map<Table, String> overrideEntityNames) {
-			this.clearOverrideEntityNames();
-			for (Map.Entry<Table, String> entry : overrideEntityNames.entrySet()) {
-				this.setOverrideEntityName(entry.getKey(), entry.getValue());
-			}
-		}
-
-	}
-
-
-	// ********** config **********
-
-	public static interface OverwriteConfirmer {
-		/**
-		 * Return whether the entity generator should overwrite the specified
-		 * file.
-		 */
-		boolean overwrite(String className);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java
deleted file mode 100644
index f5b07dc..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenScope.java
+++ /dev/null
@@ -1,181 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-class GenScope {
-	private final Map<Table, GenTable> genTables = new HashMap<Table, GenTable>();
-
-	private IProgressMonitor progressMonitor;
-	
-	// ********** construction/initialization **********
-
-	GenScope(Collection<Table> tables, EntityGenerator.Config entityConfig, IProgressMonitor progressMonitor) {
-		super();
-		this.initialize(tables, entityConfig, progressMonitor);
-	}
-
-	private void checkCanceled() {
-		if (this.progressMonitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}		
-	}
-	
-	private void initialize(Collection<Table> tables, EntityGenerator.Config entityConfig, IProgressMonitor monitor) {
-		this.progressMonitor = monitor;
-		try {
-			this.progressMonitor.beginTask("", 1000);
-			this.buildGenTables(tables, entityConfig);
-			checkCanceled();
-			this.configureManyToManyRelations();
-			checkCanceled();
-			this.configureManyToOneRelations();
-			checkCanceled();
-			this.configureFieldNames();
-			checkCanceled();
-		}
-		finally {
-			this.progressMonitor.done();
-		}
-	}
-
-	private void buildGenTables(Collection<Table> tables, EntityGenerator.Config entityConfig) {
-		int size = tables.size();
-		// pass around a growing list of the entity names so we can avoid duplicates
-		Set<String> entityNames = new HashSet<String>(size);
-		for (Table table : tables) {
-			this.buildGenTable(table, entityConfig, entityNames);
-			this.progressMonitor.worked(50/size);
-		}
-	}
-
-	private void buildGenTable(Table table, EntityGenerator.Config entityConfig, Collection<String> entityNames) {
-		this.genTables.put(table, new GenTable(this, table, entityConfig, entityNames));
-	}
-
-	/**
-	 * find all the "join" tables
-	 */
-	private void configureManyToManyRelations() {
-		int tablesSize = CollectionTools.size(this.tables());
-
-		//first time takes the longest, should we take that into account?
-		for (Iterator<GenTable> stream = this.tables(); stream.hasNext(); ) {
-			checkCanceled();
-			stream.next().configureManyToManyRelations();
-			this.progressMonitor.worked(750/tablesSize);
-		}
-		// revert any "join" table that is referenced by another table back to an "entity" table
-		Set<GenTable> referencedTables = this.buildReferencedTables();
-		tablesSize = CollectionTools.size(this.joinTables());
-		for (Iterator<GenTable> stream = this.joinTables(); stream.hasNext(); ) {
-			GenTable joinGenTable = stream.next();
-			if (referencedTables.contains(joinGenTable)) {
-				joinGenTable.clearJoinTableRelation();
-			}
-			this.progressMonitor.worked(50/tablesSize);
-		}
-	}
-
-	/**
-	 * find all the many-to-one and one-to-many relations
-	 */
-	private void configureManyToOneRelations() {
-		int tablesSize = CollectionTools.size(this.entityTables());
-		for (Iterator<GenTable> stream = this.entityTables(); stream.hasNext(); ) {
-			stream.next().configureManyToOneRelations();
-			this.progressMonitor.worked(50/tablesSize);
-		}
-	}
-
-	/**
-	 * determine all the Java field names up-front because we will
-	 * need them for things like 'mappedBy' annotation elements
-	 */
-	private void configureFieldNames() {
-		int tablesSize = CollectionTools.size(this.entityTables());
-		for (Iterator<GenTable> stream = this.entityTables(); stream.hasNext(); ) {
-			stream.next().configureFieldNames();
-			this.progressMonitor.worked(50/tablesSize);
-		}
-	}
-
-
-	// ********** package API **********
-
-	/**
-	 * return only the gen tables that are suitable for generating
-	 * entities (i.e. exclude the "join" tables)
-	 */
-	Iterator<GenTable> entityTables() {
-		return new FilteringIterator<GenTable>(this.tables()) {
-			@Override
-			protected boolean accept(Object next) {
-				return ! ((GenTable) next).isJoinTable();
-			}
-		};
-	}
-
-	int numEntityTables() {
-		return CollectionTools.size(entityTables());
-	}
-	
-	/**
-	 * return the gen table corresponding to the specified table
-	 */
-	GenTable genTable(Table table) {
-		return this.genTables.get(table);
-	}
-
-
-	// ********** internal API **********
-
-	private Iterator<GenTable> tables() {
-		return this.genTables.values().iterator();
-	}
-
-	/**
-	 * return only the "join" gen tables
-	 */
-	private Iterator<GenTable> joinTables() {
-		return new FilteringIterator<GenTable>(this.tables()) {
-			@Override
-			protected boolean accept(Object next) {
-				return ((GenTable) next).isJoinTable();
-			}
-		};
-	}
-
-	/**
-	 * build a set of the tables that are referenced by other tables
-	 * in the scope
-	 */
-	private Set<GenTable> buildReferencedTables() {
-		int size = CollectionTools.size(this.tables());
-		Set<GenTable> referencedTables = new HashSet<GenTable>(this.genTables.size());
-		for (Iterator<GenTable> stream = this.tables(); stream.hasNext(); ) {
-			stream.next().addReferencedTablesTo(referencedTables);
-			this.progressMonitor.worked(50/size);
-		}
-		return referencedTables;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenTable.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenTable.java
deleted file mode 100644
index ea7fd3d..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/GenTable.java
+++ /dev/null
@@ -1,342 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jpt.db.internal.Column;
-import org.eclipse.jpt.db.internal.ForeignKey;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.NameTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-/**
- * associate a table with the various relations that will be used when
- * generating the entity
- */
-class GenTable {
-	private final GenScope scope;
-	private final Table table;
-	private final EntityGenerator.Config entityConfig;
-	private final String entityName;
-	private ManyToManyRelation joinTableRelation;
-	private Collection<ManyToManyRelation> ownedManyToManyRelations = new ArrayList<ManyToManyRelation>();
-	private Collection<ManyToManyRelation> nonOwnedManyToManyRelations = new ArrayList<ManyToManyRelation>();
-	private Collection<ManyToOneRelation> manyToOneRelations = new ArrayList<ManyToOneRelation>();
-	private Collection<OneToManyRelation> oneToManyRelations = new ArrayList<OneToManyRelation>();
-	private Set<Column> foreignKeyColumns = new HashSet<Column>();
-
-	// key=column/relation; value=name
-	private final Map<Object, String> fieldNames = new HashMap<Object, String>();
-
-	private static final Object EMBEDDED_ID_VIRTUAL_COLUMN = new Object();
-
-
-	// ********** construction/initialization **********
-
-	GenTable(GenScope scope, Table table, EntityGenerator.Config entityConfig, Collection<String> entityNames) {
-		super();
-		this.scope = scope;
-		this.table = table;
-		this.entityConfig = entityConfig;
-		this.entityName = this.buildEntityName(entityNames);
-	}
-
-	private String buildEntityName(Collection<String> entityNames) {
-		String name = this.table.shortJavaClassName();
-		String overrideEntityName = this.entityConfig.getOverrideEntityName(this.table);
-		if (overrideEntityName == null) {
-			if (this.entityConfig.convertToCamelCase()) {
-				name = StringTools.convertUnderscoresToCamelCase(name);
-			}
-		} else {
-			name = overrideEntityName;
-		}
-		name = NameTools.uniqueNameForIgnoreCase(name, entityNames);
-		entityNames.add(name);
-		return name;
-	}
-
-
-	// ********** package API **********
-
-	/**
-	 * determine whether the table is a "join" table within the table's scope
-	 */
-	void configureManyToManyRelations() {
-		if (this.table.foreignKeysSize() != 2) {
-			// the table must have exactly 2 foreign keys
-			return;
-		}
-		for (Iterator<Column> stream = this.table.columns(); stream.hasNext(); ) {
-			if ( ! this.table.foreignKeyColumnsContains(stream.next())) {
-				// all the table's columns must belong to one (or both) of the 2 foreign keys
-				return;
-			}
-		}
-		Iterator<ForeignKey> fKeys = this.table.foreignKeys();
-		ForeignKey owningFK = fKeys.next();
-		ForeignKey nonOwningFK = fKeys.next();
-		GenTable owningTable = this.scope.genTable(owningFK.getReferencedTable());
-		GenTable nonOwningTable = this.scope.genTable(nonOwningFK.getReferencedTable());
-		if ((owningTable == null) || (nonOwningTable == null)) {
-			// both tables must be in the scope
-			return;
-		}
-		this.joinTableRelation = new ManyToManyRelation(this, owningFK, owningTable, nonOwningFK, nonOwningTable);
-	}
-
-	void addReferencedTablesTo(Set<GenTable> referencedTables) {
-		for (Iterator<ForeignKey> stream = this.table.foreignKeys(); stream.hasNext(); ) {
-			ForeignKey fk = stream.next();
-			GenTable genTable = this.scope.genTable(fk.getReferencedTable());
-			if (genTable != null) {
-				referencedTables.add(genTable);
-			}
-		}
-	}
-
-	void clearJoinTableRelation() {
-		this.joinTableRelation.clear();
-		this.joinTableRelation = null;
-	}
-
-	/**
-	 * find "in-scope" foreign keys
-	 */
-	void configureManyToOneRelations() {
-		for (Iterator<ForeignKey> stream = this.table.foreignKeys(); stream.hasNext(); ) {
-			ForeignKey fk = stream.next();
-			GenTable referencedtable = this.scope.genTable(fk.getReferencedTable());
-			if (referencedtable == null) {
-				continue;  // skip to next FK
-			}
-			this.manyToOneRelations.add(new ManyToOneRelation(this, fk, referencedtable));
-		}
-	}
-
-	/**
-	 * now that all the relations are in place, we can configure the Java
-	 * field names
-	 */
-	void configureFieldNames() {
-		Set<Column> columns = CollectionTools.set(this.table.columns());
-		if ((this.table.primaryKeyColumnsSize() > 1) && this.entityConfig.generateEmbeddedIdForCompoundPK()) {
-			// if we are going to generate an EmbeddedId field, add it to
-			// 'fieldNames' so we don't collide with it later, when generating
-			// field names for the columns etc.
-			this.configureFieldName(EMBEDDED_ID_VIRTUAL_COLUMN, "pk");
-		}
-		this.configureManyToOneFieldNames(columns);
-		this.configureBasicFieldNames(columns);
-		this.configureOneToManyFieldNames();
-		this.configureOwnedManyToManyFieldNames();
-		this.configureNonOwnedManyToManyFieldNames();
-	}
-
-	/**
-	 * return the columns that are part of the table's primary key
-	 * but are also part of an "in-scope" foreign key
-	 */
-	public Iterator<Column> readOnlyPrimaryKeyColumns() {
-		return new FilteringIterator<Column>(this.table.primaryKeyColumns()) {
-			@Override
-			protected boolean accept(Object column) {
-				return GenTable.this.foreignKeyColumnsContains((Column) column);
-			}
-		};
-	}
-
-	/**
-	 * return the columns that are part of the table's primary key
-	 * but are NOT part of any "in-scope" foreign key
-	 */
-	Iterator<Column> writablePrimaryKeyColumns() {
-		return new FilteringIterator<Column>(this.table.primaryKeyColumns()) {
-			@Override
-			protected boolean accept(Object column) {
-				return ! GenTable.this.foreignKeyColumnsContains((Column) column);
-			}
-		};
-	}
-
-	/**
-	 * return the columns that NEITHER part of the table's primary key
-	 * NOR part of any foreign key
-	 */
-	public Iterator<Column> nonPrimaryKeyBasicColumns() {
-		return new FilteringIterator<Column>(this.table.columns()) {
-			@Override
-			protected boolean accept(Object column) {
-				return ! (GenTable.this.primaryKeyColumnsContains((Column) column)
-						|| GenTable.this.foreignKeyColumnsContains((Column) column));
-			}
-		};
-	}
-
-	Table getTable() {
-		return this.table;
-	}
-
-	String getEntityName() {
-		return this.entityName;
-	}
-
-	boolean isJoinTable() {
-		return this.joinTableRelation != null;
-	}
-
-	void addOwnedManyToManyRelation(ManyToManyRelation relation) {
-		this.ownedManyToManyRelations.add(relation);
-	}
-
-	void removeOwnedManyToManyRelation(ManyToManyRelation relation) {
-		this.ownedManyToManyRelations.remove(relation);
-	}
-
-	void addNonOwnedManyToManyRelation(ManyToManyRelation relation) {
-		this.nonOwnedManyToManyRelations.add(relation);
-	}
-
-	void removeNonOwnedManyToManyRelation(ManyToManyRelation relation) {
-		this.nonOwnedManyToManyRelations.remove(relation);
-	}
-
-	void addOneToManyRelation(OneToManyRelation relation) {
-		this.oneToManyRelations.add(relation);
-	}
-
-	String javaFieldName() {
-		return this.table.javaFieldName();
-	}
-
-	Iterator<ManyToOneRelation> manyToOneRelations() {
-		return this.manyToOneRelations.iterator();
-	}
-
-	Iterator<OneToManyRelation> oneToManyRelations() {
-		return this.oneToManyRelations.iterator();
-	}
-
-	Iterator<ManyToManyRelation> ownedManyToManyRelations() {
-		return this.ownedManyToManyRelations.iterator();
-	}
-
-	Iterator<ManyToManyRelation> nonOwnedManyToManyRelations() {
-		return this.nonOwnedManyToManyRelations.iterator();
-	}
-
-	/**
-	 * the key can be a column or relation
-	 */
-	private String fieldNameForInternal(Object o) {
-		return this.fieldNames.get(o);
-	}
-
-	/**
-	 * this will return null if we don't want an embedded id field
-	 */
-	String fieldNameForEmbeddedId() {
-		return this.fieldNameForInternal(EMBEDDED_ID_VIRTUAL_COLUMN);
-	}
-
-	String fieldNameFor(Column column) {
-		return this.fieldNameForInternal(column);
-	}
-
-	String fieldNameFor(ManyToOneRelation relation) {
-		return this.fieldNameForInternal(relation);
-	}
-
-	String fieldNameFor(OneToManyRelation relation) {
-		return this.fieldNameForInternal(relation);
-	}
-
-	String fieldNameFor(ManyToManyRelation relation) {
-		return this.fieldNameForInternal(relation);
-	}
-
-	String name() {
-		return this.table.getName();
-	}
-
-
-	// ********** internal API **********
-
-	/**
-	 * while we are figuring out the names for the m:1 fields, remove from the
-	 * specified set of columns the columns that are only part of the foreign keys
-	 */
-	private void configureManyToOneFieldNames(Set<Column> columns) {
-		for (ManyToOneRelation relation : this.manyToOneRelations) {
-			CollectionTools.removeAll(columns, relation.getForeignKey().nonPrimaryKeyBaseColumns());
-			CollectionTools.addAll(this.foreignKeyColumns, relation.getForeignKey().baseColumns());
-			relation.setMappedBy(this.configureFieldName(relation, relation.javaFieldName()));
-		}
-	}
-
-	private String configureFieldName(Object o, String fieldName) {
-		fieldName = this.camelCase(fieldName);
-		fieldName = NameTools.uniqueNameFor(fieldName, this.fieldNames.values());
-		this.fieldNames.put(o, fieldName);
-		return fieldName;
-	}
-
-	private String camelCase(String name) {
-		return this.entityConfig.convertToCamelCase() ?
-			StringTools.convertUnderscoresToCamelCase(name, false)  // false = don't capitalize first letter
-		:
-			name;
-	}
-
-	/**
-	 * build a unique field name for the specified "basic" columns,
-	 * checking for name collisions
-	 */
-	private void configureBasicFieldNames(Set<Column> columns) {
-		for (Column column : columns) {
-			this.configureFieldName(column, column.javaFieldName());
-		}
-	}
-
-	private void configureOneToManyFieldNames() {
-		for (OneToManyRelation relation : this.oneToManyRelations) {
-			this.configureFieldName(relation, relation.javaFieldName());
-		}
-	}
-
-	private void configureOwnedManyToManyFieldNames() {
-		for (ManyToManyRelation relation : this.ownedManyToManyRelations) {
-			relation.setMappedBy(this.configureFieldName(relation, relation.javaFieldNameFor(this)));
-		}
-	}
-
-	private void configureNonOwnedManyToManyFieldNames() {
-		for (ManyToManyRelation relation : this.nonOwnedManyToManyRelations) {
-			this.configureFieldName(relation, relation.javaFieldNameFor(this));
-		}
-	}
-
-	boolean foreignKeyColumnsContains(Column column) {
-		return this.foreignKeyColumns.contains(column);
-	}
-
-	boolean primaryKeyColumnsContains(Column column) {
-		return this.table.primaryKeyColumnsContains(column);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToManyRelation.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToManyRelation.java
deleted file mode 100644
index d876087..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToManyRelation.java
+++ /dev/null
@@ -1,104 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import org.eclipse.jpt.db.internal.ForeignKey;
-
-/**
- * This object is shared by the two gen tables that make up the relation.
- * Upon construction, 'mappedBy' will be 'null'. The first gen table to be
- * used to generate an entity will fill in 'mappedBy' with the appropriate
- * field/property name.
- */
-class ManyToManyRelation {
-	private final GenTable joinTable;
-	private final ForeignKey owningForeignKey;
-	private final GenTable owningTable;
-	private final ForeignKey nonOwningForeignKey;
-	private final GenTable nonOwningTable;
-	private String mappedBy;
-
-
-	ManyToManyRelation(GenTable joinTable, ForeignKey owningForeignKey, GenTable owningTable, ForeignKey nonOwningForeignKey, GenTable nonOwningTable) {
-		super();
-		this.joinTable = joinTable;
-
-		this.owningForeignKey = owningForeignKey;
-		this.owningTable = owningTable;
-		owningTable.addOwnedManyToManyRelation(this);
-
-		this.nonOwningForeignKey = nonOwningForeignKey;
-		this.nonOwningTable = nonOwningTable;
-		nonOwningTable.addNonOwnedManyToManyRelation(this);
-	}
-
-	GenTable getJoinTable() {
-		return this.joinTable;
-	}
-
-	ForeignKey getOwningForeignKey() {
-		return this.owningForeignKey;
-	}
-
-	GenTable getOwningTable() {
-		return this.owningTable;
-	}
-
-	ForeignKey getNonOwningForeignKey() {
-		return this.nonOwningForeignKey;
-	}
-
-	GenTable getNonOwningTable() {
-		return this.nonOwningTable;
-	}
-
-	private GenTable otherTable(GenTable table) {
-		return (table == this.owningTable) ? this.nonOwningTable : this.owningTable;
-	}
-
-	String javaFieldNameFor(GenTable table) {
-		// TODO i18n?
-		return this.otherTable(table).javaFieldName() + "_collection";
-	}
-
-	void clear() {
-		this.owningTable.removeOwnedManyToManyRelation(this);
-		this.nonOwningTable.removeNonOwnedManyToManyRelation(this);
-	}
-
-	String getMappedBy() {
-		return this.mappedBy;
-	}
-
-	void setMappedBy(String mappedBy) {
-		this.mappedBy = mappedBy;
-	}
-
-	String owningEntityName() {
-		return this.owningTable.getEntityName();
-	}
-
-	String nonOwningEntityName() {
-		return this.nonOwningTable.getEntityName();
-	}
-
-	boolean joinTableNameIsDefault() {
-		return this.joinTable.name().equals(this.getOwningTable().name() + "_" + this.getNonOwningTable().name());
-	}
-
-	boolean joinColumnsIsDefaultFor(String javaFieldName) {
-		return this.owningForeignKey.isDefaultFor(javaFieldName);
-	}
-
-	boolean inverseJoinColumnsIsDefaultFor(String javaFieldName) {
-		return this.nonOwningForeignKey.isDefaultFor(javaFieldName);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToOneRelation.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToOneRelation.java
deleted file mode 100644
index 333018d..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/ManyToOneRelation.java
+++ /dev/null
@@ -1,61 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import org.eclipse.jpt.db.internal.ForeignKey;
-
-class ManyToOneRelation {
-	private final GenTable baseTable;  // the "many" side
-	private final ForeignKey foreignKey;
-	private final GenTable referencedTable;  // the "one" side
-	private String mappedBy;
-
-
-	ManyToOneRelation(GenTable baseTable, ForeignKey foreignKey, GenTable referencedTable) {
-		super();
-		this.baseTable = baseTable;
-		this.foreignKey = foreignKey;
-		this.referencedTable = referencedTable;
-		referencedTable.addOneToManyRelation(new OneToManyRelation(this));
-	}
-
-	GenTable getBaseTable() {
-		return this.baseTable;
-	}
-
-	ForeignKey getForeignKey() {
-		return this.foreignKey;
-	}
-
-	GenTable getReferencedTable() {
-		return this.referencedTable;
-	}
-
-	String javaFieldName() {
-		return this.foreignKey.javaFieldName();
-	}
-
-	String getMappedBy() {
-		return this.mappedBy;
-	}
-
-	void setMappedBy(String mappedBy) {
-		this.mappedBy = mappedBy;
-	}
-
-	String baseEntityName() {
-		return this.baseTable.getEntityName();
-	}
-
-	String referencedEntityName() {
-		return this.referencedTable.getEntityName();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/OneToManyRelation.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/OneToManyRelation.java
deleted file mode 100644
index 4656d00..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/OneToManyRelation.java
+++ /dev/null
@@ -1,37 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-class OneToManyRelation {
-	private final ManyToOneRelation manyToOneRelation;
-
-	OneToManyRelation(ManyToOneRelation manyToOneRelation) {
-		super();
-		this.manyToOneRelation = manyToOneRelation;
-	}
-
-	ManyToOneRelation getManyToOneRelation() {
-		return this.manyToOneRelation;
-	}
-
-	String javaFieldName() {
-		// TODO i18n?
-		return this.manyToOneRelation.getBaseTable().javaFieldName() + "_collection";
-	}
-
-	String mappedBy() {
-		return this.manyToOneRelation.getMappedBy();
-	}
-
-	String referencedEntityName() {
-		return this.manyToOneRelation.baseEntityName();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java b/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java
deleted file mode 100644
index eb74550..0000000
--- a/jpa/plugins/org.eclipse.jpt.gen/src/org/eclipse/jpt/gen/internal/PackageGenerator.java
+++ /dev/null
@@ -1,97 +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
- ******************************************************************************/
-package org.eclipse.jpt.gen.internal;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.gen.internal.EntityGenerator.OverwriteConfirmer;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * This generator will generate a package of entities for a set of tables.
- */
-public class PackageGenerator {
-	private final Config config;
-	private final EntityGenerator.Config entityConfig;
-	private final GenScope scope;
-	private final OverwriteConfirmer overwriteConfirmer;
-	private final IProgressMonitor monitor;
-
-	// ********** public API **********
-
-	public static void generateEntities(Config config, EntityGenerator.Config entityConfig, Collection<Table> tables, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) {
-		if ((config == null) || (entityConfig == null) || (tables == null)) {
-			throw new NullPointerException();
-		}
-		try {
-			monitor.beginTask("", 1000);
-			new PackageGenerator(config, entityConfig, tables, overwriteConfirmer, monitor).generateEntities();
-		}
-		finally {
-			monitor.done();
-		}
-	}
-
-
-	// ********** construction/initialization **********
-
-	private PackageGenerator(Config config, EntityGenerator.Config entityConfig, Collection<Table> tables, OverwriteConfirmer overwriteConfirmer, IProgressMonitor monitor) {
-		super();
-		this.config = config;
-		this.entityConfig = entityConfig;
-		this.scope = new GenScope(tables, entityConfig, new SubProgressMonitor(monitor, 800));
-		this.overwriteConfirmer = overwriteConfirmer;
-		this.monitor = monitor;
-	}
-
-
-	// ********** generation **********
-
-	private void generateEntities() {
-		int size = this.scope.numEntityTables();
-		int ticks = 200/size;
-		for (Iterator<GenTable> stream = this.scope.entityTables(); stream.hasNext(); ) {
-			checkCanceled();
-			this.buildEntity(stream.next(), new SubProgressMonitor(this.monitor, ticks));
-		}
-	}
-
-	private void checkCanceled() {
-		if (this.monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}		
-	}
-	
-
-	private void buildEntity(GenTable genTable, IProgressMonitor monitor) {
-		EntityGenerator.generateEntity(this.entityConfig, this.config.getPackageFragment(), genTable, overwriteConfirmer, monitor);
-	}
-
-
-	// ********** config **********
-
-	public static class Config {
-		private IPackageFragment packageFragment;
-
-		public IPackageFragment getPackageFragment() {
-			return this.packageFragment;
-		}
-		public void setPackageFragment(IPackageFragment packageFragment) {
-			this.packageFragment = packageFragment;
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.classpath b/jpa/plugins/org.eclipse.jpt.ui/.classpath
deleted file mode 100644
index 5ee7c76..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="property_files"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jst/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.cvsignore b/jpa/plugins/org.eclipse.jpt.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.project b/jpa/plugins/org.eclipse.jpt.ui/.project
deleted file mode 100644
index 50ef9e3..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 8f3899b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:25 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d909c10..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:55:01 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index c1121a8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,58 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.ui;singleton:=true
-Bundle-Version: 1.0.1.qualifier
-Bundle-Activator: org.eclipse.jpt.ui.internal.JptUiPlugin
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.draw2d,
- org.eclipse.emf.edit.ui,
- org.eclipse.jdt.core,
- org.eclipse.jdt.ui,
- org.eclipse.jem,
- org.eclipse.jface.text,
- org.eclipse.jpt.core,
- org.eclipse.jpt.db,
- org.eclipse.jpt.db.ui,
- org.eclipse.jpt.gen,
- org.eclipse.jpt.utility,
- org.eclipse.jst.j2ee.ui,
- org.eclipse.ui.ide,
- org.eclipse.ui.views.properties.tabbed,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.wst.common.frameworks,
- org.eclipse.wst.common.frameworks.ui,
- org.eclipse.wst.common.modulecore,
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.ui,
- org.eclipse.wst.sse.ui,
- org.eclipse.wst.web.ui
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jpt.ui.internal; x-internal:=true,
- org.eclipse.jpt.ui.internal.actions; x-internal:=true,
- org.eclipse.jpt.ui.internal.details; x-internal:=true,
- org.eclipse.jpt.ui.internal.dialogs; x-internal:=true,
- org.eclipse.jpt.ui.internal.generic; x-internal:=true,
- org.eclipse.jpt.ui.internal.java.details; x-internal:=true,
- org.eclipse.jpt.ui.internal.java.mappings.properties; x-internal:=true,
- org.eclipse.jpt.ui.internal.java.structure; x-internal:=true,
- org.eclipse.jpt.ui.internal.jface; x-internal:=true,
- org.eclipse.jpt.ui.internal.mappings; x-internal:=true,
- org.eclipse.jpt.ui.internal.mappings.details; x-internal:=true,
- org.eclipse.jpt.ui.internal.perspective; x-internal:=true,
- org.eclipse.jpt.ui.internal.prefs; x-internal:=true,
- org.eclipse.jpt.ui.internal.properties; x-internal:=true,
- org.eclipse.jpt.ui.internal.selection; x-internal:=true,
- org.eclipse.jpt.ui.internal.structure; x-internal:=true,
- org.eclipse.jpt.ui.internal.util; x-internal:=true,
- org.eclipse.jpt.ui.internal.views; x-internal:=true,
- org.eclipse.jpt.ui.internal.widgets; x-internal:=true,
- org.eclipse.jpt.ui.internal.wizards; x-internal:=true,
- org.eclipse.jpt.ui.internal.xml; x-internal:=true,
- org.eclipse.jpt.ui.internal.xml.details; x-internal:=true,
- org.eclipse.jpt.ui.internal.xml.structure; x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.ui/about.html b/jpa/plugins/org.eclipse.jpt.ui/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>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>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/build.properties b/jpa/plugins/org.eclipse.jpt.ui/build.properties
deleted file mode 100644
index b1a1c37..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-source.. = src/,\
-               property_files/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               icons/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.ui/component.xml b/jpa/plugins/org.eclipse.jpt.ui/component.xml
deleted file mode 100644
index 36827b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.ui"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.ui" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif
deleted file mode 100644
index 633768f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/dtool16/new_jpaproject_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif
deleted file mode 100644
index c0ab917..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/jpa_facet.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif
deleted file mode 100644
index 12da807..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/etool16/new_jpaproject_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif
deleted file mode 100644
index 3280138..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_details.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif
deleted file mode 100644
index c0ab917..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_perspective.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif
deleted file mode 100644
index 682c90a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/eview16/jpa_structure.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif
deleted file mode 100644
index a547d74..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/basic.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif
deleted file mode 100644
index 8856f78..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embeddable.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif
deleted file mode 100644
index c1c8e21..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded-id.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif
deleted file mode 100644
index c2ae664..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/embedded.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif
deleted file mode 100644
index c349c96..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity-mappings.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif
deleted file mode 100644
index d606f48..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/entity.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif
deleted file mode 100644
index a205ec3..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/id.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif
deleted file mode 100644
index 48885b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-many.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif
deleted file mode 100644
index 2e1e2b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/many-to-one.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif
deleted file mode 100644
index 8cc3764..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/mapped-superclass.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif
deleted file mode 100644
index 70a9c23..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-attribute-mapping.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif
deleted file mode 100644
index 6279478..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/null-type-mapping.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif
deleted file mode 100644
index 1e90027..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-many.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif
deleted file mode 100644
index 578ec36..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/one-to-one.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif
deleted file mode 100644
index 9cc45f6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence-unit.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif
deleted file mode 100644
index d1f616d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/persistence.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif
deleted file mode 100644
index cc5d83d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/transient.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif
deleted file mode 100644
index 202a810..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/version.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif
deleted file mode 100644
index 8ce181f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/icons/full/wizban/jpa_facet_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
deleted file mode 100644
index be47f40..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/plugin.properties
+++ /dev/null
@@ -1,50 +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 API Tools - UI
-providerName=Eclipse.org
-
-JPA_PLATFORM="JPA Platform UI"
-
-
-jpaWizardCategoryName = JPA
-newJpaProjectWizardName = JPA Project
-newJpaProjectWizardDesc = Create a JPA project
-
-jpaMenuName = JPA Tools
-generateEntities = Generate Entities...
-generateDDL = Generate DDL...
-synchronizeClasses = Synchronize Classes
-addPersistentClass = Add persistent class ...
-removePersistentClass = Remove persistent class
-addPersistentAttributeToXml = Add persistent attribute to XML
-addPersistentAttributeToXmlAndMap = Add persistent attribute to XML ...
-removePersistentAttributeFromXml = Remove persistent attribute from XML
-
-jpaPreferencePage = JPA
-
-jpaProjectPropertiesPage = JPA
-
-jpaPerspective = JPA Development
-jpaDetails = JPA Details
-jpaStructure = JPA Structure
-
-JpaProposalCategory = JPA Proposals
diff --git a/jpa/plugins/org.eclipse.jpt.ui/plugin.xml b/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
deleted file mode 100644
index 12561ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties
deleted file mode 100644
index 48b8ad8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui.properties
+++ /dev/null
@@ -1,81 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 Oracle. - initial API and implementation
-###############################################################################
-
-AddPersistentAttributeDialog_title=Add Persistent Attribute
-AddPersistentAttributeDialog_attributeLabel=Attribute:
-AddPersistentAttributeDialog_mappingLabel=Map as:
-AddPersistentAttributeDialog_noMappingKeyError=You must specify a mapping type
-
-AddPersistentClassDialog_title=Add Persistent Class
-AddPersistentClassDialog_classLabel=Class:
-AddPersistentClassDialog_classDialog_title=Persistent Class Selection
-AddPersistentClassDialog_classDialog_message=Choose a class:
-AddPersistentClassDialog_mappingLabel=Map as:
-AddPersistentClassDialog_noClassError=You must specify a class
-AddPersistentClassDialog_duplicateClassWarning=File already contains that persistent class
-AddPersistentClassDialog_classNotFoundWarning=Cannot resolve class
-AddPersistentClassDialog_noMappingKeyError=You must specify a mapping type
-
-DatabaseReconnectWizardPage_database=Database Settings
-DatabaseReconnectWizardPage_databaseConnection=Database Connection
-DatabaseReconnectWizardPage_reconnectToDatabase=Reconnect to the database.
-DatabaseReconnectWizardPage_connection=Connection:
-DatabaseReconnectWizardPage_schema=Schema:
-DatabaseReconnectWizardPage_schemaInfo=(Note:  Must have active connection to select schema)
-DatabaseReconnectWizardPage_addConnectionLink=<a>Add connections...</a>
-DatabaseReconnectWizardPage_reconnectLink=<a>Reconnect...</a>
-
-General_browse=Browse...
-General_deselectAll=Deselect All
-General_selectAll=Select All
-
-GenerateEntitiesWizard_generateEntities=Generate Entities
-GenerateEntitiesWizardPage_chooseEntityTable=Choose tables to generate entities from.
-GenerateEntitiesWizardPage_generateEntities=Generate Entities from Tables
-GenerateEntitiesWizardPage_synchronizeClasses=Synchronize Classes in persistence.xml
-GenerateEntitiesWizardPage_tables=Tables:
-GenerateEntitiesWizardPage_tableColumn=Table
-GenerateEntitiesWizardPage_entityNameColumn=Entity Name
-
-GenericPlatformUiDialog_notSupportedMessageTitle=DDL Generation
-GenericPlatformUiDialog_notSupportedMessageText=DDL Generation is not supported by the Generic Platform.
-
-JpaPreferencePage_defaultJpaLib=Default JPA implementation library:
-JpaPreferencePage_userLibsLink=<a>Configure user libraries ...</a>
-JpaPreferencePage_invalidJpaLib=Invalid Library:  Must contain javax.persistence classes.
-
-JpaStructureView_viewNotAvailable=Structure is not available for the current selection.
-JpaStructureView_linkWithEditorText=Link with Editor
-JpaStructureView_linkWithEditorDesc=Link with Active Editor
-JpaStructureView_linkWithEditorTooltip=Link with Editor
-
-JpaDetailsView_viewNotAvailable=Details are not available for the current selection.
-
-NewJpaProjectWizard_title=New JPA Project
-NewJpaProjectWizard_firstPage_title=JPA Project
-NewJpaProjectWizard_firstPage_description=Configure JPA project settings.
-
-JpaFacetWizardPage_title=JPA Facet
-JpaFacetWizardPage_description=Configure JPA settings.
-JpaFacetWizardPage_platformLabel=Platform
-JpaFacetWizardPage_connectionLabel=Connection
-JpaFacetWizardPage_connectionLink=<a>Add connection ...</a>
-JpaFacetWizardPage_jpaImplementationLabel=JPA implementation
-JpaFacetWizardPage_userServerLibLabel=Use implementation provided by server runtime
-JpaFacetWizardPage_specifyLibLabel=Use implementation library:
-JpaFacetWizardPage_jpaPrefsLink=<a>Configure default JPA implementation library ...</a>
-JpaFacetWizardPage_userLibsLink=<a>Configure user libraries ...</a>
-JpaFacetWizardPage_persistentClassManagementLabel=Persistent class management
-JpaFacetWizardPage_discoverClassesButton=Discover annotated classes automatically
-JpaFacetWizardPage_listClassesButton=Annotated classes must be listed in persistence.xml
-JpaFacetWizardPage_createOrmXmlButton=Create orm.xml
-
-PersistentAttributePage_mapAs=Map As:
-
-PersistentTypePage_mapAs=Map As:
-
-OverwriteConfirmerDialog_title=Overwrite Existing Class
-OverwriteConfirmerDialog_text=Overwrite source code for the class ''{0}''?
-
-EntitiesGenerator_jobName=Generating Entities
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties
deleted file mode 100644
index d8d63ae..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties
+++ /dev/null
@@ -1,185 +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
-############################################################################### 
-
-PersistentTypePage_EntityLabel=Entity
-PersistentTypePage_EmbeddableLabel=Embeddable
-PersistentTypePage_MappedSuperclassLabel=Mapped Superclass
-
-PersistentAttributePage_BasicLabel=Basic
-PersistentAttributePage_IdLabel=Id
-PersistentAttributePage_OneToManyLabel=One to Many
-PersistentAttributePage_ManyToOneLabel=Many to One
-PersistentAttributePage_ManyToManyLabel=Many to Many
-PersistentAttributePage_TransientLabel=Transient
-PersistentAttributePage_VersionLabel=Version
-PersistentAttributePage_EmbeddedLabel=Embedded
-PersistentAttributePage_EmbeddedIdLabel=Embedded Id
-PersistentAttributePage_OneToOneLabel=One to One
-
-EntityComposite_tableDefault=Default ({0})
-EntityComposite_tableNoDefaultSpecified=Default ()
-EntityComposite_inheritance=Inheritance
-
-EntityGeneralSection_nameDefaultWithOneParam=Default ({0})
-EntityGeneralSection_nameDefaultEmpty=Default ()
-EntityGeneralSection_name=Name:
-
-BasicGeneralSection_name=Name:
-BasicGeneralSection_nameDefault=Default ({0})
-BasicGeneralSection_fetchLabel=Fetch:
-BasicGeneralSection_optionalLabel=Optional:
-BasicGeneralSection_lobLabel=Lob
-BasicGeneralSection_temporalLabel=Temporal:
-BasicGeneralSection_enumeratedLabel=Enumerated:
-
-TableChooser_label=Name:
-CatalogChooser_label=Catalog:
-SchemaChooser_label=Schema:
-TableComposite_tableSection=Table:
-TableComposite_defaultEmpty=Default ()
-TableComposite_defaultWithOneParam=Default ({0})
-
-ColumnChooser_label=Name:
-ColumnTableChooser_label=Table:
-
-TargetEntityChooser_label=Target Entity:
-TargetEntityChooser_defaultEmpty=Default ()
-TargetEntityChooser_defaultWithOneParam=Default ({0})
-TargetEntityChooser_browse=Browse...
-
-NonOwningMapping_mappedByLabel=Mapped By:
-
-JoinTableComposite_add=Add...
-JoinTableComposite_defaultEmpty=Default()
-JoinTableComposite_defaultWithOneParam=Default ({0})
-JoinTableComposite_edit=Edit...
-JoinTableComposite_inverseJoinColumn=Inverse Join Columns
-
-JoinTableComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
-JoinTableComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
-JoinTableComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
-JoinTableComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
-JoinTableComposite_mappingBetweenTwoParams={0} -> {1}
-JoinTableComposite_joinColumn=Join Columns
-JoinTableComposite_name=Name:
-JoinTableComposite_remove=Remove
-JoinTableComposite_overrideDefaultJoinColumns=Override Default
-JoinTableComposite_overrideDefaultInverseJoinColumns=Override Default
-
-InverseJoinColumnDialog_editInverseJoinColumn=Edit Inverse Join Column
-InverseJoinColumnDialog_defaultWithOneParam=Default ({0})
-
-JoinColumnDialog_addJoinColumn=Add Join Column
-JoinColumnDialog_editJoinColumn=Edit Join Column
-JoinColumnDialog_name=Name:
-JoinColumnDialog_referencedColumnName=Referenced Column Name:
-JoinColumnDialog_defaultWithOneParam=Default ({0})
-JoinColumnDialog_insertable=Insertable:
-JoinColumnDialog_updatable=Updatable:
-JoinColumnDialog_table=Table:
-
-MultiRelationshipMappingComposite_general=General
-MultiRelationshipMappingComposite_joinTable=Join Table
-MultiRelationshipMappingComposite_targetEntity=Target Entity:
-MultiRelationshipMappingComposite_cascadeType=Cascade Type:
-MultiRelationshipMappingComposite_fetchType=Fetch Type:
-MultiRelationshipMappingComposite_mappedBy=Mapped By:
-
-ColumnComposite_columnSection=Column:
-ColumnComposite_defaultWithOneParam=Default ({0})
-ColumnComposite_defaultEmpty=Default ()
-ColumnComposite_insertable=Insertable:
-ColumnComposite_updatable=Updatable:
-
-JoinColumnComposite_joinColumn=Join Columns
-JoinColumnComposite_defaultEmpty=Default()
-JoinColumnComposite_name=Name:
-JoinColumnComposite_defaultWithOneParam=Default ({0})
-JoinColumnComposite_add=Add...
-JoinColumnComposite_edit=Edit...
-JoinColumnComposite_mappingBetweenTwoParams={0} -> {1}
-JoinColumnComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
-JoinColumnComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
-JoinColumnComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
-JoinColumnComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
-JoinColumnComposite_remove=Remove
-JoinColumnComposite_overrideDefaultJoinColumns=Override Default
-
-PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns=Override Default
-PrimaryKeyJoinColumnsComposite_add=Add...
-PrimaryKeyJoinColumnsComposite_edit=Edit...
-PrimaryKeyJoinColumnsComposite_remove=Remove
-PrimaryKeyJoinColumnsComposite_defaultEmpty=Default()
-PrimaryKeyJoinColumnsComposite_defaultWithOneParam=Default ({0})
-PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn=Primary Key Join Columns
-PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams={0} -> {1}
-PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
-PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
-PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
-PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
-
-AttributeOverridesComposite_attributeOverrides=Attribute Overrides
-AttributeOverridesComposite_overridDefault=Override Default
-OverridesComposite_joinColumn=Join Columns
-InheritanceComposite_default=Default ({0})
-InheritanceComposite_strategy=Strategy:
-InheritanceComposite_discriminatorValue=Discriminator Value:
-InheritanceComposite_discriminatorValueDefaultWithOneParam=Default ({0})
-
-DiscriminatorColumnComposite_column=Discriminator Column:
-DiscriminatorColumnComposite_discriminatorType=Discriminator Type:
-DiscriminatorColumnComposite_defaultEmpty=Default(<provider-specific>)
-
-IdMappingComposite_pk_generation=PK Generation
-IdMappingComposite_primaryKeyGeneration=Primary Key Generation
-IdMappingComposite_tableGenerator=Table Generator
-IdMappingComposite_sequenceGenerator=Sequence Generator
-
-GeneratedValueComposite_generatedValue=Generated Value
-GeneratedValueComposite_generatorName=Generator Name:
-GeneratedValueComposite_strategy=Strategy:
-
-SequenceGeneratorComposite_sequenceGenerator=Sequence Generator
-SequenceGeneratorComposite_name=Name:
-SequenceGeneratorComposite_sequence=Sequence:
-SequenceGeneratorComposite_default=Default
-
-TableGeneratorComposite_name=Name:
-TableGeneratorComposite_table=Table:
-TableGeneratorComposite_tableGenerator=Table Generator
-TableGeneratorComposite_pkColumn=Primary Key Column:
-TableGeneratorComposite_valueColumn=Value Column:
-TableGeneratorComposite_pkColumnValue=Primary Key Column Value:
-TableGeneratorComposite_default=Default
-
-OrderByComposite_orderByGroup=Order By
-OrderByComposite_orderByLabel=Order By:
-OrderByComposite_noOrdering=No Ordering
-OrderByComposite_primaryKeyOrdering=Primary Key Ordering
-OrderByComposite_customOrdering=Custom Ordering
-
-SecondaryTablesComposite_secondaryTables=Secondary Tables
-SecondaryTablesComposite_add=Add...
-SecondaryTablesComposite_edit=Edit...
-SecondaryTablesComposite_remove=Remove
-
-SecondaryTableDialog_editSecondaryTable=Edit Secondary Table
-SecondaryTableDialog_name=Name:
-SecondaryTableDialog_catalog=Catalog:
-SecondaryTableDialog_schema=Schema:
-SecondaryTableDialog_defaultSchema=Default ({0})
-SecondaryTableDialog_defaultCatalog=Default ({0})
-
-AccessTypeCombo_default=Default
-EnumComboViewer_default=Default ({0})
-MetaDataCompleteCombo_Default=Default ({0})
-JoinColumnDialog_defaultTrue=Default ({0})
-InheritanceComposite_defaultDiscriminatorType=Default ({0})
-GeneratedValueComposite_default=Default ({0})
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_xml.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_xml.properties
deleted file mode 100644
index f581ea4..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_xml.properties
+++ /dev/null
@@ -1,36 +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
-############################################################################### 
-
-PersistentTypePage_javaClassLabel=Java Class:
-PersistentTypePage_MetadataCompleteLabel=Metadata Complete:
-PersistentTypePage_AccessLabel=Access:
-
-PersistenceUnitMetadataSection_SchemaDefault=Default
-PersistenceUnitMetadataSection_CatalogDefault=Default
-
-PersistentAttributePage_javaAttributeLabel=Java Attribute:
-
-XMLEntityMappingsPage_XmlMappingMetadataCompleteCheckBox=XML Mapping Metadata Complete
-XMLEntityMappingsPage_CascadePersistCheckBox=Cascade Persist
-XMLEntityMappingsPage_PersistenceUnitSection=Persistence Unit
-XMLEntityMappingsPage_SchemaDefault=Default ({0})
-XMLEntityMappingsPage_SchemaNoDefaultSpecified=Default
-XMLEntityMappingsPage_CatalogDefault=Default ({0})
-XMLEntityMappingsPage_CatalogNoDefaultSpecified=Default
-
-XmlSchemaChooser_SchemaChooser=Schema:
-XmlCatalogChooser_CatalogChooser=Catalog:
-
-XmlJavaClassChooser_XmlJavaClassDialog_title=Class Selection
-XmlJavaClassChooser_XmlJavaClassDialog_message=Choose a type:
-
-XmlPackageChooser_PackageDialog_title=Package Selection
-XmlPackageChooser_PackageDialog_message=Choose a folder: 
-
diff --git a/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatform.exsd b/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatform.exsd
deleted file mode 100644
index 6790dbe..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/schema/jpaPlatform.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jpt.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jpt.ui" id="jpaVendor" name="JPA UI Vendor"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="jpaPlatform" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="jpaPlatform">
-      <annotation>
-         <documentation>
-            Extend this extension point and you must also extend the org.eclipse.jpt.core.jpaPlatform 
-            extension point.  The ids must match.  One jpaPlatform will be chosen per JpaProject.  The 
-            possible jpaPlatforms will be displayed to the user as a project property.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id must match the corresponding org.eclipse.jpt.core.jpaVendor extension id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jpt.ui.internal.IJpaPlatformUi"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java
deleted file mode 100644
index c53e5d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/BaseJpaPlatformUi.java
+++ /dev/null
@@ -1,69 +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.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.jpt.ui.internal.generic.EntitiesGenerator;
-import org.eclipse.jpt.ui.internal.java.details.JavaDetailsProvider;
-import org.eclipse.jpt.ui.internal.java.structure.JavaStructureProvider;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-import org.eclipse.jpt.ui.internal.xml.details.XmlDetailsProvider;
-import org.eclipse.jpt.ui.internal.xml.structure.XmlStructureProvider;
-
-public abstract class BaseJpaPlatformUi implements IJpaPlatformUi
-{
-	private Collection<IJpaDetailsProvider> detailsProviders;
-	private Collection<IJpaStructureProvider> structureProviders;
-	
-	protected BaseJpaPlatformUi() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	public Collection<IJpaDetailsProvider> detailsProviders() {
-		if (this.detailsProviders == null) {
-			this.detailsProviders = this.buildJpaDetailsProvider();
-		}
-		return this.detailsProviders;
-	}
-		
-	protected Collection<IJpaDetailsProvider> buildJpaDetailsProvider() {
-		Collection<IJpaDetailsProvider> detailsProviders = new ArrayList<IJpaDetailsProvider>();
-		detailsProviders.add(new JavaDetailsProvider());
-		detailsProviders.add(new XmlDetailsProvider());
-		return detailsProviders;
-	}
-	
-	public Collection<IJpaStructureProvider> structureProviders() {
-		if (this.structureProviders == null) {
-			this.structureProviders = this.buildJpaStructureProvider();
-		}
-		return this.structureProviders;
-	}
-	
-	protected Collection<IJpaStructureProvider> buildJpaStructureProvider() {
-		Collection<IJpaStructureProvider> structureProviders = new ArrayList<IJpaStructureProvider>();
-		structureProviders.add(new JavaStructureProvider());
-		structureProviders.add(new XmlStructureProvider());
-		return structureProviders;
-	}
-
-	public void generateEntities(IJpaProject project, IStructuredSelection selection) {
-
-		EntitiesGenerator.generate(project, selection);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaHelpContextIds.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaHelpContextIds.java
deleted file mode 100644
index c7fe124..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaHelpContextIds.java
+++ /dev/null
@@ -1,109 +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.ui.internal;
-
-
-/**
- * Help context ids for the Dali JPA UI.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- *  
- */
-public interface IJpaHelpContextIds {
-
-
-	//ContextID prefix
-	public static final String PREFIX = JptUiPlugin.PLUGIN_ID + ".";  //$NON-NLS-1$
-	
-	//Persistent Type composites
-	public static final String ENTITY_ACCESS_TYPE = PREFIX + "entity_accessType"; //$NON-NLS-1$
-	public static final String ENTITY_ATTRIBUTE_OVERRIDES = PREFIX + "entity_attributeOverrides"; //$NON-NLS-1$
-	public static final String ENTITY_ATTRIBUTE_OVERRIDES_COLUMN = PREFIX + "entity_attributeOverridesColumn"; //$NON-NLS-1$
-	public static final String ENTITY_CATALOG = PREFIX + "entity_catalog"; //$NON-NLS-1$
-	public static final String ENTITY_INHERITANCE_STRATEGY = PREFIX + "entity_inheritanceStrategy"; //$NON-NLS-1$
-	public static final String ENTITY_INHERITANCE_DISCRIMINATOR_TYPE = PREFIX + "entity_inheritanceDiscriminatorType"; //$NON-NLS-1$
-	public static final String ENTITY_INHERITANCE_DISCRIMINATOR_COLUMN = PREFIX + "entity_inheritanceDiscriminatorColumn"; //$NON-NLS-1$
-	public static final String ENTITY_INHERITANCE_DISCRIMINATOR_VALUE = PREFIX + "entity_inheritanceDiscriminatorValue"; //$NON-NLS-1$
-	public static final String ENTITY_NAME = PREFIX + "entity_name"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_PACKAGE = PREFIX + "orm_package"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_SCHEMA = PREFIX + "orm_schema"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_CATALOG = PREFIX + "orm_catalog"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_ACCESS = PREFIX + "orm_access"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_CASCADE = PREFIX + "orm_cascade"; //$NON-NLS-1$
-	public static final String ENTITY_ORM_XML = PREFIX + "orm_xml"; //$NON-NLS-1$
-	public static final String ENTITY_SCHEMA = PREFIX + "entity_schema"; //$NON-NLS-1$
-	public static final String ENTITY_TABLE = PREFIX + "entity_table"; //$NON-NLS-1$
-
-	
-	//Persistent Attribute composites
-	public static final String MAPPING_CASCADE_TYPE = PREFIX + "mapping_cascadeType"; //$NON-NLS-1$
-	public static final String MAPPING_COLUMN = PREFIX + "mapping_column"; //$NON-NLS-1$
-	public static final String MAPPING_COLUMN_INSERTABLE = PREFIX + "mapping_columnInsertable"; //$NON-NLS-1$
-	public static final String MAPPING_COLUMN_TABLE = PREFIX + "mapping_columnTable"; //$NON-NLS-1$
-	public static final String MAPPING_COLUMN_UPDATABLE= PREFIX + "mapping_columnUpdatable"; //$NON-NLS-1$
-	public static final String MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES = PREFIX + "mapping_embeddedAttributeOverrides";//$NON-NLS-1$
-	public static final String MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES_COLUMN = PREFIX + "mapping_embeddedAttributeOverridesColumn";//$NON-NLS-1$
-	public static final String MAPPING_ENUMERATED = PREFIX + "mapping_enumerated"; //$NON-NLS-1$
-	public static final String MAPPING_FETCH_TYPE = PREFIX + "mapping_fetchType"; //$NON-NLS-1$
-	public static final String MAPPING_GENERATED_VALUE_STRATEGY = PREFIX + "mapping_generatedValueStrategy"; //$NON-NLS-1$
-	public static final String MAPPING_GENERATED_VALUE_GENERATOR_NAME = PREFIX + "mapping_generatedValueGeneratorName"; //$NON-NLS-1$
-	public static final String MAPPING_JOIN_COLUMN_NAME = PREFIX + "mapping_joinColumnName"; //$NON-NLS-1$
-	public static final String MAPPING_JOIN_REFERENCED_COLUMN = PREFIX + "mapping_joinReferencedColumn"; //$NON-NLS-1$
-	public static final String MAPPING_JOIN_TABLE_NAME = PREFIX + "mapping_joinTableName"; //$NON-NLS-1$
-	public static final String MAPPING_JOIN_TABLE_COLUMNS = PREFIX + "mapping_joinTableJoinColumns"; //$NON-NLS-1$
-	public static final String MAPPING_JOIN_TABLE_INVERSE_JOIN_COLUMNS = PREFIX + "mapping_joinTableInverseJoinColumns"; //$NON-NLS-1$
-	public static final String MAPPING_LOB = PREFIX + "mapping_lob"; //$NON-NLS-1$
-	public static final String MAPPING_MAP_AS = PREFIX + "mapping_mapAs"; //$NON-NLS-1$
-	public static final String MAPPING_MAPPED_BY = PREFIX + "mapping_mappedBy"; //$NON-NLS-1$
-	public static final String MAPPING_OPTIONAL = PREFIX + "mapping_optional"; //$NON-NLS-1$
-	public static final String MAPPING_ORDER_BY = PREFIX + "mapping_orderBy"; //$NON-NLS-1$
-	public static final String MAPPING_ORDER_BY_NO_ORDERING = PREFIX + "mapping_orderByNoOrdering"; //$NON-NLS-1$
-	public static final String MAPPING_ORDER_BY_PRIMARY_KEY_ORDERING = PREFIX + "mapping_orderByPrimaryKeyOrdering"; //$NON-NLS-1$
-	public static final String MAPPING_ORDER_BY_CUSTOM_ORDERING = PREFIX + "mapping_orderByCustomOrdering"; //$NON-NLS-1$
-	public static final String MAPPING_PRIMARY_KEY_GENERATION = PREFIX + "mapping_primaryKeyGeneration"; //$NON-NLS-1$
-	public static final String MAPPING_SEQUENCE_GENERATOR = PREFIX + "mapping_sequenceGenerator"; //$NON-NLS-1$
-	public static final String MAPPING_SEQUENCE_GENERATOR_NAME = PREFIX + "mapping_sequenceGeneratorName"; //$NON-NLS-1$ 
-	public static final String MAPPING_SEQUENCE_GENERATOR_SEQUENCE = PREFIX + "mapping_sequenceGeneratorSequence"; //$NON-NLS-1$ 
-	public static final String MAPPING_TABLE_GENERATOR = PREFIX + "mapping_tableGenerator"; //$NON-NLS-1$
-	public static final String MAPPING_TABLE_GENERATOR_NAME = PREFIX + "mapping_tableGeneratorName"; //$NON-NLS-1$
-	public static final String MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN = PREFIX + "mapping_tableGeneratorPrimaryKeyColumn"; //$NON-NLS-1$
-	public static final String MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN_VALUE = PREFIX + "mapping_tableGeneratorPrimaryKeyColumnValue"; //$NON-NLS-1$
-	public static final String MAPPING_TABLE_GENERATOR_TABLE= PREFIX + "mapping_tableGeneratorTable"; //$NON-NLS-1$
-	public static final String MAPPING_TABLE_GENERATOR_VALUE_COLUMN = PREFIX + "mapping_tableGeneratorValueColumn"; //$NON-NLS-1$
-	public static final String MAPPING_TARGET_ENTITY = PREFIX + "mapping_targetEntity"; //$NON-NLS-1$
-	public static final String MAPPING_TEMPORAL = PREFIX + "mapping_temporal"; //$NON-NLS-1$
-
-	//Project properties
-	public static final String PROPERTIES_JAVA_PERSISTENCE = PREFIX + "properties_javaPersistence"; //$NON-NLS-1$
-	public static final String PROPERTIES_JAVA_PERSISTENCE_CONNECTION = PREFIX + "properties_javaPersistenceConnection"; //$NON-NLS-1$
-	public static final String PROPERTIES_JAVA_PERSISTENCE_SCHEMA = PREFIX + "properties_javaPersistenceSchema"; //$NON-NLS-1$
-	
-	//Dialogs, Wizards
-	public static final String DIALOG_CREATE_ORM = PREFIX + "dialog_createORM"; //$NON-NLS-1$
-	public static final String DIALOG_EDIT_INVERSE_JOIN_COLUNN = PREFIX + "dialog_editInverseJoinColumn"; //$NON-NLS-1$
-	public static final String DIALOG_GENERATE_ENTITIES = PREFIX + "dialog_generateEntities"; //$NON-NLS-1$
-	public static final String DIALOG_GENERATE_ENTITIES_SOURCE = PREFIX + "dialog_generateEntities_source"; //$NON-NLS-1$
-	public static final String DIALOG_GENERATE_ENTITIES_PACKAGE = PREFIX + "dialog_generateEntities_package"; //$NON-NLS-1$
-	public static final String DIALOG_GENERATE_ENTITIES_TABLES = PREFIX + "dialog_generateEntities_tables"; //$NON-NLS-1$
-	public static final String DIALOG_JPA_FACET = PREFIX + "dialog_JPAFacet"; //$NON-NLS-1$
-	public static final String DIALOG_JPA_PLATFORM = PREFIX + "dialog_JPAPlatform"; //$NON-NLS-1$
-	public static final String NEW_JPA_PROJECT = PREFIX + "dialog_newJPAProject"; //$NON-NLS-1$
- 	public static final String NEW_JPA_PROJECT_CONTENT_PAGE_CLASSPATH = PREFIX + "dialog_addJavaPersistence_classpath"; //$NON-NLS-1$
- 	public static final String NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE = PREFIX + "dialog_addJavaPersistence_database"; //$NON-NLS-1$
- 	public static final String NEW_JPA_PROJECT_CONTENT_PAGE_PACKAGING = PREFIX + "dialog_addJavaPersistence_packaging"; //$NON-NLS-1$
- 	public static final String NEW_JPA_PROJECT_CREATION_PAGE = PREFIX + "dialog_addJavaPersistence"; //$NON-NLS-1$
-	
-	//Other
-	public static final String PERSISTENCE_OUTLINE = PREFIX + "persistenceOutline"; //$NON-NLS-1$
-
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java
deleted file mode 100644
index b7fcb18..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/IJpaPlatformUi.java
+++ /dev/null
@@ -1,28 +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.ui.internal;
-
-import java.util.Collection;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-
-public interface IJpaPlatformUi
-{
-	Collection<IJpaStructureProvider> structureProviders();
-	
-	Collection<IJpaDetailsProvider> detailsProviders();
-	
-	void generateDDL(IJpaProject project, IStructuredSelection selection);
-	
-	void generateEntities(IJpaProject project, IStructuredSelection selection);
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaCompletionProposalComputer.java
deleted file mode 100644
index 78b9373..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JpaCompletionProposalComputer.java
+++ /dev/null
@@ -1,123 +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.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.CompletionContext;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer;
-import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit;
-import org.eclipse.jpt.utility.internal.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-public class JpaCompletionProposalComputer implements IJavaCompletionProposalComputer {
-
-	public JpaCompletionProposalComputer() {
-		super();
-	}
-
-	public void sessionStarted() {
-		// do nothing
-	}
-
-	@SuppressWarnings("unchecked")
-	public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
-		return (context instanceof JavaContentAssistInvocationContext) ?
-			this.computeCompletionProposals((JavaContentAssistInvocationContext) context)
-		:
-			Collections.emptyList();
-	}
-
-	private List<ICompletionProposal> computeCompletionProposals(JavaContentAssistInvocationContext context) {
-		try {
-			return this.computeCompletionProposals_(context);
-		} catch (JavaModelException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private List<ICompletionProposal> computeCompletionProposals_(JavaContentAssistInvocationContext context) throws JavaModelException {
-		ICompilationUnit cu = context.getCompilationUnit();
-		if (cu == null) {
-			return Collections.emptyList();
-		}
-
-		IJpaFile jpaFile = JptCorePlugin.getJpaFile((IFile) cu.getCorrespondingResource());
-		if (jpaFile == null) {
-			return Collections.emptyList();
-		}
-
-		JpaCompilationUnit jpaCU = (JpaCompilationUnit) jpaFile.getContent();
-		CompletionContext cc = context.getCoreContext();
-
-		// the context's "token" is really a sort of "prefix" - it does NOT
-		// correspond to the "start" and "end" we get below... 
-		char[] prefix = cc.getToken();
-		Filter<String> filter = ((prefix == null) ? Filter.Null.<String>instance() : new IgnoreCasePrefixFilter(prefix));
-		// the token "start" is the offset of the token's first character
-		int tokenStart = cc.getTokenStart();
-		// the token "end" is the offset of the token's last character (yuk)
-		int tokenEnd = cc.getTokenEnd();
-
-//		System.out.println("prefix: " + new String(prefix));
-//		System.out.println("token start: " + tokenStart);
-//		System.out.println("token end: " + tokenEnd);
-//		String source = cu.getSource();
-//		String token = source.substring(tokenStart, tokenEnd + 1);
-//		System.out.println("token: =>" + token + "<=");
-//		String snippet = source.substring(Math.max(0, tokenStart - 20), Math.min(source.length(), tokenEnd + 21));
-//		System.out.println("surrounding snippet: =>" + snippet + "<=");
-
-		List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
-		for (Iterator<String> stream = jpaCU.candidateValuesFor(context.getInvocationOffset(), filter); stream.hasNext(); ) {
-			String s = stream.next();
-			proposals.add(new CompletionProposal(s, tokenStart, tokenEnd - tokenStart + 1, s.length()));
-		}
-		return proposals;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
-		return Collections.EMPTY_LIST;
-	}
-
-	public String getErrorMessage() {
-		return null;
-	}
-
-	public void sessionEnded() {
-		// do nothing
-	}
-
-	private static class IgnoreCasePrefixFilter implements Filter<String> {
-		private final char[] prefix;
-		IgnoreCasePrefixFilter(char[] prefix) {
-			super();
-			this.prefix = prefix;
-		}
-		public boolean accept(String s) {
-			return StringTools.stringStartsWithIgnoreCase(s.toCharArray(), prefix);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java
deleted file mode 100644
index abdd525..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java
+++ /dev/null
@@ -1,16 +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.ui.internal;
-
-public class JptUiIcons
-{
-	public static final String JPA_WIZ_BANNER = "full/wizban/jpa_facet_wizban"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java
deleted file mode 100644
index ff6bc50..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiMessages.java
+++ /dev/null
@@ -1,152 +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
- ******************************************************************************/   
-package org.eclipse.jpt.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public class JptUiMessages extends NLS 
-{	
-	private static final String BUNDLE_NAME = "jpt_ui"; //$NON-NLS-1$
-	
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, JptUiMessages.class);
-	}
-	
-	public static String AddPersistentAttributeDialog_title;
-	
-	public static String AddPersistentAttributeDialog_attributeLabel;
-	
-	public static String AddPersistentAttributeDialog_mappingLabel;
-	
-	public static String AddPersistentAttributeDialog_noMappingKeyError;
-	
-	public static String AddPersistentClassDialog_title;
-	
-	public static String AddPersistentClassDialog_classLabel;
-	
-	public static String AddPersistentClassDialog_classDialog_title;
-	
-	public static String AddPersistentClassDialog_classDialog_message;
-	
-	public static String AddPersistentClassDialog_mappingLabel;
-	
-	public static String AddPersistentClassDialog_noClassError;
-	
-	public static String AddPersistentClassDialog_duplicateClassWarning;
-	
-	public static String AddPersistentClassDialog_classNotFoundWarning;
-	
-	public static String AddPersistentClassDialog_noMappingKeyError;
-	
-	public static String DatabaseReconnectWizardPage_database;
-	
-	public static String DatabaseReconnectWizardPage_databaseConnection;
-	
-	public static String DatabaseReconnectWizardPage_reconnectToDatabase;
-	
-	public static String DatabaseReconnectWizardPage_connection;
-	
-	public static String DatabaseReconnectWizardPage_schema;
-	
-	public static String DatabaseReconnectWizardPage_schemaInfo;
-	
-	public static String DatabaseReconnectWizardPage_addConnectionLink;
-
-	public static String DatabaseReconnectWizardPage_reconnectLink;
-
-	public static String General_browse;
-	
-	public static String General_deselectAll;
-	
-	public static String General_selectAll;
-	
-	public static String GenerateEntitiesWizard_generateEntities;
-
-	public static String GenerateEntitiesWizardPage_chooseEntityTable;
-
-	public static String GenerateEntitiesWizardPage_generateEntities;
-	
-	public static String GenerateEntitiesWizardPage_synchronizeClasses;
-
-	public static String GenerateEntitiesWizardPage_tables;
-
-	public static String GenerateEntitiesWizardPage_tableColumn;
-	
-	public static String GenerateEntitiesWizardPage_entityNameColumn;
-
-	public static String GenericPlatformUiDialog_notSupportedMessageTitle;
-
-	public static String GenericPlatformUiDialog_notSupportedMessageText;
-
-	public static String JpaPreferencePage_defaultJpaLib;
-	
-	public static String JpaPreferencePage_userLibsLink;
-	
-	public static String JpaPreferencePage_invalidJpaLib;
-	
-	public static String JpaStructureView_viewNotAvailable;
-	
-	public static String JpaStructureView_linkWithEditorText;
-	
-	public static String JpaStructureView_linkWithEditorDesc;
-	
-	public static String JpaStructureView_linkWithEditorTooltip;
-	
-	public static String JpaDetailsView_viewNotAvailable;
-	
-	public static String NewJpaProjectWizard_title;
-	
-	public static String NewJpaProjectWizard_firstPage_title;
-	
-	public static String NewJpaProjectWizard_firstPage_description;
-	
-	public static String JpaFacetWizardPage_title;
-	
-	public static String JpaFacetWizardPage_description;
-	
-	public static String JpaFacetWizardPage_platformLabel;
-	
-	public static String JpaFacetWizardPage_connectionLabel;
-	
-	public static String JpaFacetWizardPage_connectionLink;
-	
-	public static String JpaFacetWizardPage_jpaImplementationLabel;
-	
-	public static String JpaFacetWizardPage_userServerLibLabel;
-	
-	public static String JpaFacetWizardPage_specifyLibLabel;
-	
-	public static String JpaFacetWizardPage_jpaPrefsLink;
-	
-	public static String JpaFacetWizardPage_userLibsLink;
-	
-	public static String JpaFacetWizardPage_persistentClassManagementLabel;
-	
-	public static String JpaFacetWizardPage_discoverClassesButton;
-	
-	public static String JpaFacetWizardPage_listClassesButton;
-	
-	public static String JpaFacetWizardPage_createOrmXmlButton;
-	
-	public static String PersistentAttributePage_mapAs;
-	
-	public static String PersistentTypePage_mapAs;
-	
-	public static String OverwriteConfirmerDialog_title;
-
-	public static String OverwriteConfirmerDialog_text;
-
-	public static String EntitiesGenerator_jobName;
-	
-	private JptUiMessages() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiPlugin.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiPlugin.java
deleted file mode 100644
index 77e697c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiPlugin.java
+++ /dev/null
@@ -1,63 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-public class JptUiPlugin extends AbstractUIPlugin
-{
-	private static JptUiPlugin INSTANCE;
-	
-	/**
-	 * The plug-in identifier of JPA UI support
-	 * (value <code>"org.eclipse.jpt.ui"</code>).
-	 */
-	public final static String PLUGIN_ID = "org.eclipse.jpt.ui";  //$NON-NLS-1$
-	
-	/**
-	 * Returns the singleton Plugin
-	 */
-	public static JptUiPlugin getPlugin() {
-		return INSTANCE;
-	}
-	
-	public static void log(IStatus status) {
-        INSTANCE.getLog().log(status);
-    }
-	
-	public static void log(String msg) {
-        log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null));
-    }
-	
-	public static void log(Throwable throwable) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable));
-	}
-	
-	
-	public JptUiPlugin() {
-		super();
-		INSTANCE = this;
-	}
-	
-	/**
-	 * This gets a .gif from the icons folder.
-	 */
-	public ImageDescriptor getImageDescriptor(String key) {
-		if (! key.startsWith("icons/")) {
-			key = "icons/" + key;
-		}
-		if (! key.endsWith(".gif")) {
-			key = key + ".gif";
-		}
-		return imageDescriptorFromPlugin(PLUGIN_ID, key);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/PlatformRegistry.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/PlatformRegistry.java
deleted file mode 100644
index ad616f2..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/PlatformRegistry.java
+++ /dev/null
@@ -1,156 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-public class PlatformRegistry 
-{
-	public static final PlatformRegistry INSTANCE = new PlatformRegistry();
-	
-	private static final String EXTENSION_ID = 
-		"jpaPlatform"; //$NON-NLS-1$
-	
-	private static final String EL_PLATFORM =
-		"jpaPlatform"; //$NON-NLS-1$	
-
-	private static final String AT_ID =
-		"id"; //$NON-NLS-1$	
-
-	private static final String AT_CLASS =
-		"class"; //$NON-NLS-1$	
-		
-	// key: String jpaPlatform id  value: IConfigurationElement class descriptor
-	private Map<String, IConfigurationElement> jpaPlatforms;
-	
-	
-	/* (non Java doc)
-	 * restrict access
-	 */
-	private PlatformRegistry() {
-		buildJpaPlatforms();
-	}
-	
-	
-	private void buildJpaPlatforms() {
-		this.jpaPlatforms = new HashMap<String, IConfigurationElement>();
-		
-		for (Iterator stream = allConfigElements(); stream.hasNext(); ) {
-			buildJpaPlatform((IConfigurationElement) stream.next());
-		}
-	}
-	
-	private void buildJpaPlatform(IConfigurationElement configElement) {
-		if (! configElement.getName().equals(EL_PLATFORM)) {
-			return;
-		}
-		
-		String platformId = configElement.getAttribute(AT_ID);
-		String platformClass = configElement.getAttribute(AT_CLASS);
-		
-		if ((platformId == null) || (platformClass == null)) {
-			if (platformId == null) {
-				reportMissingAttribute(configElement, AT_ID);
-			}
-			if (platformClass == null) {
-				reportMissingAttribute(configElement, AT_CLASS);
-			}
-			return;
-		}
-		
-		if (jpaPlatforms.containsKey(platformId)) {
-			IConfigurationElement otherConfigElement = jpaPlatforms.get(platformId);
-			reportDuplicatePlatform(configElement, otherConfigElement);
-		}
-		
-		jpaPlatforms.put(platformId, configElement);
-	}
-	
-	public IJpaPlatformUi getJpaPlatform(String vendorId) {
-		IConfigurationElement registeredConfigElement = this.jpaPlatforms.get(vendorId);
-		
-		if (registeredConfigElement == null) {
-			return null;
-		}
-		
-		try {
-			return (IJpaPlatformUi) registeredConfigElement.createExecutableExtension(AT_CLASS);
-		}
-		catch (CoreException ce) {
-			reportFailedInstantiation(registeredConfigElement);
-			return null;
-		}
-	}
-	
-	private Iterator allConfigElements() {
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = 
-			registry.getExtensionPoint(JptUiPlugin.PLUGIN_ID, EXTENSION_ID);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		
-		return new CompositeIterator(
-				new TransformationIterator(CollectionTools.iterator(extensions)) {
-					@Override
-					protected Object transform(Object next) {
-						return CollectionTools.iterator(((IExtension) next).getConfigurationElements());
-					}
-				}
-			);
-	}
-	
-	// TODO externalize strings
-	private void reportMissingAttribute(IConfigurationElement configElement, String attributeName) {
-		String message = 
-			"An extension element \""
-			+ configElement.getName()
-			+ "\" in plugin \""
-			+ configElement.getContributor().getName()
-			+ "\" is missing a required attribute \""
-			+ attributeName
-			+ "\".";
-		JptUiPlugin.log(message);
-	}
-	
-	// TODO externalize strings
-	private void reportDuplicatePlatform(
-			IConfigurationElement oneConfigElement, IConfigurationElement otherConfigElement) {
-		String message =
-			"The plugins \""
-			+ oneConfigElement.getContributor().getName()
-			+ "\" and \""
-			+ otherConfigElement.getContributor().getName()
-			+ "\" have registered a duplicate attribute \"id\" "
-			+ "for the extension element \"jpaVendor\".";
-		JptUiPlugin.log(message);
-	}
-		
-	// TODO externalize strings
-	private void reportFailedInstantiation(IConfigurationElement configElement) {
-		String message =
-			"Could not instantiate the class \""
-			+ configElement.getAttribute(AT_CLASS)
-			+ "\" for the extension element \""
-			+ configElement.getName()
-			+ "\" in the plugin \""
-			+ configElement.getContributor().getName()
-			+ "\".";
-		JptUiPlugin.log(message);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAction.java
deleted file mode 100644
index f38efd9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAction.java
+++ /dev/null
@@ -1,40 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.actions;
-
-import java.util.Iterator;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.ui.actions.ActionDelegate;
-
-public class AddPersistentAttributeToXmlAction extends ActionDelegate
-{	
-	
-	private ISelection selection;
-	
-	@Override
-	public void selectionChanged(IAction action, ISelection selection) {
-		super.selectionChanged(action, selection);
-		this.selection = selection;
-	}
-	
-	@Override
-	public void run(IAction action) {
-		if (this.selection instanceof StructuredSelection) {
-			for (Iterator<XmlPersistentAttribute> i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
-				XmlPersistentAttribute xmlPersistentAttribute = i.next();
-				xmlPersistentAttribute.setVirtual(false);
-			}
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAndMapAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAndMapAction.java
deleted file mode 100644
index d75a96d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentAttributeToXmlAndMapAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.jpt.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.ui.internal.dialogs.AddPersistentAttributeToXmlAndMapDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class AddPersistentAttributeToXmlAndMapAction
-	implements IObjectActionDelegate
-{
-	private Shell shell;
-	
-	private XmlPersistentAttribute unmappedXmlAttribute;
-	
-	
-	public AddPersistentAttributeToXmlAndMapAction() {
-		super();
-	}
-	
-	public void run(IAction action) {
-		AddPersistentAttributeToXmlAndMapDialog dialog = new AddPersistentAttributeToXmlAndMapDialog(shell, unmappedXmlAttribute);
-		
-		dialog.create();
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-	}
-	
-	public void selectionChanged(IAction action, ISelection selection) {
-		unmappedXmlAttribute = (XmlPersistentAttribute) ((StructuredSelection) selection).getFirstElement();
-	}
-	
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		shell = targetPart.getSite().getShell();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentClassAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentClassAction.java
deleted file mode 100644
index 23b4deb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/AddPersistentClassAction.java
+++ /dev/null
@@ -1,49 +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.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.ui.internal.dialogs.AddPersistentClassDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class AddPersistentClassAction
-	implements IObjectActionDelegate
-{
-	private Shell shell;
-	
-	private EntityMappingsInternal entityMappings;
-	
-	
-	public AddPersistentClassAction() {
-		super();
-	}
-	
-	public void run(IAction action) {
-		AddPersistentClassDialog dialog = new AddPersistentClassDialog(shell, entityMappings);
-		
-		dialog.create();
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-	}
-	
-	public void selectionChanged(IAction action, ISelection selection) {
-		entityMappings = (EntityMappingsInternal) ((StructuredSelection) selection).getFirstElement();
-	}
-	
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		shell = targetPart.getSite().getShell();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java
deleted file mode 100644
index ab7a410..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateDDLAction.java
+++ /dev/null
@@ -1,35 +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.ui.internal.actions;
-
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.ui.internal.IJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.PlatformRegistry;
-
-/**
- *  GenerateDDLAction
- */
-public class GenerateDDLAction extends ProjectAction {
-	
-	public GenerateDDLAction() {
-		super();
-	}
-
-	protected void execute(IJpaProject project) {
-        String vendorId = project.getPlatform().getId();
-		
-        this.jpaPlatformUI(vendorId).generateDDL(project, this.getCurrentSelection());
-	}
-	
-	private IJpaPlatformUi jpaPlatformUI(String vendorId) {
-        return PlatformRegistry.INSTANCE.getJpaPlatform(vendorId); 
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java
deleted file mode 100644
index b125791..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/GenerateEntitiesAction.java
+++ /dev/null
@@ -1,34 +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.ui.internal.actions;
-
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.ui.internal.IJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.PlatformRegistry;
-
-/**
- *  GenerateEntitiesAction
- */
-public class GenerateEntitiesAction extends ProjectAction {
-	public GenerateEntitiesAction() {
-		super();
-	}
-
-	protected void execute(IJpaProject project) {
-        String vendorId = project.getPlatform().getId();
-		
-        this.jpaPlatformUI(vendorId).generateEntities(project, this.getCurrentSelection());
-	}
-	
-	private IJpaPlatformUi jpaPlatformUI(String vendorId) {
-        return PlatformRegistry.INSTANCE.getJpaPlatform(vendorId); 
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/PersistentAttributeActionFilter.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/PersistentAttributeActionFilter.java
deleted file mode 100644
index 2e6396f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/PersistentAttributeActionFilter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.eclipse.jpt.ui.internal.actions;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.core.internal.IPersistentAttribute;
-import org.eclipse.ui.IActionFilter;
-
-public class PersistentAttributeActionFilter 
-	implements IActionFilter
-{
-	public static final String IS_MAPPED = "isMapped";
-	
-	
-	public boolean testAttribute(Object target, String name, String value) {
-		if (! IS_MAPPED.equals(name)) {
-			return false;
-		}
-		
-		Boolean booleanValue;
-		if ("true".equals(value)) {
-			booleanValue = true;
-		}
-		else if ("false".equals(value)) {
-			booleanValue = false;
-		}
-		else {
-			return false;
-		}
-		
-		boolean mapped = ((IPersistentAttribute) target).mappingKey() != IMappingKeys.NULL_ATTRIBUTE_MAPPING_KEY;
-		return mapped == booleanValue;
-	}
-	
-	
-	public static final class Factory
-		implements IAdapterFactory
-	{
-		private static final Class[] ADAPTER_TYPES = { IActionFilter.class };
-		
-		public Object getAdapter(final Object adaptable, final Class adapterType ) {
-			if( adapterType == IActionFilter.class ) {
-				return new PersistentAttributeActionFilter();
-			} else {
-				return null;
-			}
-		}
-	    
-		public Class[] getAdapterList() {
-			return ADAPTER_TYPES;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java
deleted file mode 100644
index 04e657e..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/ProjectAction.java
+++ /dev/null
@@ -1,97 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.actions;
-
-import java.util.Iterator;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Override any of the #execute() methods.
- */
-public abstract class ProjectAction implements IObjectActionDelegate {
-
-	private ISelection currentSelection;
-    
-
-	public ProjectAction() {
-		super();
-	}
-
-	/**
-	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		// do nothing
-	}
-
-	/**
-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-        this.currentSelection = selection;
-	}
-
-	protected IStructuredSelection getCurrentSelection() {
-		if (this.currentSelection instanceof IStructuredSelection) {
-			return (IStructuredSelection) this.currentSelection;
-		}
-		return null;
-	}
-	
-	/**
-	 * @see IActionDelegate#run(IAction)
-	 */
-	public void run(IAction action) {
-		if (this.currentSelection instanceof IStructuredSelection) {
-			for (Iterator stream = ((IStructuredSelection) this.currentSelection).iterator(); stream.hasNext(); ) {
-				this.execute(stream.next());
-			}
-		}
-	}
-
-	protected void execute(Object selection) {
-		IProject project = this.projectFromSelection(selection);
-		if (project != null) {
-			this.execute(project);
-		}
-	}
-
-	protected IProject projectFromSelection(Object selection) {
-		if (selection instanceof IProject) {
-			return (IProject) selection;
-		}
-		if (selection instanceof IJavaProject) {
-			return ((IJavaProject) selection).getProject();
-		}
-		return null;
-	}
-
-	protected void execute(IProject project) {
-		IJpaProject jpaProject = JptCorePlugin.getJpaProject(project);
-		if (jpaProject == null) {
-			return;
-		}
-		this.execute(jpaProject);
-	}
-
-	protected void execute(IJpaProject project) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentAttributeFromXmlAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentAttributeFromXmlAction.java
deleted file mode 100644
index 326949e..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentAttributeFromXmlAction.java
+++ /dev/null
@@ -1,42 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.actions;
-
-import java.util.Iterator;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
-import org.eclipse.ui.actions.ActionDelegate;
-
-public class RemovePersistentAttributeFromXmlAction extends ActionDelegate
-{	
-	private ISelection selection;
-	
-	@Override
-	public void selectionChanged(IAction action, ISelection selection) {
-		super.selectionChanged(action, selection);
-		this.selection = selection;
-	}
-	
-	@Override
-	public void run(IAction action) {
-		if (this.selection instanceof StructuredSelection) {
-			for (Iterator<XmlPersistentAttribute> i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
-				XmlPersistentAttribute xmlPersistentAttribute = i.next();
-				XmlPersistentType xmlPersistentType = ((XmlTypeMapping) xmlPersistentAttribute.typeMapping()).getPersistentType();
-				xmlPersistentType.getSpecifiedAttributeMappings().remove(xmlPersistentAttribute.getMapping());
-			}
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentClassAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentClassAction.java
deleted file mode 100644
index 3d8a55a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/RemovePersistentClassAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class RemovePersistentClassAction
-	implements IObjectActionDelegate
-{
-	private XmlPersistentType persistentClass;
-	
-	
-	public RemovePersistentClassAction() {
-		super();
-	}
-	
-	public void run(IAction action) {
-		XmlTypeMapping mapping = persistentClass.getMapping();
-		((EntityMappingsInternal) mapping.getEntityMappings()).getTypeMappings().remove(mapping);
-	}
-	
-	public void selectionChanged(IAction action, ISelection selection) {
-		persistentClass = (XmlPersistentType) ((StructuredSelection) selection).getFirstElement();
-	}
-	
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		// do nothing
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java
deleted file mode 100644
index 3b4db8e..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/SynchronizeClassesAction.java
+++ /dev/null
@@ -1,39 +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.ui.internal.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.synch.SynchronizeClassesJob;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class SynchronizeClassesAction 
-	implements IObjectActionDelegate 
-{
-	private IFile file;
-	
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		// no-op for now
-	}
-
-	public void run(IAction action) {
-		SynchronizeClassesJob job = new SynchronizeClassesJob(file);
-		job.schedule();
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// only one element in actual selection
-		file = (IFile) ((StructuredSelection) selection).getFirstElement();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/XmlPersistentAttributeActionFilter.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/XmlPersistentAttributeActionFilter.java
deleted file mode 100644
index e5f57a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/actions/XmlPersistentAttributeActionFilter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.eclipse.jpt.ui.internal.actions;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.ui.IActionFilter;
-
-public class XmlPersistentAttributeActionFilter 
-	extends PersistentAttributeActionFilter
-{
-	public static final String IS_VIRTUAL = "isVirtual";
-	
-	
-	public boolean testAttribute(Object target, String name, String value) {
-		if (! IS_VIRTUAL.equals(name)) {
-			return super.testAttribute(target, name, value);
-		}
-		
-		Boolean booleanValue;
-		if ("true".equals(value)) {
-			booleanValue = true;
-		}
-		else if ("false".equals(value)) {
-			booleanValue = false;
-		}
-		else {
-			return false;
-		}
-		return ((XmlPersistentAttribute) target).isVirtual() == booleanValue;
-	}
-	
-	
-	public static final class Factory
-		implements IAdapterFactory
-	{
-		private static final Class[] ADAPTER_TYPES = { IActionFilter.class };
-		
-		public Object getAdapter(final Object adaptable, final Class adapterType ) {
-			if( adapterType == IActionFilter.class ) {
-				return new XmlPersistentAttributeActionFilter();
-			} else {
-				return null;
-			}
-		}
-	    
-		public Class[] getAdapterList() {
-			return ADAPTER_TYPES;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaComposite.java
deleted file mode 100644
index 6c3ff8b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaComposite.java
+++ /dev/null
@@ -1,47 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class BaseJpaComposite extends BaseJpaController
-	implements IJpaComposite
-{
-	private Composite composite;
-	
-	public BaseJpaComposite(Composite parent, int style, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, style, theCommandStack, widgetFactory);
-	}
-	
-	public BaseJpaComposite(Composite parent, CommandStack theCommandStack,TabbedPropertySheetWidgetFactory widgetFactory) {
-		this(parent, SWT.NULL, theCommandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent, int style) {
-		super.buildWidget(parent);
-		this.composite = createComposite(parent, style);
-		initializeLayout(this.composite);
-	}
-	
-	protected Composite createComposite(Composite parent, int style) {
-		return this.widgetFactory.createComposite(parent, style);
-	}
-	
-	protected abstract void initializeLayout(Composite composite);
-
-	public Control getControl() {
-		return this.composite;
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java
deleted file mode 100644
index e4401eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaController.java
+++ /dev/null
@@ -1,108 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class BaseJpaController 
-{
-	protected CommandStack commandStack;
-	
-	protected TabbedPropertySheetWidgetFactory widgetFactory;
-
-	//put in the populating flag to stop the circular population of the entity name combo
-	//populateEntityNameCombo is calling select() which causes entityNameComboModified() to be called
-	//this sets the name in the model which starts the circle over again. We should probably
-	//short-circuit this differently, like in the emf model, keep the property change from being fired if 
-	//a change did not actually occur - KFM
-	private boolean populating;
-	
-	
-	public BaseJpaController(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super();
-		this.widgetFactory = widgetFactory;
-		buildWidget(parent);
-		this.commandStack = theCommandStack;
-	}
-	
-	public BaseJpaController(Composite parent, int style, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super();
-		this.widgetFactory = widgetFactory;
-		buildWidget(parent, style);
-		this.commandStack = theCommandStack;
-	}
-	
-	
-	/**
-	 * Override this method if using the constructor without the style bit
-	 */
-	protected void buildWidget(Composite parent) {
-		// no op
-	}
-	
-	/**
-	 * Override this method if using the constructor with the style bit
-	 */
-	protected void buildWidget(Composite parent, int style) {
-		// no op
-	}
-	
-	/**
-	 * This method is called from outside when setting the object of interest
-	 */
-	public final void populate(EObject obj) {
-		if (getControl().isDisposed()) {
-			return;
-		}
-		this.populating = true;
-		disengageListeners();
-		doPopulate(obj);
-		engageListeners();
-		this.populating = false;
-	}
-	
-	/**
-	 * This method is called (perhaps internally) when this needs to repopulate 
-	 * but the object of interest has not changed
-	 */
-	public final void populate() {
-		if (getControl().isDisposed()) {
-			return;
-		}
-		this.populating = true;
-		doPopulate();
-		this.populating = false;
-	}
-	
-	protected abstract void doPopulate(EObject obj);
-	
-	protected abstract void doPopulate();
-	
-	protected abstract void engageListeners();
-	
-	protected abstract void disengageListeners();
-	
-	protected boolean isPopulating() {
-		return this.populating;
-	}
-	
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return this.widgetFactory;
-	}
-	
-	public void dispose() {
-		disengageListeners();
-	}
-	
-	public abstract Control getControl();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaDetailsPage.java
deleted file mode 100644
index d57e13f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/BaseJpaDetailsPage.java
+++ /dev/null
@@ -1,63 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class BaseJpaDetailsPage extends BaseJpaComposite 
-	implements IJpaDetailsPage 
-{
-	private Composite control;
-
-	public BaseJpaDetailsPage(
-			Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-	}
-
-	public BaseJpaDetailsPage(
-			Composite parent, int style, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, style, theCommandStack, widgetFactory);
-	}
-	
-	@Override
-	//using this to get a Scroll bar on the JpaDetailsView
-	protected Composite createComposite(Composite parent, int style) {
-		ScrolledForm scrolledForm = this.widgetFactory.createScrolledForm(parent);
-		//Nesting another composite because combos on the ScrolledForm didn't have a border
-		scrolledForm.getBody().setLayout(new FillLayout());
-		Composite composite = super.createComposite(scrolledForm.getBody(), style);
-		this.control = scrolledForm;
-		return composite;
-	}
-
-	public final void populate(IJpaContentNode contentNode) {
-		super.populate(contentNode);
-	}
-	
-	@Override
-	protected final void doPopulate(EObject obj) {
-		doPopulate((IJpaContentNode) obj);
-	}
-	
-	protected abstract void doPopulate(IJpaContentNode contentNode);
-	
-	
-	@Override
-	public Control getControl() {
-		return this.control;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaComposite.java
deleted file mode 100644
index bd09fed..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaComposite.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.details;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.widgets.Control;
-
-
-public interface IJpaComposite<E extends EObject> {
-
-	void populate(E model);
-	
-	Control getControl();
-	
-	void dispose();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsPage.java
deleted file mode 100644
index ae78d2f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsPage.java
+++ /dev/null
@@ -1,28 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.swt.widgets.Control;
-
-public interface IJpaDetailsPage
-{
-	Control getControl();
-
-	/**
-	 * Set the content for the page and populate widgets
-	 */
-	void populate(IJpaContentNode contentNode);
-	
-	
-	/**
-	 * Perform any other disposal needed
-	 */
-	void dispose();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsProvider.java
deleted file mode 100644
index aab2f6f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/IJpaDetailsProvider.java
+++ /dev/null
@@ -1,27 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public interface IJpaDetailsProvider 
-{
-
-	String fileContentType();
-	
-	/**
-	 * Build a properties page given the parent Composite and the
-	 * content node id.
-	 * It is legal to set the layout for the given Composite.
-	 */
-	IJpaDetailsPage buildDetailsPage(Composite parentComposite, Object contentNodeId, TabbedPropertySheetWidgetFactory widgetFactory);
-	
-	void dispose();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PageBookManager.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PageBookManager.java
deleted file mode 100644
index 80c583b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PageBookManager.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Versant. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Versant. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * A wrapper for a <code>PageBook</code> with convenience methods.
- */
-public class PageBookManager extends PageBook {
-
-	private Map pageRecords;
-	private Object active;
-	private PageBook pageBook;
-	private Composite defaultComposite;
-	
-	/**
-	 * A <code>PageBookManager<code> is a wrapper for a <code>PageBook</code>. It provides
-	 * convenience methods to add, remove, activate and inactive pages in the internal <code>PageBook</code>.
-	 * If a page gets deactivated, the manager activates a default page.
-	 * 
-	 * @param parent The parent composite to this manager
-	 * @param aDefaultLabel The label on the the default page.
-	 */
-	public PageBookManager(Composite parent, String aDefaultLabel) {
-		super(parent, SWT.NULL);
-		this.setLayout(new FillLayout());
-		this.pageRecords = new HashMap();
-		this.pageBook = new PageBook(this, SWT.NONE);
-		this.defaultComposite = new DefaultComposite(pageBook, aDefaultLabel);
-		this.pageBook.showPage(this.defaultComposite);
-	}
-
-	/**
-	 * @param anObj Activates (flips to top in the <code>PageBook</code>) the associated <code>Composite</code> 
-	 * for the given <code>Object</code>. Activates the <code>DefaultComposite</code> if there is no association
-	 * for the given <code>Object</code>.
-	 * @return Return false if there is no <code>Composite</code> association to the given <code>Object</code> or
-	 * the associated <code>Composite</code> is already active.
-	 */
-	public boolean activate(Object anObj) {
-		if(anObj != null && !anObj.equals(this.active) && this.pageRecords.containsKey(anObj)) {
-			Composite composite = (Composite) this.pageRecords.get(anObj);
-			this.pageBook.showPage(composite);
-			this.active = anObj;
-			return true;
-		} else if((anObj == null || !anObj.equals(this.active)) && !this.pageRecords.containsKey(anObj)) {
-			this.pageBook.showPage(this.defaultComposite);
-			this.active = null;
-		}
-		return false;
-	}
-	
-	/**
-	 * @param anObj
-	 * @return Returns true if the associated <code>Composite</code> has been deactivated.
-	 * Returns false if there is no <code>Composite</code> for the given <code>Object</code>
-	 * or the <code>Composite</code> is already inactive.
-	 */
-	public boolean deactivate(Object anObj) {
-		if(anObj.equals(this.active)) {
-			this.pageBook.showPage(this.defaultComposite);
-			this.active = null;
-			return true;
-		} else {
-			return false;
-		}
-	}
-
-	/**
-     * Associates the specified <code>Object</code> with the specified <code>Composite</code>
-     * in this <code>PageBookManager</code>.
-     * If this manager previously contained a mapping for the <code>Object</code>, the old
-     * <code>Composite</code> is replaced by the specified <code>Composite</code>.
-     * 
-	 * @param anObj <code>Object</code> with which the specified <code>Composite</code> is to be associated.
-	 * @param aComposite <code>Composite</code> to be associated with the specified <code>Object</code>.
-	 * 
-     * @return previous <code>Composite</code> associated with specified <code>Object</code>,
-     * 		   or <tt>null</tt> if there was no mapping for <code>Object</code>.
-	 */
-	public Composite put(Object anObj, Composite aComposite) {
-		Composite composite = (Composite) this.pageRecords.put(anObj, aComposite);
-		this.activate(anObj);
-		return composite;
-	}
-	
-    /**
-     * Removes the mapping for this <code>Object</code> from this pagebookmanager if it is present.
-     *
-     * @param anObj <code>Object</code> whose mapping is to be removed from this <code>PageBookManager</code>.
-     * @return previous <code>Composite</code> associated with specified <code>Object</code>.
-     */
-	public Composite remove(Object anObj) {
-		if(anObj.equals(this.active)) {
-			this.active = null;
-			this.pageBook.showPage(this.defaultComposite);
-		}	
-		return (Composite) this.pageRecords.remove(anObj);
-	}
-
-	/**
-	 * @param anObj whose presence in this map is to be tested
-	 * @return true if this <code>PageBookManager</code> contains a mapping for the
-	 * 		   given <code>Object</code>. False otherwise.
-	 */
-	public boolean contains(Object anObj) {
-		return this.pageRecords.containsKey(anObj);
-	}
-	
-	public Composite get(Object key) {
-		return (Composite) pageRecords.get(key);
-	}
-
-	/**
-	 * @return The currently active composite
-	 */
-	public Composite getActive() {
-		if(this.active == null) {
-			return this.defaultComposite;
-		} else {
-			return (Composite) this.pageRecords.get(this.active);
-		}
-	}
-
-	/**
-	 * @return The internal <code>PageBook</code> of this <code>PageBookManager</code>. 
-	 * <code>Composite</code>s which should work with this manager needs to be created
-	 * with this <code>Composite</code> as their parent composite.
-	 */
-	public Composite getComposite() {
-		return this.pageBook;
-	}
-
-	// a default composite which is show if the active composite
-	// gets deactivated
-	private class DefaultComposite extends Composite {
-		public DefaultComposite(Composite aParent, String aDefaultLabel) {
-			super(aParent, SWT.NONE);
-			setLayout(new FillLayout(SWT.VERTICAL));
-			Label label = new Label(this, SWT.LEFT);
-			label.setText(aDefaultLabel);
-		}
-	}
-	
-	public void dispose() {
-		super.dispose();
-		Collection composites = this.pageRecords.values();
-		for (Iterator i = composites.iterator(); i.hasNext(); ) {
-			((Composite) i.next()).dispose();
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java
deleted file mode 100644
index fb2a312..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentAttributeDetailsPage.java
+++ /dev/null
@@ -1,397 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.details;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.IAttributeMapping;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IPersistentAttribute;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.BasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.DefaultBasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.DefaultEmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.IdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.ManyToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.ManyToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.NullAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.OneToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.OneToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.TransientMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.VersionMappingUiProvider;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class PersistentAttributeDetailsPage extends BaseJpaDetailsPage 
-{
-	private IPersistentAttribute attribute;
-	private IAttributeMapping attributeMapping;
-	private Adapter persistentAttributeListener;
-	private Adapter attributeMappingListener;
-	
-	private String currentMappingKey;
-	
-	private CComboViewer mappingCombo;
-	
-	private Map<String, IJpaComposite<IAttributeMapping>> mappingComposites;
-	protected PageBook mappingPageBook;	
-	private IJpaComposite<IAttributeMapping> currentMappingComposite;
-	
-	/**
-	 * These IAtttributeMappingUiProviders will be used as elements in the attributeMapping combo
-	 * The first element in the combo will be one of the defaultAttributemappingUiProviders or
-	 * if none of those apply the nullAttriubteMappingUiProvider will be used. The rest of the elements
-	 * will be the attributeMappingUiProviders.  The defaultAttributeMappingUiProvider is
-	 * determined by matching its key with the key of the current attriubteMapping.  
-	 */
-	private Collection<IAttributeMappingUiProvider> attributeMappingUiProviders;
-	private Collection<IAttributeMappingUiProvider> defaultAttributeMappingUiProviders;
-	private IAttributeMappingUiProvider nullAttributeMappingUiProvider;
-	
-	public PersistentAttributeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NONE, new BasicCommandStack(), widgetFactory);
-		persistentAttributeListener = buildAttributeListener();
-		attributeMappingListener = buildAttributeMappingListener();
-		mappingComposites = new HashMap<String, IJpaComposite<IAttributeMapping>>();
-		this.attributeMappingUiProviders = buildAttributeMappingUiProviders();
-		this.defaultAttributeMappingUiProviders = buildDefaultAttributeMappingUiProviders();
-		this.nullAttributeMappingUiProvider = buildNullAttributeMappingUiProvider();
-	}
-	
-	protected IAttributeMappingUiProvider buildNullAttributeMappingUiProvider() {
-		return NullAttributeMappingUiProvider.instance();
-	}
-	
-	protected Collection<IAttributeMappingUiProvider> buildAttributeMappingUiProviders() {
-		Collection<IAttributeMappingUiProvider> providers = new ArrayList<IAttributeMappingUiProvider>();
-		providers.add(BasicMappingUiProvider.instance());
-		providers.add(EmbeddedMappingUiProvider.instance());
-		providers.add(EmbeddedIdMappingUiProvider.instance());
-		providers.add(IdMappingUiProvider.instance());			
-		providers.add(ManyToManyMappingUiProvider.instance());			
-		providers.add(ManyToOneMappingUiProvider.instance());			
-		providers.add(OneToManyMappingUiProvider.instance());			
-		providers.add(OneToOneMappingUiProvider.instance());
-		providers.add(TransientMappingUiProvider.instance());
-		providers.add(VersionMappingUiProvider.instance());
-		return providers;
-	}
-	
-	protected  Collection<IAttributeMappingUiProvider> attributeMappingUiProviders() {
-		return this.attributeMappingUiProviders;
-	}
-	
-	protected Collection<IAttributeMappingUiProvider> buildDefaultAttributeMappingUiProviders() {
-		Collection<IAttributeMappingUiProvider> providers = new ArrayList<IAttributeMappingUiProvider>();
-		providers.add(DefaultBasicMappingUiProvider.instance());		
-		providers.add(DefaultEmbeddedMappingUiProvider.instance());		
-		return providers;
-	}
-	
-	protected  Collection<IAttributeMappingUiProvider> defaultAttributeMappingUiProviders() {
-		return this.defaultAttributeMappingUiProviders;
-	}
-	
-	private IAttributeMappingUiProvider attributeMappingUiProvider(String key) {
-		for (IAttributeMappingUiProvider provider : attributeMappingUiProviders()) {
-			if (provider.key() == key) {
-				return provider;
-			}
-		}
-		return this.nullAttributeMappingUiProvider;
-	}
-	private IAttributeMappingUiProvider defaultAttributeMappingUiProvider(String key) {
-		for (IAttributeMappingUiProvider provider : defaultAttributeMappingUiProviders()) {
-			if (provider.key() == key) {
-				return provider;
-			}
-		}
-		return this.nullAttributeMappingUiProvider;
-	}
-	
-	private Adapter buildAttributeListener() {
-		return new AdapterImpl() {
-			@Override
-			public void notifyChanged(Notification notification) {
-				persistentAttributeChanged(notification);
-			}
-		};
-	}
-	
-	void persistentAttributeChanged(Notification notification) {
-		switch (notification.getFeatureID(IPersistentAttribute.class)) {
-			case JpaCorePackage.IPERSISTENT_ATTRIBUTE__MAPPING:
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							populate();
-						}
-					});
-				break;
-		}
-	}
-	
-	private Adapter buildAttributeMappingListener() {
-		return new AdapterImpl() {
-			@Override
-			public void notifyChanged(Notification notification) {
-				attributeMappingChanged(notification);
-			}
-		};
-	}
-	
-	void attributeMappingChanged(Notification notification) {
-//		switch (notification.getFeatureID(IAttributeMapping.class)) {
-//			case JpaCorePackage.IATTRIBUTE_MAPPING__DEFAULT:
-//				Display.getDefault().asyncExec(
-//					new Runnable() {
-//						public void run() {
-//							populate();
-//						}
-//					});
-//				break;
-//		}
-	}
-		
-	protected Label buildMappingLabel(Composite parent) {
-		return getWidgetFactory().createLabel(parent, JptUiMessages.PersistentAttributePage_mapAs);
-	}
-	
-	protected CComboViewer buildMappingCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		mappingCombo = new CComboViewer(combo);
-		mappingCombo.setContentProvider(buildContentProvider());
-		mappingCombo.setLabelProvider(buildLabelProvider());
-		mappingCombo.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				mappingChanged(event);
-			}
-		});
-		return mappingCombo;
-	}
-
-	private IContentProvider buildContentProvider() {
-		return new IStructuredContentProvider() {
-			public void dispose() {
-				// do nothing
-			}
-			
-			public Object[] getElements(Object inputElement) {
-				if (inputElement == null) {
-					return new Object[]{};
-				}
-				return uiProvidersFor((IPersistentAttribute) inputElement);
-			}
-			
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-		};
-	}
-	
-	protected IAttributeMappingUiProvider[] uiProvidersFor(IPersistentAttribute persistentAttribute) {
-		IAttributeMappingUiProvider[] providers = new IAttributeMappingUiProvider[attributeMappingUiProviders().size() +1];
-		providers[0] =  this.nullAttributeMappingUiProvider;
-		for (IAttributeMappingUiProvider uiProvider : defaultAttributeMappingUiProviders()) {
-			if (uiProvider.key() == persistentAttribute.defaultMappingKey()) {
-				providers[0] = uiProvider;
-				break;
-			}
-		}
-		int i = 1;
-		for (IAttributeMappingUiProvider uiProvider : attributeMappingUiProviders()) {
-			providers[i++] = uiProvider;
-		}
-		return providers;
-	}
-
-	private IBaseLabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				return ((IAttributeMappingUiProvider) element).label();
-			}
-		};
-	}
-	
-	protected PageBook buildMappingPageBook(Composite parent) {
-		mappingPageBook = new PageBook(parent, SWT.NONE);
-		return mappingPageBook;
-	}
-	
-	protected IJpaComposite<IAttributeMapping> buildMappingComposite(PageBook pageBook, String key) {
-		if (this.attributeMapping == null || this.attributeMapping.isDefault()) {
-			return defaultAttributeMappingUiProvider(key).buildAttributeMappingComposite(pageBook, this.commandStack, getWidgetFactory());
-		}
-
-		return attributeMappingUiProvider(key).buildAttributeMappingComposite(pageBook, this.commandStack, getWidgetFactory());
-	}
-		
-	void mappingChanged(SelectionChangedEvent event) {
-		if (isPopulating()) {
-			return;
-		}
-		if (event.getSelection() instanceof StructuredSelection) {
-			IAttributeMappingUiProvider provider = (IAttributeMappingUiProvider) ((StructuredSelection) event.getSelection()).getFirstElement();
-			String key = (this.defaultAttributeMappingUiProviders().contains(provider) ? null : provider.key());
-			attribute.setSpecifiedMappingKey(key);
-		}
-	}
-	
-	@Override
-	protected void doPopulate(IJpaContentNode persistentAttributeNode) {
-		attribute = (IPersistentAttribute) persistentAttributeNode;
-		populateMappingComboAndPage();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateMappingComboAndPage();
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (attribute != null) {
-			attribute.eAdapters().add(persistentAttributeListener);
-			if (attributeMapping != null) {
-				attributeMapping.eAdapters().add(attributeMappingListener);
-			}
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (attribute != null) {
-			attribute.eAdapters().remove(persistentAttributeListener);
-			if (attributeMapping != null) {
-				attributeMapping.eAdapters().remove(attributeMappingListener);
-			}
-		}
-	}
-	
-	private void populateMappingComboAndPage() {
-		if (attribute == null) {
-			attributeMapping = null;
-			currentMappingKey = null;
-			mappingCombo.setInput(null);
-			mappingCombo.setSelection(StructuredSelection.EMPTY);
-			
-			if (currentMappingComposite != null) {
-				currentMappingComposite.populate(null);
-				currentMappingComposite = null;
-			}
-			
-			return;
-		}
-		attributeMapping = attribute.getMapping();
-		setComboData(attribute.candidateMappingKeys());
-		
-		populateMappingPage(attributeMapping == null ? null : attributeMapping.getKey());
-	}
-	
-	private void populateMappingPage(String mappingKey) {
-		if (currentMappingComposite != null) {
-			if (mappingKey == currentMappingKey) {
-				if (currentMappingComposite != null) {
-					currentMappingComposite.populate(attributeMapping);
-					return;
-				}
-			}
-			else {
-				currentMappingComposite.populate(null);
-				// don't return
-			}
-		}
-		
-		currentMappingKey = mappingKey;
-		
-		IJpaComposite<IAttributeMapping> composite = mappingCompositeFor(mappingKey);
-		mappingPageBook.showPage(composite.getControl());
-		
-		currentMappingComposite = composite;
-		currentMappingComposite.populate(attributeMapping);
-	}
-	
-	private void setComboData(Iterator<String> availableMappingKeys) {
-		if (attribute != mappingCombo.getInput()) {
-			mappingCombo.setInput(attribute);
-		}
-		if (attributeMapping == null || attributeMapping.isDefault()) {
-			mappingCombo.setSelection(new StructuredSelection(mappingCombo.getElementAt(0)));
-		}
-		else {
-			IAttributeMappingUiProvider provider = attributeMappingUiProvider(attribute.mappingKey());
-			if (provider != null && ! provider.equals(((StructuredSelection) mappingCombo.getSelection()).getFirstElement())) {
-				mappingCombo.setSelection(new StructuredSelection(provider));
-			}
-		}
-	}
-	
-	private IJpaComposite<IAttributeMapping> mappingCompositeFor(String key) {
-		IJpaComposite<IAttributeMapping> composite = mappingComposites.get(key);
-		if (composite != null) {
-			return composite;
-		}
-		
-		composite = buildMappingComposite(mappingPageBook, key);
-		
-		if (composite != null) {
-			mappingComposites.put(key, composite);
-		}
-		
-		return composite;
-	}
-		
-//TODO focus??
-//	public boolean setFocus() {
-//		super.setFocus();
-//		return mappingCombo.getCombo().setFocus();
-//	}
-	
-	@Override
-	public void dispose() {
-		disengageListeners();
-		for (Iterator<IJpaComposite<IAttributeMapping>> stream = mappingComposites.values().iterator(); stream.hasNext(); ) {
-			stream.next().dispose();
-		}
-		super.dispose();
-	}
-	
-	public IPersistentAttribute getAttribute() {
-		return attribute;
-	}
-	
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java
deleted file mode 100644
index bd8353b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/PersistentTypeDetailsPage.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.details;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.IPersistentType;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddableUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EntityUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.MappedSuperclassUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.NullTypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class PersistentTypeDetailsPage extends BaseJpaDetailsPage 
-{	
-	private IPersistentType persistentType;
-	private Adapter persistentTypeListener;
-	
-	private String currentMappingKey;
-	
-	private CComboViewer typeMappingCombo;
-	
-	/**
-	 * A Map of mapping Composites of type IPersistenceComposite that is keyed on IConfigurationElement
-	 */
-	private Map composites;
-	
-	protected PageBook typeMappingPageBook;
-	
-	private IJpaComposite visibleMappingComposite;
-	
-	private Collection<ITypeMappingUiProvider> typeMappingUiProviders;
-	
-	public PersistentTypeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NONE, new BasicCommandStack(), widgetFactory);
-		this.persistentTypeListener = buildPersistentTypeListener();
-		this.composites = new HashMap();
-		this.typeMappingUiProviders = buildTypeMappingUiProviders();
-	}
-	
-	protected Collection<ITypeMappingUiProvider> buildTypeMappingUiProviders() {
-		Collection<ITypeMappingUiProvider> typeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>();
-		typeMappingUiProviders.add(new NullTypeMappingUiProvider());
-		typeMappingUiProviders.add(new EntityUiProvider());
-		typeMappingUiProviders.add(new MappedSuperclassUiProvider());			
-		typeMappingUiProviders.add(new EmbeddableUiProvider());			
-		return typeMappingUiProviders;
-	}
-	
-	private Adapter buildPersistentTypeListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				persistentTypeChanged(notification);
-			}
-		};
-	}
-	
-	private void persistentTypeChanged(Notification notification) {
-		switch (notification.getFeatureID(IPersistentType.class)) {
-			case JpaCorePackage.IPERSISTENT_TYPE__MAPPING_KEY:
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							populate();
-						}
-					});
-				break;
-		}
-	}
-
-	protected Label buildTypeMappingLabel(Composite parent) {
-		return getWidgetFactory().createLabel(parent, JptUiMessages.PersistentTypePage_mapAs);
-	}
-	
-	protected CComboViewer buildTypeMappingCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		typeMappingCombo = new CComboViewer(combo);
-		typeMappingCombo.setContentProvider(buildContentProvider());
-		typeMappingCombo.setLabelProvider(buildLabelProvider());
-		typeMappingCombo.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				typeMappingChanged(event);
-			}
-		});
-		return typeMappingCombo;
-	}
-	
-	private IContentProvider buildContentProvider() {
-		return new IStructuredContentProvider() {
-			public void dispose() {
-				// do nothing
-			}
-			
-			public Object[] getElements(Object inputElement) {
-				return (persistentType == null) ?
-						new String[] {}:
-						PersistentTypeDetailsPage.this.typeMappingUiProviders.toArray();
-			}
-			
-			public void inputChanged(
-					Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-		};
-	}
-	private IBaseLabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				return ((ITypeMappingUiProvider) element).label();
-			}
-		};
-	}
-	
-	protected PageBook buildTypeMappingPageBook(Composite parent) {
-		typeMappingPageBook = new PageBook(parent, SWT.NONE);
-		return typeMappingPageBook;
-	}
-		
-	private IJpaProject getJpaProject() {
-		return getPersistentType().getJpaProject();
-	}
-
-	private ITypeMappingUiProvider typeMappingUiProvider(String key) {
-		for (ITypeMappingUiProvider provider : this.typeMappingUiProviders) {
-			if (provider.key() == key) {
-				return provider;
-			}
-		}
-		throw new IllegalArgumentException("unsupported type mapping UI provider key: " + key);
-	}
-	
-	private void typeMappingChanged(SelectionChangedEvent event) {
-		if (isPopulating()) {
-			return;
-		}
-		if (event.getSelection() instanceof StructuredSelection) {
-			ITypeMappingUiProvider provider = (ITypeMappingUiProvider) ((StructuredSelection) event.getSelection()).getFirstElement();
-			persistentType.setMappingKey(provider.key());
-		}
-	}
-	
-	@Override
-	protected void doPopulate(IJpaContentNode persistentTypeNode) {
-		persistentType = (IPersistentType) persistentTypeNode;
-		populateMappingComboAndPage();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateMappingComboAndPage();
-	}
-	
-	protected void engageListeners() {
-		if (persistentType != null) {
-			persistentType.eAdapters().add(persistentTypeListener);
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (persistentType != null) {
-			persistentType.eAdapters().remove(persistentTypeListener);
-		}
-	}
-	
-	private void populateMappingComboAndPage() {
-		if (persistentType == null) {
-			currentMappingKey = null;
-			typeMappingCombo.setInput(null);
-			typeMappingCombo.setSelection(StructuredSelection.EMPTY);
-			
-			if (visibleMappingComposite != null) {
-				visibleMappingComposite.populate(null);
-				visibleMappingComposite = null;
-			}
-			
-			return;
-		}
-		
-		String mappingKey = persistentType.getMapping().getKey();
-		setComboData(mappingKey, persistentType.candidateMappingKeys());
-		
-		populateMappingPage(mappingKey);
-	}
-	
-	private void populateMappingPage(String mappingKey) {
-		if (visibleMappingComposite != null) {
-			if (mappingKey  == currentMappingKey) {
-				if (visibleMappingComposite != null) {
-					visibleMappingComposite.populate(persistentType.getMapping());
-					return;
-				}
-			}
-			else {
-				visibleMappingComposite.populate(null);
-				// don't return
-			}
-		}
-		
-		currentMappingKey = mappingKey;
-		
-		IJpaComposite mappingComposite = mappingCompositeFor(mappingKey);
-		typeMappingPageBook.showPage(mappingComposite.getControl());
-		
-		visibleMappingComposite = mappingComposite;
-		visibleMappingComposite.populate(persistentType.getMapping());
-	}
-	
-	private void setComboData(String mappingKey, Iterator availableMappingKeys) {
-		if (persistentType != typeMappingCombo.getInput()) {
-			typeMappingCombo.setInput(persistentType);
-		}
-		
-		ITypeMappingUiProvider provider = typeMappingUiProvider(mappingKey);
-		if (! provider.equals(((StructuredSelection) typeMappingCombo.getSelection()).getFirstElement())) {
-			typeMappingCombo.setSelection(new StructuredSelection(provider));
-		}
-	}
-	
-	private IJpaComposite mappingCompositeFor(String key) {
-		IJpaComposite mappingComposite = (IJpaComposite) composites.get(key);
-		if (mappingComposite != null) {
-			return mappingComposite;
-		}
-		
-		mappingComposite = buildMappingComposite(typeMappingPageBook, key);
-		
-		if (mappingComposite != null) {
-			composites.put(key, mappingComposite);
-		}
-		
-		return mappingComposite;
-	}
-	
-	protected IJpaComposite buildMappingComposite(PageBook pageBook, String key)  {
-		//TODO what about null composite?
-		return typeMappingUiProvider(key).buildPersistentTypeMappingComposite(pageBook, this.commandStack, getWidgetFactory());
-//		return new NullComposite(pageBook, commandStack);
-	}
-
-//TODO focus??
-//	public boolean setFocus() {
-//		super.setFocus();
-//		return typeMappingCombo.getCombo().setFocus();
-//	}
-	
-	public void dispose() {
-		disengageListeners();
-		for (Iterator i = composites.values().iterator(); i.hasNext(); ) {
-			((IJpaComposite) i.next()).dispose();
-		}
-		super.dispose();
-	}
-	
-	public IPersistentType getPersistentType() {
-		return persistentType;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java
deleted file mode 100644
index 21c7550..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package org.eclipse.jpt.ui.internal.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.BasicMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddedMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.IdMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.ManyToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.ManyToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.OneToManyMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.OneToOneMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.TransientMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.VersionMappingUiProvider;
-import org.eclipse.swt.SWT;
-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.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class AddPersistentAttributeToXmlAndMapDialog extends StatusDialog
-{
-	private XmlPersistentAttribute unmappedPersistentAttribute;
-	
-	private Label attributeLabel;
-		
-	private Text attributeText;
-	
-	private Label mappingLabel;
-	
-	private ComboViewer mappingCombo;
-		
-	
-	public AddPersistentAttributeToXmlAndMapDialog(Shell parentShell, XmlPersistentAttribute unmappedPersistentAttribute) {
-		super(parentShell);
-		this.unmappedPersistentAttribute = unmappedPersistentAttribute;
-		setTitle(JptUiMessages.AddPersistentAttributeDialog_title);
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		
-		Composite composite = new Composite(dialogArea, SWT.NULL);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		composite.setLayout(new GridLayout());
-		
-		attributeLabel = createLabel(composite, 1, JptUiMessages.AddPersistentAttributeDialog_attributeLabel);
-			
-		attributeText = createText(composite, 1);
-//		attributeText.addModifyListener(
-//				new ModifyListener() {
-//					public void modifyText(ModifyEvent e) {
-//						validate();
-//					}
-//				}
-//			);
-		attributeText.setText(unmappedPersistentAttribute.getName());
-		attributeText.setEditable(false);
-		
-		mappingLabel = createLabel(composite, 1, JptUiMessages.AddPersistentClassDialog_mappingLabel);
-		
-		mappingCombo = new ComboViewer(createCombo(composite, 1));
-		mappingCombo.setContentProvider(
-			new IStructuredContentProvider() {
-				public void dispose() {}
-				
-				public Object[] getElements(Object inputElement) {
-					return new Object[] {
-						BasicMappingUiProvider.instance(),
-						IdMappingUiProvider.instance(),
-						VersionMappingUiProvider.instance(),
-						OneToOneMappingUiProvider.instance(),
-						OneToManyMappingUiProvider.instance(),
-						ManyToOneMappingUiProvider.instance(),
-						ManyToManyMappingUiProvider.instance(),
-						EmbeddedMappingUiProvider.instance(),
-						EmbeddedIdMappingUiProvider.instance(),
-						TransientMappingUiProvider.instance()
-					};
-				}
-				
-				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-			});
-		mappingCombo.setLabelProvider(
-			new LabelProvider() {
-				@Override
-				public String getText(Object element) {
-					return ((IAttributeMappingUiProvider) element).label();
-				}
-			});
-		mappingCombo.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				validate();
-			}
-		});
-		mappingCombo.setInput("FOO");
-		mappingCombo.getCombo().select(0);  // select Basic to begin
-		
-		// TODO - F1 Help
-		// PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IDaliHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE);
-		
-		//getButton(IDialogConstants.OK_ID).setEnabled(false);  // disabled to start
-		applyDialogFont(dialogArea);		
-		
-		validate();
-		
-		return dialogArea;
-	}
-	
-	private Label createLabel(Composite container, int span, String text) {
-		Label label = new Label(container, SWT.NONE);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		label.setLayoutData(gd);
-		return label;
-	}
-	
-	private Text createText(Composite container, int span) {
-		Text text = new Text(container, SWT.BORDER | SWT.SINGLE);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = span;
-		gd.widthHint = 250;
-		text.setLayoutData(gd);
-		return text;
-	}
-	
-	private Combo createCombo(Composite container, int span) {
-		Combo combo = new Combo(container, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = span;
-		combo.setLayoutData(gd);
-		return combo;
-	}
-	
-	private IJpaProject getJpaProject() {
-		return unmappedPersistentAttribute.getJpaProject();
-	}
-	
-	public String getAttributeName() {
-		return attributeText.getText();
-	}
-	
-	public String getMappingKey() {
-		StructuredSelection selection = (StructuredSelection) mappingCombo.getSelection();
-		return (selection.isEmpty()) ? null : ((IAttributeMappingUiProvider) selection.getFirstElement()).key();
-	}
-	
-	private void validate() {
-//		if (entityMappings.containsPersistentType(type)) {
-//			updateStatus(
-//				new Status(
-//					IStatus.WARNING, JptUiPlugin.PLUGIN_ID, 
-//					JptUiMessages.AddPersistentClassDialog_duplicateClassWarning));
-//			return;
-//		}
-//		
-		String mappingKey = getMappingKey();
-		if (mappingKey == null) {
-			updateStatus(
-				new Status(
-					IStatus.ERROR, JptUiPlugin.PLUGIN_ID,
-					JptUiMessages.AddPersistentAttributeDialog_noMappingKeyError));
-			return;
-		}
-		
-		updateStatus(Status.OK_STATUS);
-	}
-	
-	@Override
-	protected void okPressed() {
-		unmappedPersistentAttribute.setSpecifiedMappingKey(getMappingKey());
-		unmappedPersistentAttribute.setVirtual(false);
-		super.okPressed();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java
deleted file mode 100644
index 1bd955b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/dialogs/AddPersistentClassDialog.java
+++ /dev/null
@@ -1,279 +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.ui.internal.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddableUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EntityUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.MappedSuperclassUiProvider;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-
-public class AddPersistentClassDialog extends StatusDialog
-{
-	private EntityMappingsInternal entityMappings;
-	
-	private Label classLabel;
-		
-	private Text classText;
-	
-	private Button classBrowseButton;
-	
-	private Label mappingLabel;
-	
-	private ComboViewer mappingCombo;
-		
-	
-	public AddPersistentClassDialog(Shell parentShell, EntityMappingsInternal entityMappings) {
-		super(parentShell);
-		this.entityMappings = entityMappings;
-		setTitle(JptUiMessages.AddPersistentClassDialog_title);
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		
-		Composite composite = new Composite(dialogArea, SWT.NULL);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		composite.setLayout(new GridLayout(2, false));
-		
-		classLabel = createLabel(composite, 2, JptUiMessages.AddPersistentClassDialog_classLabel);
-			
-		classText = createText(composite, 1);
-		classText.addModifyListener(
-				new ModifyListener() {
-					public void modifyText(ModifyEvent e) {
-						validate();
-					}
-				}
-			);
-		
-		classBrowseButton = createButton(composite, 1, JptUiMessages.General_browse);
-		classBrowseButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				IType type = chooseType();
-				if (type != null) {
-					classText.setText(type.getFullyQualifiedName());
-				}
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-		
-		mappingLabel = createLabel(composite, 2, JptUiMessages.AddPersistentClassDialog_mappingLabel);
-		
-		mappingCombo = new ComboViewer(createCombo(composite, 2));
-		mappingCombo.setContentProvider(
-			new IStructuredContentProvider() {
-				public void dispose() {}
-				
-				public Object[] getElements(Object inputElement) {
-					return new Object[] {
-						new MappedSuperclassUiProvider(), 
-						new EntityUiProvider(), 
-						new EmbeddableUiProvider()
-					};
-				}
-				
-				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-			});
-		mappingCombo.setLabelProvider(
-			new LabelProvider() {
-				@Override
-				public String getText(Object element) {
-					return ((ITypeMappingUiProvider) element).label();
-				}
-			});
-		mappingCombo.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				validate();
-			}
-		});
-		mappingCombo.setInput("FOO");
-		mappingCombo.getCombo().select(1);  // select Entity to begin
-		
-		// TODO - F1 Help
-		// PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IDaliHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE);
-		
-		//getButton(IDialogConstants.OK_ID).setEnabled(false);  // disabled to start
-		applyDialogFont(dialogArea);		
-		
-		validate();
-		
-		return dialogArea;
-	}
-	
-	private Label createLabel(Composite container, int span, String text) {
-		Label label = new Label(container, SWT.NONE);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		label.setLayoutData(gd);
-		return label;
-	}
-	
-	private Text createText(Composite container, int span) {
-		Text text = new Text(container, SWT.BORDER | SWT.SINGLE);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = span;
-		gd.widthHint = 250;
-		text.setLayoutData(gd);
-		return text;
-	}
-	
-	private Button createButton(Composite container, int span, String text) {
-		Button button = new Button(container, SWT.NONE);
-		button.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		button.setLayoutData(gd);
-		return button;
-	}
-	
-	private Combo createCombo(Composite container, int span) {
-		Combo combo = new Combo(container, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = span;
-		combo.setLayoutData(gd);
-		return combo;
-	}
-	
-	private IJpaProject getJpaProject() {
-		return entityMappings.getJpaProject();
-	}
-	
-	public String getClassName() {
-		return classText.getText();
-	}
-	
-	public String getMappingKey() {
-		StructuredSelection selection = (StructuredSelection) mappingCombo.getSelection();
-		return (selection.isEmpty()) ? null : ((ITypeMappingUiProvider) selection.getFirstElement()).key();
-	}
-	
-	protected IType chooseType() {
-		IJavaElement[] elements= new IJavaElement[] { getJpaProject().getJavaProject() };
-		IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements);
-		IProgressService service = PlatformUI.getWorkbench().getProgressService();
-		
-		SelectionDialog typeSelectionDialog;
-		try {
-			typeSelectionDialog = 
-				JavaUI.createTypeDialog(
-						getShell(), service, scope, 
-						IJavaElementSearchConstants.CONSIDER_CLASSES, 
-						false, getClassName());
-		}
-		catch (JavaModelException e) {
-			JptUiPlugin.log(e);
-			throw new RuntimeException(e);
-		}
-		typeSelectionDialog.setTitle(JptUiMessages.AddPersistentClassDialog_classDialog_title); 
-		typeSelectionDialog.setMessage(JptUiMessages.AddPersistentClassDialog_classDialog_message); 
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-		return null;
-	}
-	
-	private void validate() {
-		String className = getClassName();
-		
-		if (StringTools.stringIsEmpty(className)) {
-			updateStatus(
-				new Status(
-					IStatus.ERROR, JptUiPlugin.PLUGIN_ID, 
-					JptUiMessages.AddPersistentClassDialog_noClassError));
-			return;
-		}
-		
-		IType type;
-		try {
-			type = getJpaProject().getJavaProject().findType(className);
-		}
-		catch (JavaModelException jme) {
-			type = null;
-		}
-		
-		if (type == null) {
-			updateStatus(
-				new Status(
-					IStatus.WARNING, JptUiPlugin.PLUGIN_ID,
-					JptUiMessages.AddPersistentClassDialog_classNotFoundWarning));
-			return;
-		}
-		
-		if (entityMappings.containsPersistentType(type)) {
-			updateStatus(
-				new Status(
-					IStatus.WARNING, JptUiPlugin.PLUGIN_ID, 
-					JptUiMessages.AddPersistentClassDialog_duplicateClassWarning));
-			return;
-		}
-		
-		String mappingKey = getMappingKey();
-		if (mappingKey == null) {
-			updateStatus(
-				new Status(
-					IStatus.ERROR, JptUiPlugin.PLUGIN_ID,
-					JptUiMessages.AddPersistentClassDialog_noMappingKeyError));
-			return;
-		}
-		
-		updateStatus(Status.OK_STATUS);
-	}
-	
-	@Override
-	protected void okPressed() {
-		entityMappings.addMapping(getClassName(), getMappingKey());
-		super.okPressed();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java
deleted file mode 100644
index 300861c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/EntitiesGenerator.java
+++ /dev/null
@@ -1,293 +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.ui.internal.generic;
-
-import java.util.Collection;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.synch.SynchronizeClassesJob;
-import org.eclipse.jpt.gen.internal.EntityGenerator;
-import org.eclipse.jpt.gen.internal.PackageGenerator;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.wizards.GenerateEntitiesWizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- *  EntitiesGenerator
- */
-public class EntitiesGenerator
-{
-	private IJpaProject project;
-	private IStructuredSelection selection;
-
-	// ********** constructors **********
-
-	static public void generate( IJpaProject project, IStructuredSelection selection) {
-		if(project == null) {
-			throw new NullPointerException();
-		}
-		new EntitiesGenerator( project, selection).generate();
-	}
-	
-	public EntitiesGenerator() {
-		super();
-	}
-
-	private EntitiesGenerator( IJpaProject project, IStructuredSelection selection) {
-		super();
-		this.project = project;
-		this.selection = selection;
-	}
-
-	// ********** behavior **********
-
-	protected void generate() {
-		GenerateEntitiesWizard wizard = new GenerateEntitiesWizard(this.project, this.selection);
-		
-		WizardDialog dialog = new WizardDialog(this.getCurrentShell(), wizard);
-		dialog.create();
-		int returnCode = dialog.open();
-		if (returnCode == Window.OK) {
-			WorkspaceJob runnable = new GenerateEntitiesRunnable(
-					wizard.getPackageGeneratorConfig(),
-					wizard.getEntityGeneratorConfig(),
-					wizard.getSelectedTables(),
-					wizard.synchronizePersistenceXml(),
-					project,
-					new OverwriteConfirmer(this.getCurrentShell())
-			);
-			
-			runnable.schedule();
-		}
-	}
-	
-	private Shell getCurrentShell() {
-	    return Display.getCurrent().getActiveShell();
-	}
-	  
-	// ********** runnable **********
-
-	static class GenerateEntitiesRunnable extends WorkspaceJob {
-		private final PackageGenerator.Config packageConfig;
-		private final EntityGenerator.Config entityConfig;
-		private final Collection selectedTables;
-		private final boolean synchronizePersistenceXml;
-		private final EntityGenerator.OverwriteConfirmer overwriteConfirmer;
-		private final IJpaProject project;
-		
-		GenerateEntitiesRunnable(
-				PackageGenerator.Config packageConfig,
-				EntityGenerator.Config entityConfig,
-				Collection selectedTables,
-				boolean synchronizePersistenceXml,
-				IJpaProject project,
-				EntityGenerator.OverwriteConfirmer overwriteConfirmer
-		) {
-			super(JptUiMessages.EntitiesGenerator_jobName);
-			this.packageConfig = packageConfig;
-			this.entityConfig = entityConfig;
-			this.selectedTables = selectedTables;
-			this.synchronizePersistenceXml = synchronizePersistenceXml;
-			this.overwriteConfirmer = overwriteConfirmer;
-			this.project = project;
-			setRule(project.getProject());
-		}
-
-		@Override
-		public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-			PackageGenerator.generateEntities(this.packageConfig, this.entityConfig, this.selectedTables, this.overwriteConfirmer, monitor);
-			//force resourceChangeEvents to be posted before synchronizing persistence.xml
-			ResourcesPlugin.getWorkspace().checkpoint(false);
-			if (synchronizePersistenceXml) {
-				// we currently only support *one* persistence.xml file per project
-				IJpaFile resource = project.getPlatform().validPersistenceXmlFiles().next();
-				if (resource != null) {
-					SynchronizeClassesJob job = new SynchronizeClassesJob(resource.getFile());
-					job.schedule();
-				}
-			}
-			
-			return Status.OK_STATUS;
-		}
-
-	}
-
-	// ********** overwrite confirmer **********
-
-	static class OverwriteConfirmer implements EntityGenerator.OverwriteConfirmer {
-		private Shell shell;
-		private boolean overwriteAll = false;
-		private boolean skipAll = false;
-
-		OverwriteConfirmer(Shell shell) {
-			super();
-			this.shell = shell;
-		}
-
-		public boolean overwrite(final String className) {
-			if (this.overwriteAll) {
-				return true;
-			}
-			if (this.skipAll) {
-				return false;
-			}
-			return this.promptUser(className);
-		}
-
-		private boolean promptUser(String className) {
-			
-			final OverwriteConfirmerDialog dialog = new OverwriteConfirmerDialog(this.shell, className);
-			//get on the UI thread synchronously, need feedback before continuing
-			shell.getDisplay().syncExec(new Runnable() {
-				public void run() {
-					dialog.open();
-				}
-			});
-			if (dialog.getReturnCode() == Window.CANCEL) {
-				throw new OperationCanceledException();
-			}
-			if (dialog.yes()) {
-				return true;
-			} else if (dialog.yesToAll()) {
-				this.overwriteAll = true;
-				return true;
-			} else if (dialog.no()) {
-				return false;
-			} else if (dialog.noToAll()) {
-				this.skipAll = true;
-				return false;
-			}
-			throw new IllegalStateException();
-		}
-
-	}
-
-	// ********** dialog **********
-
-	static class OverwriteConfirmerDialog extends Dialog {
-		private final String className;
-		private boolean yes = false;
-		private boolean yesToAll = false;
-		private boolean no = false;
-		private boolean noToAll = false;
-
-		OverwriteConfirmerDialog(Shell parent, String className) {
-			super(parent);
-			this.className = className;
-		}
-
-		protected void configureShell(Shell shell) {
-			super.configureShell(shell);
-			shell.setText(JptUiMessages.OverwriteConfirmerDialog_title);
-		}
-
-		protected Control createDialogArea(Composite parent) {
-			Composite composite = (Composite) super.createDialogArea(parent);
-			GridLayout gridLayout = (GridLayout) composite.getLayout();
-			gridLayout.numColumns = 2;
-
-			Label text = new Label(composite, SWT.LEFT);
-			text.setText(NLS.bind(JptUiMessages.OverwriteConfirmerDialog_text, this.className));
-			text.setLayoutData(new GridData());
-			
-			return composite;
-		}
-
-		protected void createButtonsForButtonBar(Composite parent) {
-			this.createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, false);
-			this.createButton(parent, IDialogConstants.YES_TO_ALL_ID, IDialogConstants.YES_TO_ALL_LABEL, false);
-			this.createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true);
-			this.createButton(parent, IDialogConstants.NO_TO_ALL_ID, IDialogConstants.NO_TO_ALL_LABEL, false);
-			this.createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		}
-
-		protected void buttonPressed(int buttonId) {
-			switch (buttonId) {
-				case IDialogConstants.YES_ID :
-					this.yesPressed();
-					break;
-				case IDialogConstants.YES_TO_ALL_ID :
-					this.yesToAllPressed();
-					break;
-				case IDialogConstants.NO_ID :
-					this.noPressed();
-					break;
-				case IDialogConstants.NO_TO_ALL_ID :
-					this.noToAllPressed();
-					break;
-				case IDialogConstants.CANCEL_ID :
-					this.cancelPressed();
-					break;
-				default :
-					break;
-			}
-		}
-
-		private void yesPressed() {
-			this.yes = true;
-			this.setReturnCode(OK);
-			this.close();
-		}
-
-		private void yesToAllPressed() {
-			this.yesToAll = true;
-			this.setReturnCode(OK);
-			this.close();
-		}
-
-		private void noPressed() {
-			this.no = true;
-			this.setReturnCode(OK);
-			this.close();
-		}
-
-		private void noToAllPressed() {
-			this.noToAll = true;
-			this.setReturnCode(OK);
-			this.close();
-		}
-
-		boolean yes() {
-			return this.yes;
-		}
-
-		boolean yesToAll() {
-			return this.yesToAll;
-		}
-
-		boolean no() {
-			return this.no;
-		}
-
-		boolean noToAll() {
-			return this.noToAll;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/GenericPlatformUi.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/GenericPlatformUi.java
deleted file mode 100644
index 0189ea6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/generic/GenericPlatformUi.java
+++ /dev/null
@@ -1,38 +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.ui.internal.generic;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.ui.internal.BaseJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class GenericPlatformUi extends BaseJpaPlatformUi
-{
-	public GenericPlatformUi() {
-		super();
-	}
-	
-	public void generateDDL(IJpaProject project, IStructuredSelection selection) {
-		this.displayNotSupportedMessage(JptUiMessages.GenericPlatformUiDialog_notSupportedMessageTitle, JptUiMessages.GenericPlatformUiDialog_notSupportedMessageText);
-	}
-
-	protected void displayNotSupportedMessage(String title, String message) {
-	    String formattedMessage = MessageFormat.format( message, (Object [])(new String [] { message}));
-	    Shell currentShell = Display.getCurrent().getActiveShell();
-	    MessageDialog.openInformation(currentShell, title, formattedMessage);	  
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/IAttributeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/IAttributeMappingUiProvider.java
deleted file mode 100644
index 4276feb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/IAttributeMappingUiProvider.java
+++ /dev/null
@@ -1,46 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IAttributeMapping;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-public interface IAttributeMappingUiProvider
-{
-	/**
-	 * A unique string that corresponds to the key of a MappingProvider in the core
-	 * (IJavaAttributeMappingProvider and/or IXmlAttributeMappingProvider)
-	 */
-	String key();
-
-	/**
-	 * A label to be displayed to the label as an option in the mapping type combo box 
-	 * @return
-	 */
-	String label();
-
-	/**
-	 * The IJpaComposite that correponds to this mapping type.  This will be displayed
-	 * by the PersistentAttributeDetailsPage when the mapping key matches the key given
-	 * by this provider.  The composites will be stored in a Map with the mapping key as the key.
-	 * 
-	 * @param parent
-	 * @param commandStack
-	 * @param widgetFactory
-	 * @return
-	 */
-	IJpaComposite<IAttributeMapping> buildAttributeMappingComposite(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory);
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java
deleted file mode 100644
index d614a57..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/ITypeMappingUiProvider.java
+++ /dev/null
@@ -1,43 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public interface ITypeMappingUiProvider
-{
-	/**
-	 * A unique string that corresponds to the key of a MappingProvider in the core
-	 */
-	String key();
-	
-	/**
-	 * A label to be displayed to the label as an option in the mapping type combo box 
-	 * @return
-	 */
-	String label();
-
-	/**
-	 * The IJpaComposite that correponds to this mapping type.  This will be displayed
-	 * by the PersistentTypeDetailsPage when the mapping key matches the key given
-	 * by this provider.  The composites will be stored in a Map with the mapping key as the key.
-	 * 
-	 * @param parent
-	 * @param commandStack
-	 * @param widgetFactory
-	 * @return
-	 */
-	IJpaComposite buildPersistentTypeMappingComposite(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory);
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaDetailsProvider.java
deleted file mode 100644
index 314f1c5..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaDetailsProvider.java
+++ /dev/null
@@ -1,45 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.details;
-
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jpt.core.internal.content.java.IJavaContentNodes;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsPage;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JavaDetailsProvider 
-	implements IJpaDetailsProvider
-{
-	public JavaDetailsProvider() {
-		super();
-	}
-	
-	public String fileContentType() {
-		return JavaCore.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	public IJpaDetailsPage buildDetailsPage(
-			Composite parentComposite, Object contentNodeId, TabbedPropertySheetWidgetFactory widgetFactory) {
-		if (contentNodeId.equals(IJavaContentNodes.PERSISTENT_TYPE_ID)) {
-			return new JavaPersistentTypeDetailsPage(parentComposite, widgetFactory);
-		}
-		else if (contentNodeId.equals(IJavaContentNodes.PERSISTENT_ATTRIBUTE_ID)) {
-			return new JavaPersistentAttributeDetailsPage(parentComposite, widgetFactory);
-		}
-		
-		return null;
-	}
-
-	public void dispose() {
-		// no op  ... for now
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java
deleted file mode 100644
index b249b9b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentAttributeDetailsPage.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.details;
-
-import org.eclipse.jpt.ui.internal.details.PersistentAttributeDetailsPage;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JavaPersistentAttributeDetailsPage
-	extends PersistentAttributeDetailsPage 
-{
-	public JavaPersistentAttributeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new GridLayout(2, false));
-		
-		GridData gridData;
-		
-		buildMappingLabel(composite);
-		
-		CComboViewer mappingCombo = buildMappingCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		mappingCombo.getCombo().setLayoutData(gridData);
-		
-		PageBook book = buildMappingPageBook(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		book.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java
deleted file mode 100644
index 9b2d273..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/details/JavaPersistentTypeDetailsPage.java
+++ /dev/null
@@ -1,53 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.details;
-
-import org.eclipse.jpt.ui.internal.details.PersistentTypeDetailsPage;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JavaPersistentTypeDetailsPage extends
-		PersistentTypeDetailsPage 
-{	
-	
-	public JavaPersistentTypeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {	    
-	    GridLayout gridLayout = new GridLayout();
-	    gridLayout.numColumns = 2;
-	    composite.setLayout(gridLayout);
-		
-	    buildTypeMappingLabel(composite);
-	    
-		CComboViewer typeMappingCombo = buildTypeMappingCombo(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-	    gridData.grabExcessHorizontalSpace = true;
-		typeMappingCombo.getCombo().setLayoutData(gridData);
-
-		PageBook typeMappingPageBook = buildTypeMappingPageBook(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		typeMappingPageBook.setLayoutData(gridData);
-	}	
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/BasicMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/BasicMappingUiProvider.java
deleted file mode 100644
index 72af6c5..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/BasicMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.BasicComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class BasicMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final BasicMappingUiProvider INSTANCE = new BasicMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private BasicMappingUiProvider() {
-		super();
-	}
-	
-	public String key() {
-		return IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_BasicLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new BasicComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultBasicMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultBasicMappingUiProvider.java
deleted file mode 100644
index c01c35d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultBasicMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.BasicComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class DefaultBasicMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final DefaultBasicMappingUiProvider INSTANCE = new DefaultBasicMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private DefaultBasicMappingUiProvider() {
-		super();
-	}
-	
-	public String key() {
-		return IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return "Default (" + JptUiMappingsMessages.PersistentAttributePage_BasicLabel + ")";
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new BasicComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultEmbeddedMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultEmbeddedMappingUiProvider.java
deleted file mode 100644
index 57c4932..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/DefaultEmbeddedMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddedComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class DefaultEmbeddedMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final DefaultEmbeddedMappingUiProvider INSTANCE = new DefaultEmbeddedMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private DefaultEmbeddedMappingUiProvider() {
-		super();
-	}
-	
-	public String key() {
-		return IMappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return "Default (" + JptUiMappingsMessages.PersistentAttributePage_EmbeddedLabel + ")";
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EmbeddedComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java
deleted file mode 100644
index ca4a97e..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddableUiProvider.java
+++ /dev/null
@@ -1,35 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddableComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddableUiProvider implements ITypeMappingUiProvider
-{
-	public String key() {
-		return IMappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentTypePage_EmbeddableLabel;
-	}
-	
-	public IJpaComposite buildPersistentTypeMappingComposite(
-				Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EmbeddableComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedIdMappingUiProvider.java
deleted file mode 100644
index fb49af2..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedIdMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddedIdComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddedIdMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final EmbeddedIdMappingUiProvider INSTANCE = new EmbeddedIdMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private EmbeddedIdMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_EmbeddedIdLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EmbeddedIdComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedMappingUiProvider.java
deleted file mode 100644
index 4da937b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EmbeddedMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddedComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddedMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final EmbeddedMappingUiProvider INSTANCE = new EmbeddedMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private EmbeddedMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_EmbeddedLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EmbeddedComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java
deleted file mode 100644
index 80d489a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/EntityUiProvider.java
+++ /dev/null
@@ -1,35 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EntityComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EntityUiProvider implements ITypeMappingUiProvider
-{
-	public String key() {
-		return IMappingKeys.ENTITY_TYPE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentTypePage_EntityLabel;
-	}
-	
-	public IJpaComposite buildPersistentTypeMappingComposite(
-				Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EntityComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/IdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/IdMappingUiProvider.java
deleted file mode 100644
index 199b0fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/IdMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.IdComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class IdMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final IdMappingUiProvider INSTANCE = new IdMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private IdMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_IdLabel;
-	}
-
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new IdComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToManyMappingUiProvider.java
deleted file mode 100644
index 8515d35..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToManyMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToManyComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class ManyToManyMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final ManyToManyMappingUiProvider INSTANCE = new ManyToManyMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private ManyToManyMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_ManyToManyLabel;
-	}
-
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new ManyToManyComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToOneMappingUiProvider.java
deleted file mode 100644
index c81832c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/ManyToOneMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToOneComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class ManyToOneMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final ManyToOneMappingUiProvider INSTANCE = new ManyToOneMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private ManyToOneMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_ManyToOneLabel;
-	}
-
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new ManyToOneComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java
deleted file mode 100644
index aa71476..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/MappedSuperclassUiProvider.java
+++ /dev/null
@@ -1,34 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.MappedSuperclassComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class MappedSuperclassUiProvider implements ITypeMappingUiProvider
-{
-	public String key() {
-		return IMappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentTypePage_MappedSuperclassLabel;
-	}
-
-	public IJpaComposite buildPersistentTypeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new MappedSuperclassComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullAttributeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullAttributeMappingUiProvider.java
deleted file mode 100644
index 1c16047..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullAttributeMappingUiProvider.java
+++ /dev/null
@@ -1,75 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class NullAttributeMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final NullAttributeMappingUiProvider INSTANCE = new NullAttributeMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private NullAttributeMappingUiProvider() {
-		super();
-	}
-
-
-	public String key() {
-		return null;
-	}
-	
-	public String label() {
-		return "";
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new NullComposite(parent);
-	}
-	
-	
-	public static class NullComposite extends Composite 
-		implements IJpaComposite 
-	{
-		NullComposite(Composite parent) {
-			super(parent, SWT.NONE);
-		}
-		
-		public void populate(EObject model) {
-			// no op
-		}
-		
-		@Override
-		public void dispose() {
-			super.dispose();
-		}
-		public Control getControl() {
-			return this;
-		}
-	}	
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java
deleted file mode 100644
index b435bd5..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/NullTypeMappingUiProvider.java
+++ /dev/null
@@ -1,59 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class NullTypeMappingUiProvider implements ITypeMappingUiProvider
-{
-	public String key() {
-		return null;
-	}
-	
-	public String label() {
-		return "";
-	}
-	
-	public IJpaComposite buildPersistentTypeMappingComposite(
-				Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new NullComposite(parent);
-	}
-	
-	
-	public static class NullComposite extends Composite 
-	implements IJpaComposite 
-	{
-		private Composite composite;
-		NullComposite(Composite parent) {
-			super(parent, SWT.NONE);
-			this.composite = new Composite(parent, SWT.NONE);
-		}
-		
-		public void populate(EObject model) {
-			// no op
-		}
-		
-		@Override
-		public void dispose() {
-			super.dispose();
-		}
-		
-		public Control getControl() {
-			return this.composite;
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToManyMappingUiProvider.java
deleted file mode 100644
index bb130bc..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToManyMappingUiProvider.java
+++ /dev/null
@@ -1,52 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.OneToManyComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class OneToManyMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	// singleton
-	private static final OneToManyMappingUiProvider INSTANCE = new OneToManyMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private OneToManyMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_OneToManyLabel;
-	}
-
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new OneToManyComposite(parent, commandStack, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToOneMappingUiProvider.java
deleted file mode 100644
index 27fa225..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/OneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.OneToOneComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class OneToOneMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final OneToOneMappingUiProvider INSTANCE = new OneToOneMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private OneToOneMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_OneToOneLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new OneToOneComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/TransientMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/TransientMappingUiProvider.java
deleted file mode 100644
index c8b4811..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/TransientMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.TransientComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TransientMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final TransientMappingUiProvider INSTANCE = new TransientMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private TransientMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_TransientLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new TransientComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/VersionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/VersionMappingUiProvider.java
deleted file mode 100644
index 75f14df..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/mappings/properties/VersionMappingUiProvider.java
+++ /dev/null
@@ -1,53 +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.ui.internal.java.mappings.properties;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.core.internal.IMappingKeys;
-import org.eclipse.jpt.ui.internal.details.IJpaComposite;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.VersionComposite;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class VersionMappingUiProvider
-	implements IAttributeMappingUiProvider
-{
-	
-	// singleton
-	private static final VersionMappingUiProvider INSTANCE = new VersionMappingUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static IAttributeMappingUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure non-instantiability.
-	 */
-	private VersionMappingUiProvider() {
-		super();
-	}
-
-	public String key() {
-		return IMappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String label() {
-		return JptUiMappingsMessages.PersistentAttributePage_VersionLabel;
-	}
-	
-	public IJpaComposite buildAttributeMappingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new VersionComposite(parent, commandStack, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaCompilationUnitItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaCompilationUnitItemProvider.java
deleted file mode 100644
index 75873a1..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaCompilationUnitItemProvider.java
+++ /dev/null
@@ -1,60 +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.ui.internal.java.structure;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.core.internal.content.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit;
-import org.eclipse.jpt.core.internal.content.java.JpaJavaPackage;
-
-public class JavaCompilationUnitItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider, 
-		IItemLabelProvider
-{
-	public JavaCompilationUnitItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	@Override
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(JpaJavaPackage.Literals.JPA_COMPILATION_UNIT__TYPES);
-		}
-		return childrenFeatures;
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(JpaCompilationUnit.class)) {
-			case JpaJavaPackage.JPA_COMPILATION_UNIT__TYPES:
-				fireNotifyChanged(
-					new ViewerNotification(
-						notification, notification.getNotifier(), true, false));
-			return;
-		}
-		
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentAttributeItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentAttributeItemProvider.java
deleted file mode 100644
index 902c832..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentAttributeItemProvider.java
+++ /dev/null
@@ -1,101 +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.ui.internal.java.structure;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.IAttributeMapping;
-import org.eclipse.jpt.core.internal.IPersistentAttribute;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.core.internal.mappings.IBasic;
-import org.eclipse.jpt.core.internal.mappings.IEmbedded;
-import org.eclipse.jpt.core.internal.mappings.IEmbeddedId;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.IManyToMany;
-import org.eclipse.jpt.core.internal.mappings.IManyToOne;
-import org.eclipse.jpt.core.internal.mappings.IOneToMany;
-import org.eclipse.jpt.core.internal.mappings.IOneToOne;
-import org.eclipse.jpt.core.internal.mappings.ITransient;
-import org.eclipse.jpt.core.internal.mappings.IVersion;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsImages;
-
-public class JavaPersistentAttributeItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider, 
-		IItemLabelProvider
-{
-	public JavaPersistentAttributeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	@Override
-	public Object getImage(Object object) {
-		IAttributeMapping mapping = ((IPersistentAttribute) object).getMapping();
-		
-		if (mapping instanceof IBasic) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.BASIC);
-		}
-		else if (mapping instanceof IId) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.ID);
-		}
-		else if (mapping instanceof IVersion) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.VERSION);
-		}
-		else if (mapping instanceof IEmbedded) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDED);
-		}
-		else if (mapping instanceof IEmbeddedId) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDED_ID);
-		}
-		else if (mapping instanceof IOneToOne) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.ONE_TO_ONE);
-		}
-		else if (mapping instanceof IOneToMany) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.ONE_TO_MANY);
-		}
-		else if (mapping instanceof IManyToOne) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.MANY_TO_ONE);
-		}
-		else if (mapping instanceof IManyToMany) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.MANY_TO_MANY);
-		}
-		else if (mapping instanceof ITransient) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.TRANSIENT);
-		}
-		else {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.NULL_ATTRIBUTE_MAPPING);
-		}
-	}
-	
-	@Override
-	public String getText(Object object) {
-		return ((IPersistentAttribute) object).getName();
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(IPersistentAttribute.class)) {
-		case JpaCorePackage.IPERSISTENT_ATTRIBUTE__MAPPING:
-			fireNotifyChanged(new ViewerNotification(notification, notification
-					.getNotifier(), false, true));
-			return;
-		}
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentTypeItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentTypeItemProvider.java
deleted file mode 100644
index c1cd5bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaPersistentTypeItemProvider.java
+++ /dev/null
@@ -1,98 +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.ui.internal.java.structure;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jpt.core.internal.IPersistentType;
-import org.eclipse.jpt.core.internal.ITypeMapping;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.core.internal.content.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.content.java.JpaJavaPackage;
-import org.eclipse.jpt.core.internal.mappings.IEmbeddable;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IMappedSuperclass;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsImages;
-
-public class JavaPersistentTypeItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider, 
-		IItemLabelProvider
-{
-	public JavaPersistentTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	
-	@Override
-	protected Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(JpaJavaPackage.Literals.JAVA_PERSISTENT_TYPE__ATTRIBUTES);
-		}
-		return childrenFeatures;
-	}
-	
-	@Override
-	public Object getImage(Object object) {
-		ITypeMapping mapping = ((IPersistentType) object).getMapping();
-		
-		
-		if (mapping instanceof IEntity) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.ENTITY);
-		}
-		else if (mapping instanceof IEmbeddable) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDABLE);
-		}
-		else if (mapping instanceof IMappedSuperclass) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.MAPPED_SUPERCLASS);
-		}
-		else {
-			return null;
-		}
-	}
-	
-	@Override
-	public String getText(Object object) {
-		IType type = ((IPersistentType) object).findJdtType();
-		return (type == null) ? "" : type.getElementName();
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(JavaPersistentType.class)) {
-			case JpaCorePackage.IPERSISTENT_TYPE__MAPPING_KEY:
-				fireNotifyChanged(
-					new ViewerNotification(
-						notification, notification.getNotifier(), false, true));
-				return;
-			
-			case JpaJavaPackage.JAVA_PERSISTENT_TYPE__ATTRIBUTES:
-				fireNotifyChanged(
-					new ViewerNotification(
-						notification, notification.getNotifier(), true, false));
-			return;
-		}
-		
-		super.notifyChanged(notification);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaStructureProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaStructureProvider.java
deleted file mode 100644
index a1af28c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JavaStructureProvider.java
+++ /dev/null
@@ -1,38 +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.ui.internal.java.structure;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-
-public class JavaStructureProvider implements IJpaStructureProvider
-{
-	public String fileContentType() {
-		return JavaCore.JAVA_SOURCE_CONTENT_TYPE;
-	}
-
-	public ITreeContentProvider buildContentProvider() {
-		return new AdapterFactoryContentProvider(new JpaCoreJavaItemProviderAdapterFactory());
-	}
-	
-	public ILabelProvider buildLabelProvider() {
-		return new AdapterFactoryLabelProvider(new JpaCoreJavaItemProviderAdapterFactory());
-	}
-	
-	public void dispose() {
-		// TODO Auto-generated method stub
-		
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JpaCoreJavaItemProviderAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JpaCoreJavaItemProviderAdapterFactory.java
deleted file mode 100644
index 7308534..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/java/structure/JpaCoreJavaItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,176 +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.ui.internal.java.structure;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.jpt.core.internal.content.java.util.JpaJavaAdapterFactory;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- */
-public class JpaCoreJavaItemProviderAdapterFactory
-	extends JpaJavaAdapterFactory
-	implements ComposeableAdapterFactory, 
-		IChangeNotifier, 
-		IDisposable
-{
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 */
-	protected Collection supportedTypes = new ArrayList();
-
-	
-	public JpaCoreJavaItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-	}
-	
-	
-	protected JavaCompilationUnitItemProvider javaCompilationUnitItemProvider;
-	
-	public Adapter createJpaCompilationUnitAdapter() {
-		if (javaCompilationUnitItemProvider == null) {
-			javaCompilationUnitItemProvider = new JavaCompilationUnitItemProvider(this);
-		}
-		
-		return javaCompilationUnitItemProvider;
-	}
-	
-	protected JavaPersistentTypeItemProvider javaPersistentTypeItemProvider;
-	
-	public Adapter createJavaPersistentTypeAdapter() {
-		if (javaPersistentTypeItemProvider == null) {
-			javaPersistentTypeItemProvider = new JavaPersistentTypeItemProvider(this);
-		}
-		
-		return javaPersistentTypeItemProvider;
-	}
-	
-	protected JavaPersistentAttributeItemProvider javaPersistentAttributeItemProvider;
-	
-	public Adapter createJavaPersistentAttributeAdapter() {
-		if (javaPersistentAttributeItemProvider == null) {
-			javaPersistentAttributeItemProvider = new JavaPersistentAttributeItemProvider(
-					this);
-		}
-		
-		return javaPersistentAttributeItemProvider;
-	}
-	
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? 
-			this : 
-			parentAdapterFactory.getRootAdapterFactory();
-	}
-	
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 */
-	public void setParentAdapterFactory(
-			ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-	
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-	
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 */
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-	
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class)
-					|| (((Class) type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-		
-		return null;
-	}
-	
-	/**
-	 * This adds a listener.
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-	
-	/**
-	 * This removes a listener.
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-	
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-		
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-	
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 */
-	public void dispose() {
-		if (javaCompilationUnitItemProvider != null) {
-			javaCompilationUnitItemProvider.dispose();
-		}
-		if (javaPersistentTypeItemProvider != null) {
-			javaPersistentTypeItemProvider.dispose();
-		}
-		if (javaPersistentAttributeItemProvider != null) {
-			javaPersistentAttributeItemProvider.dispose();
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullLabelProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullLabelProvider.java
deleted file mode 100644
index 7fb6654..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullLabelProvider.java
+++ /dev/null
@@ -1,43 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.jface;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-
-public class NullLabelProvider 
-	implements ILabelProvider 
-{
-	public static NullLabelProvider INSTANCE = new NullLabelProvider();
-	
-	
-	private NullLabelProvider() {
-		super();
-	}
-	
-	
-	public Image getImage(Object element) {
-		return null;
-	}
-	
-	public String getText(Object element) {
-		return null;
-	}
-	
-	public void addListener(ILabelProviderListener listener) {}
-	
-	public void dispose() {}
-	
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-	
-	public void removeListener(ILabelProviderListener listener) {}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullTreeContentProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullTreeContentProvider.java
deleted file mode 100644
index 864a29b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/NullTreeContentProvider.java
+++ /dev/null
@@ -1,44 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.jface;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class NullTreeContentProvider 
-	implements ITreeContentProvider 
-{
-	public static NullTreeContentProvider INSTANCE = new NullTreeContentProvider();
-	
-	
-	private NullTreeContentProvider() {
-		super();
-	}
-	
-	
-	public Object[] getChildren(Object parentElement) {
-		return new Object[0];
-	}
-	
-	public Object getParent(Object element) {
-		return null;
-	}
-	
-	public boolean hasChildren(Object element) {
-		return false;
-	}
-	
-	public Object[] getElements(Object inputElement) {
-		return new Object[0];
-	}
-	
-	public void dispose() {}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsImages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsImages.java
deleted file mode 100644
index 7acab93..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsImages.java
+++ /dev/null
@@ -1,59 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings;
-
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.swt.graphics.Image;
-
-public class JptUiMappingsImages 
-{
-	public final static String BASIC = "full/obj16/basic";
-	
-	public final static String EMBEDDABLE = "full/obj16/embeddable";
-	
-	public final static String EMBEDDED = "full/obj16/embedded";
-	
-	public final static String EMBEDDED_ID = "full/obj16/embedded-id";
-	
-	public final static String ENTITY = "full/obj16/entity";
-	
-	public final static String ENTITY_MAPPINGS = "full/obj16/entity-mappings";
-	
-	public final static String ID = "full/obj16/id";
-	
-	public final static String NULL_ATTRIBUTE_MAPPING = "full/obj16/null-attribute-mapping";
-	
-	public final static String MANY_TO_MANY = "full/obj16/many-to-many";
-	
-	public final static String MANY_TO_ONE = "full/obj16/many-to-one";
-	
-	public final static String MAPPED_SUPERCLASS = "full/obj16/mapped-superclass";
-	
-	public final static String NULL_TYPE_MAPPING = "full/obj16/null-type-mapping";
-	
-	public final static String ONE_TO_MANY = "full/obj16/one-to-many";
-	
-	public final static String ONE_TO_ONE = "full/obj16/one-to-one";
-	
-	public final static String TEMPORAL = "full/obj16/temporal";
-	
-	public final static String TRANSIENT = "full/obj16/transient";
-	
-	public final static String VERSION = "full/obj16/version";
-	
-	
-	public static Image getImage(String imageLocator) {
-		return JptUiPlugin.getPlugin().getImageDescriptor(imageLocator).createImage();
-	}
-	
-	
-	private JptUiMappingsImages() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java
deleted file mode 100644
index 03380e7..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java
+++ /dev/null
@@ -1,205 +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
- ******************************************************************************/   
-package org.eclipse.jpt.ui.internal.mappings;
-
-import org.eclipse.osgi.util.NLS;
-
-public class JptUiMappingsMessages extends NLS 
-{
-	private static final String BUNDLE_NAME = "jpt_ui_mappings"; //$NON-NLS-1$
-	
-	public static String PersistentTypePage_EntityLabel;
-	public static String PersistentTypePage_EmbeddableLabel;
-	public static String PersistentTypePage_MappedSuperclassLabel;
-
-	public static String PersistentAttributePage_BasicLabel;
-	public static String PersistentAttributePage_TransientLabel;
-	public static String PersistentAttributePage_IdLabel;
-	public static String PersistentAttributePage_OneToManyLabel;
-	public static String PersistentAttributePage_ManyToOneLabel;
-	public static String PersistentAttributePage_ManyToManyLabel;
-	public static String PersistentAttributePage_VersionLabel;
-	public static String PersistentAttributePage_EmbeddedLabel;
-	public static String PersistentAttributePage_EmbeddedIdLabel;
-	public static String PersistentAttributePage_OneToOneLabel;
-
-	
-	public static String EntityGeneralSection_nameDefaultWithOneParam;
-	public static String EntityGeneralSection_nameDefaultEmpty;
-	public static String EntityGeneralSection_name;
-	
-	public static String BasicGeneralSection_name;
-	public static String BasicGeneralSection_nameDefault;
-	public static String BasicGeneralSection_fetchLabel;
-	public static String BasicGeneralSection_optionalLabel;
-	public static String BasicGeneralSection_lobLabel;
-	public static String BasicGeneralSection_temporalLabel;
-	public static String BasicGeneralSection_enumeratedLabel;
-
-	public static String EntityComposite_tableDefault;
-	public static String EntityComposite_tableNoDefaultSpecified;
-	public static String EntityComposite_inheritance;
-	public static String TableComposite_tableSection;
-	public static String TableComposite_defaultEmpty;
-	public static String TableComposite_defaultWithOneParam;
-	
-	public static String TableChooser_label;
-	public static String CatalogChooser_label;
-	public static String SchemaChooser_label;
-
-	public static String ColumnChooser_label;
-	public static String ColumnTableChooser_label;
-	
-	public static String TargetEntityChooser_label;
-	public static String TargetEntityChooser_defaultEmpty;
-	public static String TargetEntityChooser_defaultWithOneParam;
-	public static String TargetEntityChooser_browse;
-	
-	public static String NonOwningMapping_mappedByLabel;
-		
-	public static String JoinTableComposite_add;
-	public static String JoinTableComposite_defaultEmpty;
-	public static String JoinTableComposite_defaultWithOneParam;
-	public static String JoinTableComposite_edit;
-	public static String JoinTableComposite_inverseJoinColumn;
-	public static String JoinTableComposite_joinColumn;
-	public static String JoinTableComposite_mappingBetweenTwoParams;
-	public static String JoinTableComposite_mappingBetweenTwoParamsDefault;
-	public static String JoinTableComposite_mappingBetweenTwoParamsBothDefault;
-	public static String JoinTableComposite_mappingBetweenTwoParamsFirstDefault;
-	public static String JoinTableComposite_mappingBetweenTwoParamsSecDefault;
-	public static String JoinTableComposite_name;
-	public static String JoinTableComposite_remove;
-	public static String JoinTableComposite_overrideDefaultJoinColumns;
-	public static String JoinTableComposite_overrideDefaultInverseJoinColumns;
-
-	public static String JoinColumnDialog_addJoinColumn;
-	public static String JoinColumnDialog_editJoinColumn;
-	public static String JoinColumnDialog_name;
-	public static String JoinColumnDialog_insertable;
-	public static String JoinColumnDialog_updatable;
-	public static String JoinColumnDialog_defaultWithOneParam;
-	public static String JoinColumnDialog_referencedColumnName;
-	public static String JoinColumnDialog_table;
-	
-	public static String InverseJoinColumnDialog_defaultWithOneParam;
-	public static String InverseJoinColumnDialog_editInverseJoinColumn;
-
-	
-	public static String MultiRelationshipMappingComposite_cascadeType;
-	public static String MultiRelationshipMappingComposite_fetchType;
-	public static String MultiRelationshipMappingComposite_general;
-	public static String MultiRelationshipMappingComposite_joinTable;
-	public static String MultiRelationshipMappingComposite_mappedBy;
-	public static String MultiRelationshipMappingComposite_targetEntity;
-
-	public static String ColumnComposite_columnSection;
-	public static String ColumnComposite_defaultWithOneParam;
-	public static String ColumnComposite_defaultEmpty;
-	public static String ColumnComposite_insertable;	
-	public static String ColumnComposite_updatable;
-
-	public static String JoinColumnComposite_defaultEmpty;
-	public static String JoinColumnComposite_defaultWithOneParam;
-	public static String JoinColumnComposite_joinColumn;
-	public static String JoinColumnComposite_name;
-	public static String JoinColumnComposite_add;
-	public static String JoinColumnComposite_edit;
-	public static String JoinColumnComposite_mappingBetweenTwoParams;
-	public static String JoinColumnComposite_mappingBetweenTwoParamsDefault;
-	public static String JoinColumnComposite_mappingBetweenTwoParamsBothDefault;
-	public static String JoinColumnComposite_mappingBetweenTwoParamsFirstDefault;
-	public static String JoinColumnComposite_mappingBetweenTwoParamsSecDefault;
-	public static String JoinColumnComposite_remove;
-	public static String JoinColumnComposite_overrideDefaultJoinColumns;
-
-	public static String PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns;
-	public static String PrimaryKeyJoinColumnsComposite_add;
-	public static String PrimaryKeyJoinColumnsComposite_edit;
-	public static String PrimaryKeyJoinColumnsComposite_remove;
-	public static String PrimaryKeyJoinColumnsComposite_defaultEmpty;
-	public static String PrimaryKeyJoinColumnsComposite_defaultWithOneParam;
-	public static String PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn;
-	public static String PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams;
-	public static String PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault;
-	public static String PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault;
-	public static String PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault;
-	public static String PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault;
-	
-	public static String AttributeOverridesComposite_attributeOverrides;
-	public static String AttributeOverridesComposite_overridDefault;
-	public static String OverridesComposite_joinColumn;
-
-	public static String InheritanceComposite_default;	
-	public static String InheritanceComposite_strategy;	
-	public static String InheritanceComposite_discriminatorValue;	
-	public static String InheritanceComposite_discriminatorValueDefaultWithOneParam;
-
-	public static String DiscriminatorColumnComposite_defaultEmpty;	
-	public static String DiscriminatorColumnComposite_column;	
-	public static String DiscriminatorColumnComposite_discriminatorType;
-
-	public static String GeneratedValueComposite_generatedValue;
-	public static String GeneratedValueComposite_generatorName;
-	public static String GeneratedValueComposite_strategy;
-
-	public static String TableGeneratorComposite_default;
-	public static String TableGeneratorComposite_name;
-	public static String TableGeneratorComposite_pkColumn;
-	public static String TableGeneratorComposite_pkColumnValue;
-	public static String TableGeneratorComposite_table;
-	public static String TableGeneratorComposite_tableGenerator;
-	public static String TableGeneratorComposite_valueColumn;
-
-	public static String SequenceGeneratorComposite_sequenceGenerator;
-	public static String SequenceGeneratorComposite_name;
-	public static String SequenceGeneratorComposite_sequence;
-	public static String SequenceGeneratorComposite_default;
-
-	public static String IdMappingComposite_pk_generation;	
-	public static String IdMappingComposite_primaryKeyGeneration;	
-	public static String IdMappingComposite_tableGenerator;
-	public static String IdMappingComposite_sequenceGenerator;
-
-	public static String OrderByComposite_orderByGroup;	
-	public static String OrderByComposite_noOrdering;	
-	public static String OrderByComposite_primaryKeyOrdering;	
-	public static String OrderByComposite_customOrdering;
-	public static String OrderByComposite_orderByLabel;
-
-	public static String SecondaryTablesComposite_secondaryTables;
-	public static String SecondaryTablesComposite_add;
-	public static String SecondaryTablesComposite_edit;
-	public static String SecondaryTablesComposite_remove;
-
-	public static String SecondaryTableDialog_editSecondaryTable;
-	public static String SecondaryTableDialog_name;
-	public static String SecondaryTableDialog_catalog;
-	public static String SecondaryTableDialog_schema;
-	public static String SecondaryTableDialog_defaultSchema;
-	public static String SecondaryTableDialog_defaultCatalog;	
-	
-	public static String AccessTypeCombo_default;
-	public static String EnumComboViewer_default;
-	public static String MetaDataCompleteCombo_Default;
-	public static String JoinColumnDialog_defaultTrue;
-	public static String InheritanceComposite_defaultDiscriminatorType;
-	public static String GeneratedValueComposite_default;
-	
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, JptUiMappingsMessages.class);
-	}
-
-	private JptUiMappingsMessages() {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/AbstractJoinColumnDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/AbstractJoinColumnDialog.java
deleted file mode 100644
index 2435c30..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/AbstractJoinColumnDialog.java
+++ /dev/null
@@ -1,183 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jpt.core.internal.mappings.IAbstractJoinColumn;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.Shell;
-import org.eclipse.ui.PlatformUI;
-
-//if there is only 1 joinColumn and the user is editing it, they should be
-//able to define defaults.  otherwise, we probably shouldn't allow it.
-public abstract class AbstractJoinColumnDialog<E extends IAbstractJoinColumn> extends Dialog {
-
-	//if creating a new JoinColumn, this will be null, 
-	//specify the JoinColumnOwner instead in the appropriate construtor
-	private E joinColumn;
-	
-	private Combo nameCombo;
-	private Combo referencedColumnNameCombo;
-	
-	private boolean defaultNameSelected;
-	private String selectedName;
-	private boolean defaultReferencedColumnNameSelected;
-	private String selectedReferencedColumnName;
-	
-	AbstractJoinColumnDialog(Shell parent) {
-		super(parent);
-	}
-
-	AbstractJoinColumnDialog(Shell parent, E joinColumn) {
-		super(parent);
-		this.joinColumn = joinColumn;
-	}
-	
-	protected String getAddTitle() {
-		return JptUiMappingsMessages.JoinColumnDialog_addJoinColumn;
-	}
-
-	protected String getEditTitle() {
-		return JptUiMappingsMessages.JoinColumnDialog_editJoinColumn;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		if (this.joinColumn == null) {
-			getShell().setText(getAddTitle());
-		}
-		else {
-			getShell().setText(getEditTitle());
-		}
-		Composite composite = (Composite) super.createDialogArea(parent);
-		GridLayout gridLayout = (GridLayout) composite.getLayout();
-		gridLayout.numColumns = 2;
-		
-		Label nameLabel = new Label(composite, SWT.LEFT);
-		nameLabel.setText(JptUiMappingsMessages.JoinColumnDialog_name);
-		GridData gridData = new GridData();
-		nameLabel.setLayoutData(gridData);
-		
-		this.nameCombo = new Combo(composite, SWT.LEFT);
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.nameCombo.setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.nameCombo, IJpaHelpContextIds.MAPPING_JOIN_COLUMN_NAME);
-		populateNameCombo();
-	
-		Label referencedColumnNameLabel = new Label(composite, SWT.LEFT);
-		referencedColumnNameLabel.setText(JptUiMappingsMessages.JoinColumnDialog_referencedColumnName);
-		gridData = new GridData();
-		referencedColumnNameLabel.setLayoutData(gridData);
-
-		this.referencedColumnNameCombo = new Combo(composite, SWT.LEFT);
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.referencedColumnNameCombo.setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.referencedColumnNameCombo, IJpaHelpContextIds.MAPPING_JOIN_REFERENCED_COLUMN);
-		populateReferencedNameCombo();
-
-		return composite;
-	}
-	
-	protected void populateNameCombo() {
-		this.nameCombo.removeAll();
-		if (getJoinColumn() != null) {
-			this.nameCombo.add(NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultWithOneParam, getJoinColumn().getDefaultName()));
-		}
-		Table table = getNameTable();
-		if (table != null) {
-			for (Iterator i = table.columnNames(); i.hasNext(); ) {
-				this.nameCombo.add((String) i.next());
-			}
-		}
-		if (getJoinColumn() != null) {
-			if (getJoinColumn().getSpecifiedName() != null) {
-				this.nameCombo.setText(getJoinColumn().getSpecifiedName());
-			}
-			else {
-				this.nameCombo.select(0);
-			}
-		}
-	}
-	
-	protected Combo getNameCombo() {
-		return this.nameCombo;
-	}
-	
-	protected Combo getReferencedColumnNameCombo() {
-		return this.referencedColumnNameCombo;
-	}
-	
-	protected abstract Table getNameTable();
-	
-	protected abstract Table getReferencedNameTable();
-
-	protected void populateReferencedNameCombo() {
-		if (getJoinColumn() != null) {
-			this.referencedColumnNameCombo.add(NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultWithOneParam, getJoinColumn().getDefaultReferencedColumnName()));
-		}
-		Table referencedNameTable = getReferencedNameTable();
-		if (referencedNameTable != null) {
-			for (Iterator i = referencedNameTable.columnNames(); i.hasNext(); ) {
-				this.referencedColumnNameCombo.add((String) i.next());
-			}
-		}
-		if (getJoinColumn() != null) {
-			if (getJoinColumn().getSpecifiedReferencedColumnName() != null) {
-				this.referencedColumnNameCombo.setText(getJoinColumn().getSpecifiedReferencedColumnName());
-			}
-			else {
-				this.referencedColumnNameCombo.select(0);
-			}
-		}
-	}
-	
-	protected E getJoinColumn() {
-		return this.joinColumn;
-	}
-	
-	protected boolean isDefaultNameSelected() {
-		return this.defaultNameSelected;
-	}
-	
-	protected String getSelectedName() {
-		return this.selectedName;
-	}
-	
-	protected boolean isDefaultReferencedColumnNameSelected() {
-		return this.defaultReferencedColumnNameSelected;
-	}
-	
-	protected String getReferencedColumnName() {
-		return this.selectedReferencedColumnName;			
-	}
-	
-	public boolean close() {
-		this.defaultNameSelected = this.nameCombo.getSelectionIndex() == 0;
-		this.selectedName = this.nameCombo.getText();
-		this.defaultReferencedColumnNameSelected = this.referencedColumnNameCombo.getSelectionIndex() == 0;
-		this.selectedReferencedColumnName = this.referencedColumnNameCombo.getText();
-		return super.close();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java
deleted file mode 100644
index 3a2542b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java
+++ /dev/null
@@ -1,357 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.DefaultEagerFetchType;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.EnumType;
-import org.eclipse.jpt.core.internal.mappings.IBasic;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.core.internal.mappings.TemporalType;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class BasicComposite extends BaseJpaComposite 
-{
-	private IBasic basic;
-	
-	private ColumnComposite columnComposite;
-
-	private EnumComboViewer fetchTypeComboViewer;
-	private EnumComboViewer optionalComboViewer;
-	private LobCheckBox lobCheckBox;
-	private EnumComboViewer temporalTypeViewer;
-	private EnumComboViewer enumeratedTypeViewer;
-		
-	public BasicComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-
-		this.columnComposite = new ColumnComposite(generalComposite, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.columnComposite.getControl().setLayoutData(gridData);		
-		
-		CommonWidgets.buildFetchLabel(generalComposite, getWidgetFactory());
-		this.fetchTypeComboViewer = CommonWidgets.buildFetchTypeComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.fetchTypeComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(fetchTypeComboViewer.getControl(), IJpaHelpContextIds.MAPPING_FETCH_TYPE);
-
-		CommonWidgets.buildOptionalLabel(generalComposite, getWidgetFactory());
-		this.optionalComboViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.optionalComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(optionalComboViewer.getControl(), IJpaHelpContextIds.MAPPING_OPTIONAL);
-			
-		CommonWidgets.buildTemporalLabel(generalComposite, getWidgetFactory());
-		this.temporalTypeViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.temporalTypeViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(temporalTypeViewer.getControl(), IJpaHelpContextIds.MAPPING_TEMPORAL);
-
-		CommonWidgets.buildEnumeratedLabel(generalComposite, getWidgetFactory());
-		this.enumeratedTypeViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.enumeratedTypeViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(enumeratedTypeViewer.getControl(), IJpaHelpContextIds.MAPPING_ENUMERATED);
-
-	    this.lobCheckBox = buildLobCheckBox(generalComposite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.lobCheckBox.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(lobCheckBox.getControl(), IJpaHelpContextIds.MAPPING_LOB);
-
-		return generalComposite;
-	}
-	
-	private LobCheckBox buildLobCheckBox(Composite parent) {
-		return new LobCheckBox(parent, this.commandStack, getWidgetFactory());
-	}
-	
-	public void doPopulate(EObject obj) {
-		this.basic = (IBasic) obj;
-		if (this.basic != null) {
-			this.columnComposite.populate(this.basic.getColumn());
-		}
-		else {
-			this.columnComposite.populate(null);
-		}
-		this.fetchTypeComboViewer.populate(new FetchHolder(this.basic));
-		this.optionalComboViewer.populate(new OptionalHolder(this.basic));
-		this.lobCheckBox.populate(this.basic);
-		this.temporalTypeViewer.populate(new TemporalTypeHolder(this.basic));
-		this.enumeratedTypeViewer.populate(new EnumeratedTypeHolder(this.basic));
-	}
-	
-	public void doPopulate() {
-		this.columnComposite.populate();
-		this.fetchTypeComboViewer.populate();
-		this.optionalComboViewer.populate();
-		this.lobCheckBox.populate();
-		this.temporalTypeViewer.populate();
-		this.enumeratedTypeViewer.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.columnComposite.dispose();
-		this.fetchTypeComboViewer.dispose();
-		this.optionalComboViewer.dispose();
-		this.lobCheckBox.dispose();
-		this.temporalTypeViewer.dispose();
-		this.enumeratedTypeViewer.dispose();
-		super.dispose();
-	}
-	
-	protected IBasic getBasic() {
-		return this.basic;
-	}
-	
-	private class FetchHolder extends EObjectImpl implements EnumHolder {
-		
-		private IBasic basic;
-		
-		FetchHolder(IBasic basic) {
-			super();
-			this.basic = basic;
-		}
-		
-		public Object get() {
-			return this.basic.getFetch();
-		}
-		
-		public void set(Object enumSetting) {
-			this.basic.setFetch((DefaultEagerFetchType) enumSetting);
-			
-		}
-		
-		public Class featureClass() {
-			return IBasic.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IBASIC__FETCH;
-		}
-		
-		public EObject wrappedObject() {
-			return this.basic;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultEagerFetchType.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultEagerFetchType.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "Eager";
-		}
-	}
-
-	
-	private class OptionalHolder extends EObjectImpl implements EnumHolder {
-		
-		private IBasic basic;
-		
-		OptionalHolder(IBasic basic) {
-			super();
-			this.basic = basic;
-		}
-		
-		public Object get() {
-			return this.basic.getOptional();
-		}
-		
-		public void set(Object enumSetting) {
-			this.basic.setOptional((DefaultTrueBoolean) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return IBasic.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IBASIC__OPTIONAL;
-		}
-		
-		public EObject wrappedObject() {
-			return this.basic;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultTrueBoolean.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultTrueBoolean.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "True";
-		}
-
-	}
-
-	
-	private class TemporalTypeHolder extends EObjectImpl implements EnumHolder {
-		
-		private IBasic basic;
-		
-		TemporalTypeHolder(IBasic basic) {
-			super();
-			this.basic = basic;
-		}
-		
-		public Object get() {
-			return this.basic.getTemporal();
-		}
-		
-		public void set(Object enumSetting) {
-			this.basic.setTemporal((TemporalType) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return IBasic.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IBASIC__TEMPORAL;
-		}
-		
-		public EObject wrappedObject() {
-			return this.basic;
-		}
-		
-		public Object[] enumValues() {
-			return TemporalType.VALUES.toArray();
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public Object defaultValue() {
-			return null;
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public String defaultString() {
-			return null;
-		}
-	}
-	
-	private class EnumeratedTypeHolder extends EObjectImpl implements EnumHolder {
-		
-		private IBasic basic;
-		
-		EnumeratedTypeHolder(IBasic basic) {
-			super();
-			this.basic = basic;
-		}
-		
-		public Object get() {
-			return this.basic.getEnumerated();
-		}
-		
-		public void set(Object enumSetting) {
-			this.basic.setEnumerated((EnumType) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return IBasic.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IBASIC__ENUMERATED;
-		}
-		
-		public EObject wrappedObject() {
-			return this.basic;
-		}
-		
-		public Object[] enumValues() {
-			return EnumType.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return EnumType.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "Ordinal";
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CascadeComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CascadeComposite.java
deleted file mode 100644
index a2eb0eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CascadeComposite.java
+++ /dev/null
@@ -1,378 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.ICascade;
-import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-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.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class CascadeComposite extends BaseJpaComposite 
-{
-	private IRelationshipMapping relationshipMapping;	
-	private ICascade cascade;
-	
-	private Adapter relationshipMappingListener;
-	private Adapter cascadeListener;
-	
-	
-	private Button allCheckBox;
-	private Button persistCheckBox;
-	private Button mergeCheckBox;
-	private Button removeCheckBox;
-	private Button refreshCheckBox;
-	
-	public CascadeComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.relationshipMappingListener = buildRelationshipMappingListener();
-		this.cascadeListener = buildCascadeListener();
-	}
-
-	private Adapter buildRelationshipMappingListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				relationshipMappingChanged(notification);
-			}
-		};
-	}
-
-	private Adapter buildCascadeListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				cascadeChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new FillLayout());
-		
-		Group cascadeGroup = getWidgetFactory().createGroup(composite, "Cascade");
-		GridLayout layout = new GridLayout(5, false);
-		cascadeGroup.setLayout(layout);
-		
-		GridData gridData;
-		
-		this.allCheckBox = createAllCheckBox(cascadeGroup);
-		gridData = new GridData();
-		this.allCheckBox.setLayoutData(gridData);
-
-		this.persistCheckBox = createPersistCheckBox(cascadeGroup);
-		gridData = new GridData();
-		this.persistCheckBox.setLayoutData(gridData);
-
-		this.mergeCheckBox = createMergeCheckBox(cascadeGroup);
-		gridData = new GridData();
-		this.mergeCheckBox.setLayoutData(gridData);
-
-		this.removeCheckBox = createRemoveCheckBox(cascadeGroup);
-		gridData = new GridData();
-		this.removeCheckBox.setLayoutData(gridData);
-
-		this.refreshCheckBox = createRefreshCheckBox(cascadeGroup);
-		gridData = new GridData();
-		this.refreshCheckBox.setLayoutData(gridData);
-	}
-	
-	private Button createAllCheckBox(Composite composite) {
-		Button button = getWidgetFactory().createButton(composite, "All", SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadeComposite.this.allSelected(e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				CascadeComposite.this.allSelected(e);				
-			}
-		});
-		return button;
-	}
-	
-	protected void allSelected(SelectionEvent e) {
-		boolean setSelection = initializeCascade();
-		if (setSelection) {
-			this.cascade.setAll(this.allCheckBox.getSelection());
-		}
-	}
-	
-	private boolean initializeCascade() {
-		if (allCheckBoxesFalse() && this.cascade != null) {
-			disengageCascadeListener();
-			this.relationshipMapping.setCascade(null);
-			return false;
-		}
-		if (this.cascade == null) {
-			this.cascade = this.relationshipMapping.createCascade();
-			this.relationshipMapping.setCascade(this.cascade);
-			engageCascadeListener();
-		}
-		return true;
-	}
-	
-	private Button createPersistCheckBox(Composite composite) {
-		Button button = getWidgetFactory().createButton(composite, "Persist", SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadeComposite.this.persistSelected(e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				CascadeComposite.this.persistSelected(e);				
-			}
-		});
-		return button;
-	}
-	
-	protected void persistSelected(SelectionEvent e) {
-		boolean setSelection = initializeCascade();
-		if (setSelection) {
-			this.cascade.setPersist(this.persistCheckBox.getSelection());
-		}
-	}
-
-	private Button createMergeCheckBox(Composite composite) {
-		Button button = getWidgetFactory().createButton(composite, "Merge", SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadeComposite.this.mergeSelected(e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				CascadeComposite.this.mergeSelected(e);				
-			}
-		});
-		return button;
-	}
-	
-	protected void mergeSelected(SelectionEvent e) {
-		boolean setSelection = initializeCascade();
-		if (setSelection) {
-			this.cascade.setMerge(this.mergeCheckBox.getSelection());
-		}
-	}
-	
-	private Button createRemoveCheckBox(Composite composite) {
-		Button button = getWidgetFactory().createButton(composite, "Remove", SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadeComposite.this.removeSelected(e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				CascadeComposite.this.removeSelected(e);				
-			}
-		});
-		return button;
-	}
-	
-	protected void removeSelected(SelectionEvent e) {
-		boolean setSelection = initializeCascade();
-		if (setSelection) {
-			this.cascade.setRemove(this.removeCheckBox.getSelection());
-		}
-	}
-	
-	private Button createRefreshCheckBox(Composite composite) {
-		Button button = getWidgetFactory().createButton(composite, "Refresh", SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadeComposite.this.refreshSelected(e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				CascadeComposite.this.refreshSelected(e);				
-			}
-		});
-		return button;
-	}
-	
-	protected void refreshSelected(SelectionEvent e) {
-		boolean setSelection = initializeCascade();
-		if (setSelection) {
-			this.cascade.setRefresh(this.refreshCheckBox.getSelection());
-		}
-	}
-	
-	private boolean allCheckBoxesFalse() {
-		return !(this.allCheckBox.getSelection() 
-				|| this.persistCheckBox.getSelection() 
-				|| this.mergeCheckBox.getSelection() 
-				|| this.removeCheckBox.getSelection() 
-				|| this.refreshCheckBox.getSelection());
-		
-			
-	}
-	
-	private void relationshipMappingChanged(Notification notification) {
-		if (notification.getFeatureID(IRelationshipMapping.class) == 
-				JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__CASCADE) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						if (CascadeComposite.this.cascade != null) {
-							disengageCascadeListener();
-						}
-						CascadeComposite.this.cascade = CascadeComposite.this.relationshipMapping.getCascade();
-						populateCascade();
-						
-						if (CascadeComposite.this.cascade != null) {
-							engageCascadeListener();
-						}
-					}
-				});
-		}
-	}
-	
-	private void cascadeChanged(final Notification notification) {
-		switch (notification.getFeatureID(ICascade.class)) {
-			case JpaCoreMappingsPackage.ICASCADE__ALL :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getControl().isDisposed()) {
-								return;
-							}
-							CascadeComposite.this.allCheckBox.setSelection(notification.getNewBooleanValue());
-						}
-					});			
-				break;
-			case JpaCoreMappingsPackage.ICASCADE__PERSIST :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getControl().isDisposed()) {
-								return;
-							}
-							CascadeComposite.this.persistCheckBox.setSelection(notification.getNewBooleanValue());
-						}
-					});			
-				break;
-			case JpaCoreMappingsPackage.ICASCADE__MERGE :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getControl().isDisposed()) {
-								return;
-							}
-							CascadeComposite.this.mergeCheckBox.setSelection(notification.getNewBooleanValue());
-						}
-					});			
-				break;
-			case JpaCoreMappingsPackage.ICASCADE__REMOVE :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getControl().isDisposed()) {
-								return;
-							}
-							CascadeComposite.this.removeCheckBox.setSelection(notification.getNewBooleanValue());
-						}
-					});			
-				break;
-			case JpaCoreMappingsPackage.ICASCADE__REFRESH :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getControl().isDisposed()) {
-								return;
-							}
-							CascadeComposite.this.refreshCheckBox.setSelection(notification.getNewBooleanValue());
-						}
-					});			
-				break;
-			default :
-				break;
-		}
-		if (notification.getFeatureID(ICascade.class) == 
-				JpaCoreMappingsPackage.ICASCADE__ALL) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						CascadeComposite.this.allCheckBox.setSelection(notification.getNewBooleanValue());
-					}
-				});
-		}
-		
-	}
-	
-
-	public void doPopulate(EObject obj) {
-		this.relationshipMapping = (IRelationshipMapping) obj;
-		
-		if (this.relationshipMapping != null) {
-			this.cascade = this.relationshipMapping.getCascade();
-			populateCascade();
-		}
-	}
-	
-	private void populateCascade() {
-		if (this.cascade != null) {
-			this.allCheckBox.setSelection(this.cascade.isAll());
-			this.persistCheckBox.setSelection(this.cascade.isPersist());
-			this.mergeCheckBox.setSelection(this.cascade.isMerge());
-			this.removeCheckBox.setSelection(this.cascade.isRemove());
-			this.refreshCheckBox.setSelection(this.cascade.isRefresh());
-		}
-		else {
-			this.allCheckBox.setSelection(false);
-			this.persistCheckBox.setSelection(false);
-			this.mergeCheckBox.setSelection(false);
-			this.removeCheckBox.setSelection(false);
-			this.refreshCheckBox.setSelection(false);		
-		}
-	}
-	
-	public void doPopulate() {
-	}
-	
-	protected void engageListeners() {
-		if (this.relationshipMapping != null) {
-			this.relationshipMapping.eAdapters().add(this.relationshipMappingListener);
-			if (this.cascade != null) {
-				engageCascadeListener();
-			}
-		}
-	}
-	
-	protected void engageCascadeListener() {
-		this.cascade.eAdapters().add(this.cascadeListener);
-	}
-	
-	protected void disengageCascadeListener() {
-		this.cascade.eAdapters().remove(this.cascadeListener);
-	}
-	
-	protected void disengageListeners() {
-		if (this.relationshipMapping != null) {
-			this.relationshipMapping.eAdapters().remove(this.relationshipMappingListener);
-			if (this.cascade != null) {
-				disengageCascadeListener();
-			}
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CatalogCombo.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CatalogCombo.java
deleted file mode 100644
index c51d015..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CatalogCombo.java
+++ /dev/null
@@ -1,304 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class CatalogCombo extends BaseJpaController
-{
-	private ITable table;
-
-	private Adapter listener;
-
-	/**
-	 * Caching the connectionProfile so we can remove the listener. If the
-	 * cached table object has been removed from the model then we no longer
-	 * have access to the parent and cannot find the connectionProfile
-	 */
-	private ConnectionProfile connectionProfile;
-
-	private ConnectionListener connectionListener;
-
-	private CCombo combo;
-
-	public CatalogCombo(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		this.listener = this.buildTableListener();
-		this.connectionListener = this.buildConnectionListener();
-	}
-
-	private Adapter buildTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				CatalogCombo.this.catalogChanged(notification);
-			}
-		};
-	}
-
-	private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-			public void aboutToClose(Connection connection) {
-			// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						CatalogCombo.this.populateCatalogCombo();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						CatalogCombo.this.populateCatalogCombo();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						CatalogCombo.this.populateCatalogCombo();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (database == CatalogCombo.this.getDatabase()) {
-							if (!getControl().isDisposed()) {
-								CatalogCombo.this.populateCatalogCombo();
-							}
-						}
-					}
-				});
-			}
-
-			public void schemaChanged(Connection connection, final Schema schema) {
-			// not interested to this event.
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-			// not interested to this event.
-			}
-		};
-	}
-
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		this.combo.add(JptUiMappingsMessages.TableComposite_defaultEmpty);
-		this.combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String catalogText = ((CCombo) e.getSource()).getText();
-				if (catalogText.equals("")) { //$NON-NLS-1$
-					catalogText = null;
-					if (CatalogCombo.this.table.getSpecifiedCatalog() == null || CatalogCombo.this.table.getSpecifiedCatalog().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				if (catalogText != null && combo.getItemCount() > 0 && catalogText.equals(combo.getItem(0))) {
-					catalogText = null;
-				}
-				if (CatalogCombo.this.table.getSpecifiedCatalog() == null && catalogText != null) {
-					CatalogCombo.this.setSpecifiedCatalog(catalogText);
-				}
-				if (CatalogCombo.this.table.getSpecifiedCatalog() != null && !CatalogCombo.this.table.getSpecifiedCatalog().equals(catalogText)) {
-					CatalogCombo.this.setSpecifiedCatalog(catalogText);
-				}
-			}
-		});
-	}
-
-	private void setSpecifiedCatalog(String catalogName) {
-		this.table.setSpecifiedCatalog(catalogName);
-		this.getConnectionProfile().setCatalogName(catalogName);
-	}
-
-	protected void catalogChanged(Notification notification) {
-		if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_CATALOG) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					CatalogCombo.this.populateCatalogName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_CATALOG) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					CatalogCombo.this.populateDefaultCatalogName();
-				}
-			});
-		}
-	}
-
-	public void doPopulate(EObject obj) {
-		this.table = (ITable) obj;
-		if (this.table != null) {
-			this.populateCatalogCombo();
-		}
-		else {
-			this.connectionProfile = null;
-		}
-	}
-
-	public void doPopulate() {
-		this.populateCatalogCombo();
-	}
-
-	protected Database getDatabase() {
-		return this.getConnectionProfile().getDatabase();
-	}
-
-	private ConnectionProfile getConnectionProfile() {
-		if (this.connectionProfile == null) {
-			this.connectionProfile = this.table.getJpaProject().connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-
-	private void populateCatalogCombo() {
-		if (this.table == null) {
-			return;
-		}
-		this.populateDefaultCatalogName();
-		if (this.getConnectionProfile().isConnected()) {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-			Database database = this.getDatabase();
-			if (database != null) {
-				Iterator<String> catalogs = database.catalogNames();
-				for (Iterator<String> stream = CollectionTools.sort(catalogs); stream.hasNext();) {
-					this.combo.add(stream.next());
-				}
-			}
-		}
-		else {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-		}
-		this.populateCatalogName();
-	}
-
-	protected void populateDefaultCatalogName() {
-		// String defaultCatalogName = this.table.getDefaultCatalog(); //
-		// DefaultCatalog cannot be initialized if DB not online
-		String defaultCatalogName = this.getDatabase().getDefaultCatalogName(); // TOREVIEW
-		int selectionIndex = combo.getSelectionIndex();
-		combo.setItem(0, NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultCatalogName));
-		if (selectionIndex == 0) {
-			combo.clearSelection();
-			combo.select(0);
-		}
-	}
-
-	protected void populateCatalogName() {
-		if (this.table == null) {
-			return;
-		}
-		String catalogName = this.table.getSpecifiedCatalog();
-		// String defaultCatalogName = this.table.getDefaultCatalog(); //
-		// DefaultCatalog cannot be initialized if DB not online
-		String defaultCatalogName = this.getDatabase().getDefaultCatalogName(); // TOREVIEW
-		if (!StringTools.stringIsEmpty(catalogName)) {
-			if (!this.combo.getText().equals(catalogName)) {
-				this.combo.setText(catalogName);
-			}
-		}
-		else {
-			if (!this.combo.getText().equals(NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultCatalogName))) {
-				this.combo.select(0);
-			}
-		}
-	}
-
-	public CCombo getCombo() {
-		return this.combo;
-	}
-
-	@Override
-	public Control getControl() {
-		return getCombo();
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (this.table != null) {
-			this.removeConnectionListener();
-			this.table.eAdapters().remove(this.listener);
-		}
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.table != null) {
-			this.table.eAdapters().add(this.listener);
-			this.addConnectionListener();
-		}
-	}
-
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java
deleted file mode 100644
index 7502f79..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java
+++ /dev/null
@@ -1,567 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.IAbstractColumn;
-import org.eclipse.jpt.core.internal.mappings.IColumn;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-//TODO repopulate this panel based on the Entity table changing
-public class ColumnComposite extends BaseJpaComposite
-{
-	
-	private IColumn column;
-
-	private Adapter columnListener;
-	private ConnectionListener connectionListener;
-		
-	protected CCombo columnCombo;
-	protected CCombo tableCombo;
-	protected EnumComboViewer insertableComboViewer;
-	protected EnumComboViewer updatableComboViewer;
-
-	private ConnectionProfile connectionProfile;
-	
-	public ColumnComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.columnListener = buildColumnListener();
-		this.connectionListener = buildConnectionListener();
-	}
-	
-	private Adapter buildColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				columnChanged(notification);
-			}
-		};
-	}
-
-    private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-
-			public void aboutToClose(Connection connection) {
-				// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						ColumnComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						ColumnComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						ColumnComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				return;
-			}
-
-			public void schemaChanged(Connection connection, final Schema schema) {
-				return;
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if(table == getDbTable()) {
-							if (!getControl().isDisposed()) {
-								ColumnComposite.this.populateColumnCombo();
-							}
-						}
-					}
-				});
-			}
-		};
-    }
-    
-	@Override
-	protected void initializeLayout(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;		
-		composite.setLayout(layout);	
-		
-		Group columnGroup = getWidgetFactory().createGroup(composite, JptUiMappingsMessages.ColumnComposite_columnSection);
-		layout = new GridLayout();
-		layout.marginHeight = 0;				
-		columnGroup.setLayout(layout);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		columnGroup.setLayoutData(gridData);
-
-		//created this composite because combos as direct children of a Group do not have a border, no clue why
-		Composite intermediaryComposite = getWidgetFactory().createComposite(columnGroup);
-		layout = new GridLayout(2, false);
-		layout.marginWidth = 0;		
-		intermediaryComposite.setLayout(layout);
-		
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		intermediaryComposite.setLayoutData(gridData);
-		
-		
-		CommonWidgets.buildColumnLabel(intermediaryComposite, getWidgetFactory());
-		
-		this.columnCombo = buildColumnCombo(intermediaryComposite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.columnCombo.setLayoutData(gridData);
-		helpSystem.setHelp(columnCombo, IJpaHelpContextIds.MAPPING_COLUMN);
-		
-		
-		CommonWidgets.buildColumnTableLabel(intermediaryComposite, getWidgetFactory());
-		
-		this.tableCombo = buildTableCombo(intermediaryComposite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.tableCombo.setLayoutData(gridData);
-		helpSystem.setHelp(tableCombo, IJpaHelpContextIds.MAPPING_COLUMN_TABLE);
-
-		getWidgetFactory().createLabel(intermediaryComposite, JptUiMappingsMessages.ColumnComposite_insertable);
-
-		this.insertableComboViewer = new EnumComboViewer(intermediaryComposite, this.commandStack, getWidgetFactory());
-		this.insertableComboViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		helpSystem.setHelp(this.insertableComboViewer.getControl(), IJpaHelpContextIds.MAPPING_COLUMN_INSERTABLE);
-
-		getWidgetFactory().createLabel(intermediaryComposite, JptUiMappingsMessages.ColumnComposite_updatable);
-
-		this.updatableComboViewer = new EnumComboViewer(intermediaryComposite, this.commandStack, getWidgetFactory());
-		this.updatableComboViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		helpSystem.setHelp(this.updatableComboViewer.getControl(), IJpaHelpContextIds.MAPPING_COLUMN_UPDATABLE);
-	}
-	
-	
-	private CCombo buildColumnCombo(Composite parent) {
-		final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-  		combo.add(JptUiMappingsMessages.ColumnComposite_defaultEmpty);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String columnText = ((CCombo) e.getSource()).getText();
-				if (columnText.equals("")) { //$NON-NLS-1$
-					columnText = null;
-					if (column.getSpecifiedName() == null || column.getSpecifiedName().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				
-				if (columnText != null && combo.getItemCount() > 0 && columnText.equals(combo.getItem(0))) {
-					columnText = null;
-				}
-
-				if (column.getSpecifiedName() == null && columnText != null) {
-					column.setSpecifiedName(columnText);
-				}
-				if (column.getSpecifiedName() != null && !column.getSpecifiedName().equals(columnText)) {
-					column.setSpecifiedName(columnText);
-				}
-			}
-		});
-		return combo;
-	}
-	
-	private CCombo buildTableCombo(Composite parent) {
-		final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-  		combo.add(JptUiMappingsMessages.ColumnComposite_defaultEmpty);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String tableText = ((CCombo) e.getSource()).getText();
-				if (tableText.equals("")) { //$NON-NLS-1$
-					tableText = null;
-					if (column.getSpecifiedTable() == null || column.getSpecifiedTable().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				
-				if (tableText != null && combo.getItemCount() > 0 && tableText.equals(combo.getItem(0))) {
-					tableText = null;
-				}
-
-				if (column.getSpecifiedTable() == null && tableText != null) {
-					column.setSpecifiedTable(tableText);
-				}
-				if (column.getSpecifiedTable() != null && !column.getSpecifiedTable().equals(tableText)) {
-					column.setSpecifiedTable(tableText);
-				}
-			}
-		});
-		return combo;
-		
-	}
-	
-	protected void columnChanged(Notification notification) {
-		if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed() || isPopulating()) {
-						return;
-					}
-					populateColumnName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateDefaultColumnName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__DEFAULT_TABLE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateDefaultColumnTable();
-					populateColumnCombo();
-				}
-			});
-		}
-		else if (notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__SPECIFIED_TABLE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateColumnTable();
-					populateColumnCombo();
-				}
-			});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.column != null) {
-			this.column.eAdapters().add(this.columnListener);
-			this.addConnectionListener();
-		}
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (this.column != null) {
-			this.removeConnectionListener();
-			this.column.eAdapters().remove(this.columnListener);
-		}
-	}
-
-	private ConnectionProfile getConnectionProfile() {
-		if (this.connectionProfile == null) {
-			this.connectionProfile = this.column.getJpaProject().connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-	
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-	
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-	
-	private Table getDbTable() {
-		return this.column.dbTable();
-	}
-
-	private void populateColumnCombo() {
-		//TODO don't do instanceof check here - check on Table, or isRoot check on Entity
-		//this.tableCombo.setEnabled(!(this.table instanceof SingleTableInheritanceChildTableImpl));
-		populateDefaultColumnName();
-
-		if (this.getConnectionProfile().isConnected()) {
-			this.columnCombo.remove(1, this.columnCombo.getItemCount()-1);
-			Table table = getDbTable();
-			if (table != null) {
-				for (Iterator i = CollectionTools.sort(CollectionTools.list(table.columnNames())).iterator(); i.hasNext();) {
-					this.columnCombo.add((String) i.next());
-				}
-			}
-		}
-		else {
-			this.columnCombo.remove(1, this.columnCombo.getItemCount()-1);
-		}
-		populateColumnName();
-	}
-	
-	protected void populateDefaultColumnName() {
-		String defaultTableName = column.getDefaultName();
-		int selectionIndex = columnCombo.getSelectionIndex();
-		columnCombo.setItem(0, NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultTableName));
-		if (selectionIndex == 0) {
-			//combo text does not update when switching between 2 mappings of the same type
-			//that both have a default column name.  clear the selection and then set it again
-			columnCombo.clearSelection();
-			columnCombo.select(0);
-		}		
-	}
-	
-	protected void populateColumnName() {
-		String specifiedColumnName = this.column.getSpecifiedName();
-		if (specifiedColumnName != null) {
-			if (!this.columnCombo.getText().equals(specifiedColumnName)) {
-				this.columnCombo.setText(specifiedColumnName);
-			}
-		}
-		else {
-			String defaultColumnName = this.column.getDefaultName();
-			if (!this.columnCombo.getText().equals(NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultColumnName))) {
-				this.columnCombo.select(0);
-			}
-		}
-	}
-	
-	private void populateTableCombo() {
-		//TODO don't do instanceof check here - check on Table, or isRoot check on Entity
-		//this.tableCombo.setEnabled(!(this.table instanceof SingleTableInheritanceChildTableImpl));
-		populateDefaultColumnTable();
-		this.tableCombo.remove(1, this.tableCombo.getItemCount()-1);
-		
-		if (this.column != null) {
-			for (Iterator i = this.column.getOwner().getTypeMapping().associatedTableNamesIncludingInherited(); i.hasNext(); ) {
-				this.tableCombo.add((String) i.next());			
-			}
-		}
-		populateColumnTable();
-	}
-	
-	protected void populateDefaultColumnTable() {
-		String defaultTableName = column.getDefaultTable();
-		int selectionIndex = tableCombo.getSelectionIndex();
-		tableCombo.setItem(0, NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultTableName));
-		if (selectionIndex == 0) {
-			//combo text does not update when switching between 2 mappings of the same type
-			//that both have a default column name.  clear the selection and then set it again
-			tableCombo.clearSelection();
-			tableCombo.select(0);
-		}		
-	}
-	
-	protected void populateColumnTable() {
-		String tableName = this.column.getSpecifiedTable();
-		String defaultTableName = this.column.getDefaultTable();
-		if (tableName != null) {
-			if (!this.tableCombo.getText().equals(tableName)) {
-				this.tableCombo.setText(tableName);
-			}
-		}
-		else {
-			if (!this.tableCombo.getText().equals(NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultTableName))) {
-				this.tableCombo.select(0);
-			}
-		}
-	}
-
-	public void doPopulate(EObject obj) {
-		this.column = (IColumn) obj;
-		if (this.column != null) {
-			populateColumnCombo();
-			populateTableCombo();
-		}
-		this.insertableComboViewer.populate(new InsertableHolder(this.column));
-		this.updatableComboViewer.populate(new UpdatableHolder(this.column));
-	}
-	
-	public void doPopulate() {
-		if (this.column != null) {
-			populateColumnCombo();
-			populateTableCombo();
-		}
-		else {
-			this.connectionProfile = null;
-		}
-		this.insertableComboViewer.populate();
-		this.updatableComboViewer.populate();
-	}
-	
-	protected void enableWidgets(boolean enabled) {
-		this.columnCombo.setEnabled(enabled);
-		this.tableCombo.setEnabled(enabled);
-		this.insertableComboViewer.getControl().setEnabled(enabled);
-		this.updatableComboViewer.getControl().setEnabled(enabled);
-	}
-	
-	@Override
-	public void dispose() {
-		this.insertableComboViewer.dispose();
-		this.updatableComboViewer.dispose();
-		super.dispose();
-	}
-	
-	private class InsertableHolder extends EObjectImpl implements EnumHolder {
-		
-		private IAbstractColumn column;
-		
-		InsertableHolder(IAbstractColumn column) {
-			super();
-			this.column = column;
-		}
-		
-		public Object get() {
-			return this.column.getInsertable();
-		}
-		
-		public void set(Object enumSetting) {
-			this.column.setInsertable((DefaultTrueBoolean) enumSetting);
-			
-		}
-		
-		public Class featureClass() {
-			return IAbstractColumn.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IABSTRACT_COLUMN__INSERTABLE;
-		}
-		
-		public EObject wrappedObject() {
-			return this.column;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultTrueBoolean.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultTrueBoolean.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "True";
-		}
-	}
-
-	private class UpdatableHolder extends EObjectImpl implements EnumHolder {
-		
-		private IAbstractColumn column;
-		
-		UpdatableHolder(IAbstractColumn column) {
-			super();
-			this.column = column;
-		}
-		
-		public Object get() {
-			return this.column.getUpdatable();
-		}
-		
-		public void set(Object enumSetting) {
-			this.column.setUpdatable((DefaultTrueBoolean) enumSetting);
-			
-		}
-		
-		public Class featureClass() {
-			return IAbstractColumn.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IABSTRACT_COLUMN__UPDATABLE;
-		}
-		
-		public EObject wrappedObject() {
-			return this.column;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultTrueBoolean.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultTrueBoolean.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "True";
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java
deleted file mode 100644
index de7966c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java
+++ /dev/null
@@ -1,310 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.DefaultEagerFetchType;
-import org.eclipse.jpt.core.internal.mappings.DefaultLazyFetchType;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.EnumType;
-import org.eclipse.jpt.core.internal.mappings.IAbstractColumn;
-import org.eclipse.jpt.core.internal.mappings.IColumn;
-import org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.ISingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser.StringHolder;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class CommonWidgets 
-{
-	public static Label buildEntityNameLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.EntityGeneralSection_name);
-	}
-
-	public static EntityNameCombo buildEntityNameCombo(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EntityNameCombo(parent, commandStack, widgetFactory);
-	}
-	
-	public static Label buildTableLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.TableChooser_label);
-	}
-	
-	public static Label buildCatalogLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.CatalogChooser_label);
-	}
-	
-	public static Label buildSchemaLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.SchemaChooser_label);
-	}
-	
-	public static StringWithDefaultChooser buildStringWithDefaultChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new StringWithDefaultChooser(parent, commandStack, widgetFactory);
-	}
-
-
-	public static Label buildFetchLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.BasicGeneralSection_fetchLabel);
-	}
-	
-	public static Label buildTargetEntityLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.TargetEntityChooser_label);
-	}
-	
-	public static Label buildOptionalLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.BasicGeneralSection_optionalLabel);
-	}
-	
-	public static Label buildTemporalLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.BasicGeneralSection_temporalLabel);
-	}
-	
-	public static Label buildEnumeratedLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.BasicGeneralSection_enumeratedLabel);
-	}
-	
-	public static Label buildMappedByLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.NonOwningMapping_mappedByLabel);
-	}
-	
-	public static EnumComboViewer buildFetchTypeComboViewer(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EnumComboViewer(parent, commandStack, widgetFactory);
-	}
-
-	public static EnumComboViewer buildEnumComboViewer(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new EnumComboViewer(parent, commandStack, widgetFactory);
-	}
-	
-	public static EnumHolder buildMultiRelationshipMappingFetchEnumHolder(IMultiRelationshipMapping mapping) {
-		return new FetchHolder(mapping);
-	}
-	
-	public static EnumHolder buildSingleRelationshipMappingFetchEnumHolder(ISingleRelationshipMapping mapping) {
-		return new SingleRelationshipMappingFetchHolder(mapping);
-	}
-	
-	public static EnumHolder buildOptionalHolder(ISingleRelationshipMapping mapping) {
-		return new OptionalHolder(mapping);
-	}
-	
-	public static Label buildColumnLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.ColumnChooser_label);
-	}
-	
-	public static Label buildColumnTableLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiMappingsMessages.ColumnTableChooser_label);
-	}
-	
-	public static ColumnTableHolder buildColumnTableHolder(IColumn column) {
-		return new ColumnTableHolder(column);
-	}
-
-	public static TargetEntityChooser buildTargetEntityChooser(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new TargetEntityChooser(parent, commandStack, widgetFactory);
-	}
-	private static class FetchHolder extends EObjectImpl implements EnumHolder {
-		
-		private IMultiRelationshipMapping mapping;
-		
-		FetchHolder(IMultiRelationshipMapping mapping) {
-			super();
-			this.mapping = mapping;
-		}
-		
-		public Object get() {
-			return this.mapping.getFetch();
-		}
-		
-		public void set(Object enumSetting) {
-			this.mapping.setFetch((DefaultLazyFetchType) enumSetting);
-			
-		}
-		
-		public Class featureClass() {
-			return IMultiRelationshipMapping.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IMULTI_RELATIONSHIP_MAPPING__FETCH;
-		}
-		
-		public EObject wrappedObject() {
-			return this.mapping;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultLazyFetchType.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultLazyFetchType.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "Lazy";
-		}
-	}
-	
-	private static class SingleRelationshipMappingFetchHolder extends EObjectImpl implements EnumHolder {
-		
-		private ISingleRelationshipMapping mapping;
-		
-		SingleRelationshipMappingFetchHolder(ISingleRelationshipMapping mapping) {
-			super();
-			this.mapping = mapping;
-		}
-		
-		public Object get() {
-			return this.mapping.getFetch();
-		}
-		
-		public void set(Object enumSetting) {
-			this.mapping.setFetch((DefaultEagerFetchType) enumSetting);
-			
-		}
-		
-		public Class featureClass() {
-			return ISingleRelationshipMapping.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.ISINGLE_RELATIONSHIP_MAPPING__FETCH;
-		}
-		
-		public EObject wrappedObject() {
-			return this.mapping;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultEagerFetchType.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultEagerFetchType.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "Eager";
-		}
-	}	
-	private static abstract class ColumnHolder extends EObjectImpl implements StringHolder {
-		private IAbstractColumn column;
-		
-		ColumnHolder(IAbstractColumn column) {
-			super();
-			this.column = column;
-		}
-		
-		public Class featureClass() {
-			return IAbstractColumn.class;
-		}
-		
-		public boolean supportsDefault() {
-			return true;
-		}
-		
-		public EObject wrappedObject() {
-			return this.column;
-		}
-		
-		protected IAbstractColumn getColumn() {
-			return this.column;
-		}
-	}
-	
-	public static class ColumnTableHolder extends ColumnHolder implements StringHolder {
-		
-		ColumnTableHolder(IAbstractColumn column) {
-			super(column);
-		}
-			
-		public int featureId() {
-			return JpaCoreMappingsPackage.IABSTRACT_COLUMN__SPECIFIED_TABLE;
-		}
-		
-		public int defaultFeatureId() {
-			return JpaCoreMappingsPackage.IABSTRACT_COLUMN__DEFAULT_TABLE;
-		}
-		
-		public String defaultItem() {
-			String defaultName = getColumn().getDefaultTable();
-			if (defaultName != null) {
-				return NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultName);
-			}
-			return JptUiMappingsMessages.ColumnComposite_defaultEmpty;
-		}
-		
-		public String getString() {
-			return getColumn().getSpecifiedTable();
-		}
-		
-		public void setString(String newName) {
-			getColumn().setSpecifiedTable(newName);
-		}
-	}
-	
-	private static class OptionalHolder extends EObjectImpl implements EnumHolder {
-		
-		private ISingleRelationshipMapping mapping;
-		
-		OptionalHolder(ISingleRelationshipMapping mapping) {
-			super();
-			this.mapping = mapping;
-		}
-		
-		public Object get() {
-			return this.mapping.getOptional();
-		}
-		
-		public void set(Object enumSetting) {
-			this.mapping.setOptional((DefaultTrueBoolean) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return ISingleRelationshipMapping.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.ISINGLE_RELATIONSHIP_MAPPING__OPTIONAL;
-		}
-		
-		public EObject wrappedObject() {
-			return this.mapping;
-		}
-		
-		public Object[] enumValues() {
-			return DefaultTrueBoolean.VALUES.toArray();
-		}
-		
-		public Object defaultValue() {
-			return DefaultTrueBoolean.DEFAULT;
-		}
-		
-		public String defaultString() {
-			//TODO move this out of the UI into the model
-			return "True";
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddableComposite.java
deleted file mode 100644
index 2c98eb0..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddableComposite.java
+++ /dev/null
@@ -1,125 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IEmbeddable;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddableComposite extends BaseJpaComposite 
-{
-	private IEmbeddable embeddable;
-	private Adapter mappedSuperclassListener;
-	
-	private CommandStack commandStack;
-	
-	
-	public EmbeddableComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.mappedSuperclassListener = buildMappedSuperclassListener();
-	}
-	
-	private Adapter buildMappedSuperclassListener() {
-		return new AdapterImpl() {
-			@Override
-			public void notifyChanged(Notification notification) {
-				mappedSuperclassChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new FillLayout(SWT.VERTICAL));
-		
-//		Label accessTypeLabel = new Label(composite, SWT.LEFT);
-//		accessTypeLabel.setText(DaliUiMessages.MappedSuperclassComposite_accessType);
-//		this.accessTypeComboViewer = buildAccessTypeCombo(composite);
-//		//eventually this will be enabled if editing xml instead of java
-//		this.accessTypeComboViewer.getCombo().setEnabled(false);
-//		GridData gridData = new GridData();
-//		gridData.horizontalAlignment = GridData.FILL;
-//		gridData.grabExcessHorizontalSpace = true;
-//		this.accessTypeComboViewer.getCombo().setLayoutData(gridData);
-//		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.accessTypeComboViewer.getCombo(), IDaliHelpContextIds.ENTITY_ACCESS_TYPE);
-		
-	}
-	
-//	private ComboViewer buildAccessTypeCombo(Composite parent) {
-//		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
-//		viewer.add(AccessType.VALUES.toArray());
-//		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-//			public void selectionChanged(SelectionChangedEvent event) {
-//				if (populating) {
-//					return;
-//				}
-//				if (event.getSelection() instanceof StructuredSelection) {
-//					StructuredSelection selection = (StructuredSelection) event.getSelection();
-//					editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, persistentType, OrmPackage.eINSTANCE.getPersistentType_AccessType(), selection.getFirstElement()));
-//				}
-//			}
-//		});
-//		return viewer;
-//	}
-	
-	@Override
-	protected void doPopulate(EObject model) {
-		this.embeddable = (IEmbeddable) model;
-	}
-	
-	@Override
-	protected void doPopulate() {
-		
-	}
-	
-	
-	protected void engageListeners() {
-//		this.persistentTypeItemProvider.addListener(getPersistentTypeListener());
-//		this.persistentType.eAdapters().add(this.persistentTypeItemProvider);
-	}
-
-	protected void disengageListeners() {
-//		if (this.persistentType != null){
-//			this.persistentType.eAdapters().remove(this.persistentTypeItemProvider);
-//			this.persistentTypeItemProvider.removeListener(getPersistentTypeListener());
-//		}
-	}
-	
-	private void mappedSuperclassChanged(Notification notification) {
-		
-	}
-	
-//	private INotifyChangedListener getPersistentTypeListener() {
-//		if (this.persistentTypeListener == null) {
-//			this.persistentTypeListener = new INotifyChangedListener() {
-//				public void notifyChanged(Notification notification) {
-//					if (notification.getFeatureID(PersistentType.class) == OrmPackage.PERSISTENT_TYPE__ACCESS_TYPE) {
-//						final AccessType accessType = (AccessType) notification.getNewValue();
-//						Display.getDefault().syncExec(new Runnable() {
-//							public void run() {
-//								if (((StructuredSelection) accessTypeComboViewer.getSelection()).getFirstElement() != accessType) {
-//									accessTypeComboViewer.setSelection(new StructuredSelection(accessType));
-//								}
-//							}
-//						});
-//					}
-//				}
-//			};
-//		}
-//		return this.persistentTypeListener;
-//	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedAttributeOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedAttributeOverridesComposite.java
deleted file mode 100644
index d0da063..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedAttributeOverridesComposite.java
+++ /dev/null
@@ -1,338 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.mappings.IAttributeOverride;
-import org.eclipse.jpt.core.internal.mappings.IEmbedded;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddedAttributeOverridesComposite extends BaseJpaComposite
-{
-	private ListViewer listViewer;
-	
-	private IEmbedded embedded;
-	private Adapter embeddedListener;
-	
-	private IAttributeOverride attributeOverride;
-	private Adapter attributeOverrideListener;
-		
-	protected ColumnComposite columnComposite;
-	
-	private Button overrideDefaultButton;
-	
-	public EmbeddedAttributeOverridesComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.embeddedListener = buildEmbeddedListener();
-		this.attributeOverrideListener = buildAttributeOverrideListener();
-	}
-	
-	private Adapter buildEmbeddedListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				embeddedChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildAttributeOverrideListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				attributeOverrideChanged(notification);
-			}
-		};
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		Group attributeOverridesGroup = getWidgetFactory().createGroup(
-			composite, JptUiMappingsMessages.AttributeOverridesComposite_attributeOverrides);
-		attributeOverridesGroup.setLayout(new GridLayout(2, true));
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		attributeOverridesGroup.setLayoutData(gridData);
-		
-		this.listViewer = buildAttributeOverridesListViewer(attributeOverridesGroup);
-		gridData = new GridData();
-		gridData.verticalSpan = 2;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		this.listViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.listViewer.getList(), IJpaHelpContextIds.MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES);
-		
-		this.overrideDefaultButton = getWidgetFactory().createButton(attributeOverridesGroup, "Override Default", SWT.CHECK);
-		this.overrideDefaultButton.addSelectionListener(buildOverrideDefaultSelectionListener());
-		gridData = new GridData();
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.overrideDefaultButton.setLayoutData(gridData);
-		
-		
-		this.columnComposite = new ColumnComposite(attributeOverridesGroup, commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.columnComposite.getControl().setLayoutData(gridData);
-
-	}
-	
-	private SelectionListener buildOverrideDefaultSelectionListener() {
-		return new SelectionListener(){
-		
-			public void widgetSelected(SelectionEvent e) {
-				overrideDefaultButtonSelected(e);
-			}
-		
-			public void widgetDefaultSelected(SelectionEvent e) {
-				overrideDefaultButtonSelected(e);
-			}
-		};
-	}
-	
-	private void overrideDefaultButtonSelected(SelectionEvent e) {
-		boolean selection = this.overrideDefaultButton.getSelection();
-		if (selection) {
-			int index = this.embedded.getSpecifiedAttributeOverrides().size();
-			IAttributeOverride attributeOverride = this.embedded.createAttributeOverride(index);
-			this.embedded.getSpecifiedAttributeOverrides().add(attributeOverride);
-			attributeOverride.setName(this.attributeOverride.getName());
-			attributeOverride.getColumn().setSpecifiedName(this.attributeOverride.getColumn().getName());			
-		}
-		else {
-			this.embedded.getSpecifiedAttributeOverrides().remove(this.attributeOverride);
-		}
-	}
-	
-	
-	private ListViewer buildAttributeOverridesListViewer(Composite parent) {
-		ListViewer listViewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER);
-		listViewer.setLabelProvider(buildAttributeOverridesLabelProvider());
-		listViewer.setContentProvider(buildAttributeOverridesContentProvider());
-		
-		listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				attributeOverridesListSelectionChanged(event);
-			}
-		});
-
-		return listViewer;
-	}
-	
-	protected void attributeOverridesListSelectionChanged(SelectionChangedEvent event) {
-		if (((StructuredSelection) event.getSelection()).isEmpty()) {
-			this.columnComposite.populate(null);
-			this.columnComposite.enableWidgets(false);
-			this.overrideDefaultButton.setSelection(false);
-			this.overrideDefaultButton.setEnabled(false);
-		}
-		else {
-			this.attributeOverride = getSelectedAttributeOverride();
-			boolean specifiedOverride = this.embedded.getSpecifiedAttributeOverrides().contains(this.attributeOverride);
-			this.overrideDefaultButton.setSelection(specifiedOverride);
-			this.columnComposite.populate(this.attributeOverride.getColumn());
-			this.columnComposite.enableWidgets(specifiedOverride);
-			this.overrideDefaultButton.setEnabled(true);
-		}
-	}
-	
-	private ILabelProvider buildAttributeOverridesLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				//TODO also display column name somehow
-				return ((IAttributeOverride) element).getName();
-			}
-		};
-	}
-
-	
-	private IContentProvider buildAttributeOverridesContentProvider() {
-		return new IStructuredContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		
-			public void dispose() {
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return ((IEmbedded) inputElement).getAttributeOverrides().toArray();
-			}
-		};
-	}
-
-	private IAttributeOverride getSelectedAttributeOverride() {
-		return (IAttributeOverride) ((StructuredSelection) this.listViewer.getSelection()).getFirstElement();
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-		this.embedded = (IEmbedded) obj;
-		if (this.embedded == null) {
-			this.attributeOverride = null;
-			this.columnComposite.populate(null);
-			this.listViewer.setInput(null);
-			return;
-		}
-		
-		if (this.listViewer.getInput() != this.embedded) {
-			this.listViewer.setInput(this.embedded);
-		}
-		if (!this.embedded.getAttributeOverrides().isEmpty()) {
-			if (this.listViewer.getSelection().isEmpty()) {
-				IAttributeOverride attributeOverride = this.embedded.getAttributeOverrides().get(0);
-				this.listViewer.setSelection(new StructuredSelection(attributeOverride));
-			}
-			else {
-				this.columnComposite.enableWidgets(true);
-				this.columnComposite.populate(((IAttributeOverride)((StructuredSelection) this.listViewer.getSelection()).getFirstElement()).getColumn());
-			}
-		}
-		else {
-			this.columnComposite.populate(null);
-			this.columnComposite.enableWidgets(false);
-		}
-	}
-
-	@Override
-	protected void doPopulate() {
-		this.columnComposite.doPopulate();
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.embedded != null) {
-			this.embedded.eAdapters().add(this.embeddedListener);
-			for (IAttributeOverride attributeOverride : this.embedded.getAttributeOverrides()) {
-				attributeOverride.eAdapters().add(this.attributeOverrideListener);
-			}	
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.embedded != null) {
-			this.embedded.eAdapters().remove(this.embeddedListener);
-			for (IAttributeOverride attributeOverride : this.embedded.getAttributeOverrides()) {
-				attributeOverride.eAdapters().remove(this.attributeOverrideListener);
-			}	
-		}
-	}
-
-	
-	protected void embeddedChanged(Notification notification) {
-		switch (notification.getFeatureID(IEmbedded.class)) {
-			case JpaCoreMappingsPackage.IEMBEDDED__SPECIFIED_ATTRIBUTE_OVERRIDES :
-			case JpaCoreMappingsPackage.IEMBEDDED__DEFAULT_ATTRIBUTE_OVERRIDES :
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						if (listViewer.getList().isDisposed()) {
-							return;
-						}
-						listViewer.refresh();
-						columnComposite.enableWidgets(!listViewer.getSelection().isEmpty());
-						if (listViewer.getSelection().isEmpty()) {
-							columnComposite.populate(null);
-						}
-					}
-				});
-				if (notification.getEventType() == Notification.ADD) {
-					((IAttributeOverride) notification.getNewValue()).eAdapters().add(this.attributeOverrideListener);
-					final Object newValue = notification.getNewValue();
-					Display.getDefault().asyncExec(new Runnable() {
-						public void run() {
-							if (listViewer.getList().isDisposed()) {
-								return;
-							}
-							listViewer.setSelection(new StructuredSelection(newValue));
-						}
-					});
-				}
-				else if (notification.getEventType() == Notification.ADD_MANY) {
-					List addedList = (List) notification.getNewValue();
-					for (Iterator<IAttributeOverride> i = addedList.iterator(); i.hasNext(); ) {
-						IAttributeOverride override = i.next();
-						override.eAdapters().add(this.attributeOverrideListener);
-					}
-				}
-				else if (notification.getEventType() == Notification.REMOVE) {
-					((IAttributeOverride) notification.getOldValue()).eAdapters().remove(this.attributeOverrideListener);				
-				}
-				else if (notification.getEventType() == Notification.REMOVE_MANY) {
-					List removedList = (List) notification.getOldValue();
-					for (Iterator<IAttributeOverride> i = removedList.iterator(); i.hasNext(); ) {
-						IAttributeOverride override = i.next();
-						override.eAdapters().remove(this.attributeOverrideListener);
-					}
-				}
-				break;
-			default :
-				break;
-		}
-	}
-
-	protected void attributeOverrideChanged(Notification notification) {
-		switch (notification.getFeatureID(IAttributeOverride.class)) {
-			case JpaCoreMappingsPackage.IATTRIBUTE_OVERRIDE__NAME :
-				final IAttributeOverride attributeOverride = (IAttributeOverride) notification.getNotifier();
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						listViewer.refresh(attributeOverride);
-					}
-				});
-				break;
-			default :
-				break;
-		}
-	}
-	
-	public void dispose() {
-		this.columnComposite.dispose();
-		super.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedComposite.java
deleted file mode 100644
index 734a9c8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedComposite.java
+++ /dev/null
@@ -1,71 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IEmbedded;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddedComposite extends BaseJpaComposite 
-{
-	private IEmbedded embedded;
-	
-	private EmbeddedAttributeOverridesComposite attributeOverridesComposite;
-
-	public EmbeddedComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-
-		GridData gridData;
-		
-		this.attributeOverridesComposite = new EmbeddedAttributeOverridesComposite(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.attributeOverridesComposite.getControl().setLayoutData(gridData);
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-		this.embedded = (IEmbedded) obj;
-		this.attributeOverridesComposite.populate(obj);
-	}
-	
-	public void doPopulate() {
-		this.attributeOverridesComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.attributeOverridesComposite.dispose();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedIdComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedIdComposite.java
deleted file mode 100644
index 1311106..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EmbeddedIdComposite.java
+++ /dev/null
@@ -1,43 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EmbeddedIdComposite extends BaseJpaComposite 
-{
-	public EmbeddedIdComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-	}
-	
-	public void doPopulate() {
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityComposite.java
deleted file mode 100644
index 7ddf3c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityComposite.java
+++ /dev/null
@@ -1,339 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.INamedQuery;
-import org.eclipse.jpt.core.internal.mappings.IQueryHint;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser.StringHolder;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EntityComposite extends BaseJpaComposite
-{
-	private IEntity entity;
-	
-	private EntityNameCombo entityNameCombo;
-	
-	private TableComposite tableComposite;
-	private InheritanceComposite inheritanceComposite;
-	private SecondaryTablesComposite secondaryTablesComposite;
-	private OverridesComposite attributeOverridesComposite;
-	
-	public EntityComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-		Control attributeOverridesControl = buildAttributeOverridesComposite(composite);
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		attributeOverridesControl.setLayoutData(gridData);
-
-		Control secondaryTablesControl = buildSecondaryTablesComposite(composite);
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		secondaryTablesControl.setLayoutData(gridData);
-		
-		Control inheritanceControl = buildInheritanceComposite(composite);
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		inheritanceControl.setLayoutData(gridData);
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-				
-		CommonWidgets.buildEntityNameLabel(generalComposite, getWidgetFactory());
-		
-		this.entityNameCombo = 
-	    	CommonWidgets.buildEntityNameCombo(generalComposite, this.commandStack, getWidgetFactory());
-	    GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.entityNameCombo.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(entityNameCombo.getCombo(), IJpaHelpContextIds.ENTITY_NAME);
-		
-		
-		this.tableComposite = new TableComposite(generalComposite, this.commandStack, getWidgetFactory());
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.tableComposite.getControl().setLayoutData(gridData);
-		
-		return generalComposite;
-	}
-	
-	private Control buildSecondaryTablesComposite(Composite composite) {
-	    Section section = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    section.setText(JptUiMappingsMessages.SecondaryTablesComposite_secondaryTables);
-
-		Composite client = getWidgetFactory().createComposite(section);
-		section.setClient(client);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		client.setLayout(layout);
-
-		this.secondaryTablesComposite = new SecondaryTablesComposite(client, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.secondaryTablesComposite.getControl().setLayoutData(gridData);
-		
-		return section;
-	}
-
-	private Control buildInheritanceComposite(Composite composite) {
-	    Section section = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    section.setText(JptUiMappingsMessages.EntityComposite_inheritance);
-
-		Composite inheritanceClient = getWidgetFactory().createComposite(section);
-		section.setClient(inheritanceClient);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		inheritanceClient.setLayout(layout);
-
-		this.inheritanceComposite = new InheritanceComposite(inheritanceClient, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.inheritanceComposite.getControl().setLayoutData(gridData);
-		
-		return section;
-	}
-
-	private Control buildAttributeOverridesComposite(Composite composite) {
-	    Section section = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    section.setText(JptUiMappingsMessages.AttributeOverridesComposite_attributeOverrides);
-	    //section.setExpanded(true); //not going to expand this for now, it causes the scroll bar not to appear
-		Composite client = getWidgetFactory().createComposite(section);
-		section.setClient(client);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		client.setLayout(layout);
-
-		this.attributeOverridesComposite = new OverridesComposite(client, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.attributeOverridesComposite.getControl().setLayoutData(gridData);
-		
-		return section;
-	}
-
-	//TODO talk to JavaEditor people about what we can do to hook in TabbedProperties for the JavaEditor
-	
-	public void doPopulate(EObject obj) {
-		this.entity = (IEntity) obj;
-		this.entityNameCombo.populate(obj);
-		this.attributeOverridesComposite.populate(obj);
-		this.secondaryTablesComposite.populate(obj);
-		this.inheritanceComposite.populate(obj);
-		if (this.entity != null) {
-			this.tableComposite.populate(this.entity.getTable());
-		}
-		else {
-			this.tableComposite.populate(null);					
-		}
-	}
-	
-	public void doPopulate() {
-		this.entityNameCombo.populate();
-		this.tableComposite.populate();
-		this.attributeOverridesComposite.populate();
-		this.secondaryTablesComposite.populate();
-		this.inheritanceComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.entityNameCombo.dispose();
-		this.tableComposite.dispose();
-		this.attributeOverridesComposite.dispose();
-		this.secondaryTablesComposite.dispose();
-		this.inheritanceComposite.dispose();
-		super.dispose();
-	}
-	
-	protected IEntity getEntity() {
-		return this.entity;
-	}
-	
-	
-	private abstract class TableHolder extends EObjectImpl implements StringHolder {
-		private ITable table;
-		
-		TableHolder(ITable table) {
-			super();
-			this.table = table;
-		}
-		
-		public Class featureClass() {
-			return ITable.class;
-		}
-		
-		public boolean supportsDefault() {
-			return true;
-		}
-		
-		public EObject wrappedObject() {
-			return this.table;
-		}
-		
-		public ITable getTable() {
-			return this.table;
-		}
-	}
-	
-	private class TableNameHolder extends TableHolder implements StringHolder {
-		
-		TableNameHolder(ITable table) {
-			super(table);
-		}
-			
-		public int featureId() {
-			return JpaCoreMappingsPackage.ITABLE__SPECIFIED_NAME;
-		}
-		
-		public int defaultFeatureId() {
-			return JpaCoreMappingsPackage.ITABLE__DEFAULT_NAME;
-		}
-		
-		public String defaultItem() {
-			String defaultName = getTable().getDefaultName();
-			if (defaultName != null) {
-				return NLS.bind(JptUiMappingsMessages.EntityComposite_tableDefault, defaultName);
-			}
-			return JptUiMappingsMessages.EntityComposite_tableNoDefaultSpecified;
-		}
-		
-		public String getString() {
-			return getTable().getSpecifiedName();
-		}
-		
-		public void setString(String newName) {
-			getTable().setSpecifiedName(newName);
-		}
-	}
-	
-	private class TableCatalogHolder extends TableHolder implements StringHolder {
-		
-		TableCatalogHolder(ITable table) {
-			super(table);
-		}
-			
-		public int featureId() {
-			return JpaCoreMappingsPackage.ITABLE__SPECIFIED_CATALOG;
-		}
-		
-		public int defaultFeatureId() {
-			return JpaCoreMappingsPackage.ITABLE__DEFAULT_CATALOG;
-		}
-		
-		public String defaultItem() {
-			String defaultCatalog = getTable().getDefaultCatalog();
-			if (defaultCatalog != null) {
-				return NLS.bind(JptUiMappingsMessages.EntityComposite_tableDefault, defaultCatalog);
-			}
-			return JptUiMappingsMessages.EntityComposite_tableNoDefaultSpecified;
-		}
-		
-		public String getString() {
-			return getTable().getSpecifiedCatalog();
-		}
-		
-		public void setString(String newName) {
-			getTable().setSpecifiedCatalog(newName);
-		}
-	}
-	
-	private class TableSchemaHolder extends TableHolder implements StringHolder {
-		
-		TableSchemaHolder(ITable table) {
-			super(table);
-		}
-			
-		public int featureId() {
-			return JpaCoreMappingsPackage.ITABLE__SPECIFIED_SCHEMA;
-		}
-		
-		public int defaultFeatureId() {
-			return JpaCoreMappingsPackage.ITABLE__DEFAULT_SCHEMA;
-		}
-		
-		public String defaultItem() {
-			String defaultSchema = getTable().getDefaultSchema();
-			if (defaultSchema != null) {
-				return NLS.bind(JptUiMappingsMessages.EntityComposite_tableDefault, defaultSchema);
-			}
-			return JptUiMappingsMessages.EntityComposite_tableNoDefaultSpecified;
-		}
-		
-		public String getString() {
-			return getTable().getSpecifiedSchema();
-		}
-		
-		public void setString(String newName) {
-			getTable().setSpecifiedSchema(newName);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityNameCombo.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityNameCombo.java
deleted file mode 100644
index 8fe0ffc..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EntityNameCombo.java
+++ /dev/null
@@ -1,165 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Arrays;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-// TODO get Default updating appropriately based on Entity name default
-	
-public class EntityNameCombo extends BaseJpaController
-{
-	private IEntity entity;
-	private Adapter entityListener;
-	
-	private CCombo combo;
-	
-	
-	public EntityNameCombo(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-		buildEntityListener();
-	}
-	
-	
-	private void buildEntityListener() {
-		entityListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		combo = this.widgetFactory.createCCombo(parent, SWT.FLAT);
-		combo.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					comboModified(e);
-				}
-			});
-	}
-	
-	private void comboModified(ModifyEvent e) {
-		if (isPopulating()) {
-			return;
-		}
-		
-		String text = ((CCombo) e.getSource()).getText();
-		if (text.equals(combo.getItem(0))) {
-			text = null;
-		}
-		
-		entity.setSpecifiedName(text);
-		
-		// TODO Does this need to be done?
-		//this.editingDomain.getCommandStack().execute(SetCommand.create(this.editingDomain, this.entity, MappingsPackage.eINSTANCE.getEntity_SpecifiedName(), text));
-	}
-	
-	private void entityChanged(Notification notification) {
-		switch (notification.getFeatureID(IEntity.class)) {
-			case JpaCoreMappingsPackage.IENTITY__SPECIFIED_NAME :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							populate();
-						}
-					});
-				break;
-			case JpaCoreMappingsPackage.IENTITY__DEFAULT_NAME :
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							populate();
-						}
-					});
-				break;
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (entity != null) {
-			entity.eAdapters().add(entityListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (entity != null) {
-			entity.eAdapters().remove(entityListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		entity = (IEntity) obj;
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		if (entity == null) {
-			combo.clearSelection();
-			combo.setItems(new String[] {});
-			return;
-		}
-		
-		String defaultItem = NLS.bind(JptUiMappingsMessages.EntityGeneralSection_nameDefaultWithOneParam, entity.getDefaultName());
-		String specifiedName = entity.getSpecifiedName();
-		
-		if (specifiedName == null) {
-			setComboData(defaultItem, new String[] {defaultItem});
-		}
-		else {
-			setComboData(specifiedName, new String[] {defaultItem});
-		}
-	}
-	
-	private void setComboData(String text, String[] items) {
-		if (! Arrays.equals(items, combo.getItems())) {
-			combo.setItems(items);
-		}
-		
-		if (! text.equals(combo.getText())) {
-			combo.setText(text);
-		}
-	}
-	
-	public CCombo getCombo() {
-		return combo;
-	}
-	
-	@Override
-	public Control getControl() {
-		return getCombo();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java
deleted file mode 100644
index 2cf6b61..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java
+++ /dev/null
@@ -1,207 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class EnumComboViewer extends BaseJpaController
-{
-	private EnumHolder enumHolder;
-	private Adapter enumListener;
-	
-	private CComboViewer comboViewer;
-
-
-	public EnumComboViewer(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildListener();
-	}
-	
-	
-	private void buildListener() {
-		this.enumListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				modelChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		this.comboViewer = new CComboViewer(combo);
-		this.comboViewer.setLabelProvider(buildLabelProvider());
-		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				EnumComboViewer.this.selectionChanged(event.getSelection());
-			}
-		});
-	}
-	protected IBaseLabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == enumHolder.defaultValue()) {
-					return NLS.bind(JptUiMappingsMessages.EnumComboViewer_default, enumHolder.defaultString());
-				}
-				return super.getText(element);
-			}
-		};
-	}
-
-	void selectionChanged(ISelection sel) {
-		if (sel instanceof IStructuredSelection) {
-			Object selection = ((IStructuredSelection) sel).getFirstElement();
-			if ( ! this.enumHolder.get().equals(selection)) {
-				this.enumHolder.set(selection);
-//				this.editingDomain.getCommandStack().execute(
-//					SetCommand.create(
-//						this.editingDomain,
-//						this.basicMapping,
-//						OrmPackage.eINSTANCE.getBasicMapping_Optional(),
-//						optional
-//					)
-//				);
-			}
-		}
-	}
-
-	private void modelChanged(Notification notification) {
-		if (notification.getFeatureID(this.enumHolder.featureClass()) == 
-				this.enumHolder.featureId()) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.enumHolder != null && this.enumHolder.wrappedObject() != null) {
-			this.enumHolder.wrappedObject().eAdapters().add(this.enumListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.enumHolder != null && this.enumHolder.wrappedObject() != null) {
-			this.enumHolder.wrappedObject().eAdapters().remove(this.enumListener);
-		}
-	}
-	
-	public final void populate(EnumHolder enumHolder) {
-		super.populate(enumHolder);
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.enumHolder = (EnumHolder) obj;
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		this.comboViewer.getCombo().removeAll();
-		if (this.enumHolder.wrappedObject() == null) {
-			return;
-		}
-		
-		this.comboViewer.add(this.enumHolder.enumValues());
-		
-		Object modelSetting = this.enumHolder.get();
-		
-		if (((IStructuredSelection) this.comboViewer.getSelection()).getFirstElement() != modelSetting) {
-			this.comboViewer.setSelection(new StructuredSelection(modelSetting));
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.comboViewer.getCombo();
-	}
-	
-	
-	/**
-	 * An interface to wrap an object that supports accessType
-	 * An object of this type must be passed in to populate(EObject)
-	 */
-	public static interface EnumHolder extends EObject {
-		/**
-		 * Return the num setting from the wrapped object
-		 * @return
-		 */
-		Object get();
-		
-		/**
-		 * Set the enum setting on the wrapped object
-		 * @param fetch
-		 */
-		void set(Object enumSetting);
-		
-		/**
-		 * Return the Class of the wrapped object
-		 * @return
-		 */
-		Class featureClass();
-		
-		/**
-		 * Return the feature id of enum setting on the wrapped object
-		 * @return
-		 */
-		int featureId();
-		
-		/**
-		 * The wrapped EObject that the enum setting is stored on
-		 * @return
-		 */
-		EObject wrappedObject();
-		
-		Object[] enumValues();
-		
-		/**
-		 * Return the Default Enumerator object
-		 */
-		Object defaultValue();
-		
-		/**
-		 * Return the String to be displayed to the user
-		 * Deafult ([defaultString()])
-		 */
-		String defaultString();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
deleted file mode 100644
index 3299892..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
+++ /dev/null
@@ -1,288 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.mappings.GenerationType;
-import org.eclipse.jpt.core.internal.mappings.IGeneratedValue;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.core.internal.platform.IGeneratorRepository;
-import org.eclipse.jpt.core.internal.platform.NullGeneratorRepository;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class GeneratedValueComposite extends BaseJpaComposite
-{
-	private IId id;
-	private IGeneratedValue generatedValue;
-	private Adapter generatedValueListener;
-
-	private CComboViewer strategyComboViewer;
-
-	private CCombo generatorNameCombo;
-
-	protected boolean populating;
-
-	public GeneratedValueComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.generatedValueListener = buildGeneratedValueListener();
-	}
-	
-	private Adapter buildGeneratedValueListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				generatedValueChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		composite.setLayout(layout);
-		
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.GeneratedValueComposite_strategy);
-		
-		this.strategyComboViewer = buildStrategyComboViewer(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.strategyComboViewer.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(this.strategyComboViewer.getCombo(), IJpaHelpContextIds.MAPPING_GENERATED_VALUE_STRATEGY);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.GeneratedValueComposite_generatorName);
-		
-		this.generatorNameCombo = buildGeneratorNameCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.generatorNameCombo.setLayoutData(gridData);
-		helpSystem.setHelp(this.generatorNameCombo, IJpaHelpContextIds.MAPPING_GENERATED_VALUE_GENERATOR_NAME);
-		
-		// TODO
-		// buildGeneratorNameSelectionButton( this);
-	}
-
-	private CComboViewer buildStrategyComboViewer(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		CComboViewer viewer = new CComboViewer(combo);
-		viewer.setLabelProvider(buildStrategyLabelProvider());
-		viewer.add(GenerationType.VALUES.toArray());
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (populating) {
-					return;
-				}
-				if (event.getSelection() instanceof StructuredSelection) {
-					StructuredSelection selection = (StructuredSelection) event.getSelection();
-					GenerationType selectedType = (GenerationType) selection.getFirstElement();
-					if (generatedValue == null) {
-						createGeneratedValue();
-					}
-					if (!generatedValue.getStrategy().equals(selectedType)) {
-						generatedValue.setStrategy(selectedType);
-					}
-				}
-			}
-		});
-		return viewer;
-	}
-	
-	private IBaseLabelProvider buildStrategyLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == GenerationType.DEFAULT) {
-					//TODO need to move this to the model, don't want hardcoded String
-					return NLS.bind(JptUiMappingsMessages.GeneratedValueComposite_default, "Auto");
-				}
-				return super.getText(element);
-			}
-		};
-	}
-	
-
-	protected CCombo buildGeneratorNameCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TableComposite_defaultEmpty);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String generatorName = ((CCombo) e.getSource()).getText();
-				
-				if (generatorName.equals("")) { //$NON-NLS-1$
-					if (generatedValue.getGenerator() == null || generatedValue.getGenerator().equals("")) {
-						return;
-					}
-					generatorName = null;
-				}
-				if (generatedValue == null) {
-					createGeneratedValue();
-				}
-				generatedValue.setGenerator(generatorName);
-			}
-		});
-		return combo;
-	}
-
-	private void createGeneratedValue() {
-		this.generatedValue = this.id.createGeneratedValue();
-		this.id.setGeneratedValue(this.generatedValue);
-	}
-	
-
-	protected void generatedValueChanged(Notification notification) {
-		if (notification.getFeatureID(IGeneratedValue.class) == JpaCoreMappingsPackage.IGENERATED_VALUE__STRATEGY) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					if (selectedStrategy() != generatedValue.getStrategy()) {
-						strategyComboViewer.setSelection(new StructuredSelection(generatedValue.getStrategy()));
-					}
-				}
-			});
-		}
-		else if (notification.getFeatureID(IGeneratedValue.class) == JpaCoreMappingsPackage.IGENERATED_VALUE__GENERATOR) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateGeneratorName();
-				}
-			});
-		}
-	}
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		this.id = (IId) obj;
-		if (this.id == null) {
-			this.generatedValue= null;
-		}
-		else {
-			this.generatedValue = this.id.getGeneratedValue();
-		}
-		if (this.generatedValue == null) {
-			this.strategyComboViewer.getCombo().setText("");
-			this.generatorNameCombo.setText("");
-			this.populating = false;
-			return;
-		}
-		populateStrategyCombo();
-		populateGeneratorNameCombo();
-	}
-
-	@Override
-	protected void doPopulate() {
-		
-	}
-	
-	protected void engageListeners() {
-		if (this.generatedValue != null) {
-			this.generatedValue.eAdapters().add(this.generatedValueListener);
-		}
-	}
-
-	protected void disengageListeners() {
-		if (this.generatedValue != null) {
-			this.generatedValue.eAdapters().remove(this.generatedValueListener);
-		}
-	}
-
-	private IGeneratorRepository getGeneratorRepository() {
-		return NullGeneratorRepository.instance(); //this.id.getJpaProject().getPlatform().generatorRepository(this.id.typeMapping().getPersistentType());
-	}
-	
-	private void populateGeneratorNameCombo() {
-		this.generatorNameCombo.removeAll();
-		for (Iterator<String> i = getGeneratorRepository().generatorNames(); i.hasNext(); ){
-			this.generatorNameCombo.add(i.next());
-		}
-
-		populateGeneratorName();
-	}
-	private void populateGeneratorName() {
-		String generatorName = this.generatedValue.getGenerator();
-		if (generatorName == null || generatorName.equals("")) {
-			this.generatorNameCombo.setText("");
-		}
-		else if (!this.generatorNameCombo.getText().equals(generatorName)) {
-			this.generatorNameCombo.setText(generatorName);
-		}
-	}
-	
-	private void populateStrategyCombo() {
-		GenerationType selectedType = selectedStrategy();
-		GenerationType strategy = this.generatedValue.getStrategy();
-		if (strategy == GenerationType.AUTO) {
-			if (selectedType != GenerationType.AUTO) {
-				this.strategyComboViewer.setSelection(new StructuredSelection(GenerationType.AUTO));
-			}
-		}
-		else if (strategy == GenerationType.SEQUENCE) {
-			if (selectedType != GenerationType.SEQUENCE) {
-				this.strategyComboViewer.setSelection(new StructuredSelection(GenerationType.SEQUENCE));
-			}
-		}
-		else if (strategy == GenerationType.IDENTITY) {
-			if (selectedType != GenerationType.IDENTITY) {
-				this.strategyComboViewer.setSelection(new StructuredSelection(GenerationType.IDENTITY));
-			}
-		}
-		else if (strategy == GenerationType.TABLE) {
-			if (selectedType != GenerationType.TABLE) {
-				this.strategyComboViewer.setSelection(new StructuredSelection(GenerationType.TABLE));
-			}
-		}
-		else {
-			if (selectedType != GenerationType.DEFAULT) {
-				this.strategyComboViewer.setSelection(new StructuredSelection(GenerationType.DEFAULT));
-			}
-		}
-		// TODO first initialization
-	}
-
-	private GenerationType selectedStrategy() {
-		return (GenerationType) ((StructuredSelection) this.strategyComboViewer.getSelection()).getFirstElement();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratorComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratorComposite.java
deleted file mode 100644
index a9f0227..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratorComposite.java
+++ /dev/null
@@ -1,167 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IGenerator;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * GeneratorComposite
- */
-public abstract class GeneratorComposite<E extends IGenerator> extends BaseJpaComposite
-{
-	private IId id;
-	private E generator;
-	private Adapter generatorListener;
-
-	protected Text nameTextWidget;
-
-	public GeneratorComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.generatorListener = buildGeneratorListner();
-	}
-	
-	private Adapter buildGeneratorListner() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				generatorChanged(notification);
-			}
-		};
-	}
-
-	/**
-	 * Builds the Generator specifiedName viewer.
-	 * 
-	 * @param parent
-	 * @return
-	 */
-	protected Text buildNameText(Composite parent) {
-		final Text text = getWidgetFactory().createText(parent, null);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				
-				String name = text.getText();
-				if (name.equals("")) { //$NON-NLS-1$
-					if (getGenerator().getName() == null) {
-						return;
-					}
-					name = null;
-				}
-				IGenerator generator = getGenerator();
-				if (generator == null) {
-					generator = createGenerator();
-				}
-				generator.setName(name);
-			}
-		});
-		return text;
-	}
-
-	protected abstract E createGenerator();
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		this.id = (IId) obj;
-		if (this.id  == null) {
-			this.generator = null;
-			return;
-		}
-		this.generator = generator(this.id);
-		if (this.generator == null) {
-			clear();
-			return;
-		}
-		populateNameViewer();
-		return;
-	}
-
-	@Override
-	protected void doPopulate() {
-		populateNameViewer();
-	}
-	
-	protected void engageListeners() {
-		if (this.generator != null) {
-			this.generator.eAdapters().add(this.generatorListener);
-		}
-	}
-
-	protected void disengageListeners() {
-		if (this.generator != null) {
-			this.generator.eAdapters().remove(this.generatorListener);
-		}
-	}
-
-	protected abstract E generator(IId id);
-	
-	protected IId idMapping() {
-		return this.id;
-	}
-
-	protected void generatorChanged(Notification notification) {
-		if (notification.getFeatureID(IGenerator.class) == JpaCoreMappingsPackage.IGENERATOR__NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					if (nameTextWidget.getText() == null || !nameTextWidget.getText().equals(getGenerator().getName())) {
-						if (getGenerator().getName() == null) {
-							clearNameViewer();
-						}
-						else {
-							nameTextWidget.setText(getGenerator().getName());
-						}
-					}
-				}
-			});
-		}
-	}
-
-	private void populateNameViewer() {
-		String name = this.getGenerator().getName();
-		if (name != null) {
-			if (!this.nameTextWidget.getText().equals(name)) {
-				this.nameTextWidget.setText(name);
-			}
-		}
-		else {
-			this.clearNameViewer();
-		}
-	}
-
-	protected E getGenerator() {
-		return this.generator;
-	}
-
-	protected void clear() {
-		this.clearNameViewer();
-	}
-
-	protected void clearNameViewer() {
-		this.nameTextWidget.setText(""); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java
deleted file mode 100644
index b71d4cf..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java
+++ /dev/null
@@ -1,459 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.IGeneratedValue;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.ISequenceGenerator;
-import org.eclipse.jpt.core.internal.mappings.ITableGenerator;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.core.internal.mappings.TemporalType;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class IdComposite extends BaseJpaComposite 
-{
-	private IId id;
-	private Adapter idListener;
-	
-	private ColumnComposite columnComposite;
-
-	private EnumComboViewer temporalTypeViewer;
-	
-	private Section pkGenerationSection;
-	private Button primaryKeyGenerationCheckBox;
-	private GeneratedValueComposite generatedValueComposite;
-	
-	private Section tableGenSection;
-	private Button tableGeneratorCheckBox;
-	private TableGeneratorComposite tableGeneratorComposite;
-	
-	private Section sequenceGenSection;
-	private Button sequenceGeneratorCheckBox;
-	private SequenceGeneratorComposite sequenceGeneratorComposite;
-
-	
-	public IdComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.idListener = buildIdListener();
-	}
-	
-	private Adapter buildIdListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				idMappingChanged(notification);
-			}
-		};
-	}
-	void idMappingChanged(Notification notification) {
-		switch (notification.getFeatureID(IId.class)) {
-			case JpaCoreMappingsPackage.IID__TABLE_GENERATOR :
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						IdComposite.this.populateTableGeneratorComposite();
-					}
-				});
-				break;
-			case JpaCoreMappingsPackage.IID__SEQUENCE_GENERATOR :
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						IdComposite.this.populateSequenceGeneratorComposite();
-					}
-				});
-				break;
-			case JpaCoreMappingsPackage.IID__GENERATED_VALUE :
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						IdComposite.this.populateGeneratedValueComposite();
-					}
-				});
-				break;
-		}
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-		Control generationControl = buildGenerationComposite(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generationControl.setLayoutData(gridData);
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-		
-		this.columnComposite = new ColumnComposite(generalComposite, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.columnComposite.getControl().setLayoutData(gridData);	
-
-		CommonWidgets.buildTemporalLabel(generalComposite, getWidgetFactory());
-		this.temporalTypeViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.temporalTypeViewer.getControl().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(temporalTypeViewer.getControl(), IJpaHelpContextIds.MAPPING_TEMPORAL);
-
-		return generalComposite;
-	}
-
-	private Control buildGenerationComposite(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		this.pkGenerationSection = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    this.pkGenerationSection.setText(JptUiMappingsMessages.IdMappingComposite_primaryKeyGeneration);
-
-		Composite generationClient = getWidgetFactory().createComposite(this.pkGenerationSection);
-		this.pkGenerationSection.setClient(generationClient);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		generationClient.setLayout(layout);
-
-		this.primaryKeyGenerationCheckBox = buildPrimaryKeyGenerationCheckBox(generationClient);
-		GridData gridData = new GridData();
-		this.primaryKeyGenerationCheckBox.setLayoutData(gridData);
-		helpSystem.setHelp(primaryKeyGenerationCheckBox, IJpaHelpContextIds.MAPPING_PRIMARY_KEY_GENERATION);
-		
-		this.generatedValueComposite = new GeneratedValueComposite(generationClient, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalIndent = 20;
-		this.generatedValueComposite.getControl().setLayoutData(gridData);
-		
-	    this.tableGenSection = getWidgetFactory().createSection(generationClient, SWT.FLAT | ExpandableComposite.TWISTIE);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.tableGenSection.setLayoutData(gridData);
-		
-	    this.tableGenSection.setText(JptUiMappingsMessages.IdMappingComposite_tableGenerator);
-
-		Composite tableGenClient = getWidgetFactory().createComposite(this.tableGenSection);
-		this.tableGenSection.setClient(tableGenClient);
-		
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		tableGenClient.setLayout(layout);
-		
-		this.tableGeneratorCheckBox = buildTableGeneratorCheckBox(tableGenClient);
-		gridData = new GridData();
-		this.tableGeneratorCheckBox.setLayoutData(gridData);
-		helpSystem.setHelp(tableGeneratorCheckBox, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR);
-		
-		this.tableGeneratorComposite = new TableGeneratorComposite(tableGenClient, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalIndent = 20;
-		this.tableGeneratorComposite.getControl().setLayoutData(gridData);
-		
-
-		
-	    this.sequenceGenSection = getWidgetFactory().createSection(generationClient, SWT.FLAT | ExpandableComposite.TWISTIE);
-	    this.sequenceGenSection.setText(JptUiMappingsMessages.IdMappingComposite_sequenceGenerator);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.sequenceGenSection.setLayoutData(gridData);
-
-		Composite sequenceGenClient = getWidgetFactory().createComposite(this.sequenceGenSection);
-		this.sequenceGenSection.setClient(sequenceGenClient);
-		
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		sequenceGenClient.setLayout(layout);
-	
-		this.sequenceGeneratorCheckBox = buildSequenceGeneratorCheckBox(sequenceGenClient);
-		gridData = new GridData();
-		this.sequenceGeneratorCheckBox.setLayoutData(gridData);
-		helpSystem.setHelp(sequenceGeneratorCheckBox, IJpaHelpContextIds.MAPPING_SEQUENCE_GENERATOR);
-
-		this.sequenceGeneratorComposite = new SequenceGeneratorComposite(sequenceGenClient, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalIndent = 20;
-		this.sequenceGeneratorComposite.getControl().setLayoutData(gridData);
-
-		return this.pkGenerationSection;
-	}
-	
-	private Button buildPrimaryKeyGenerationCheckBox(Composite parent) {
-		Button button = getWidgetFactory().createButton(parent,JptUiMappingsMessages.IdMappingComposite_primaryKeyGeneration, SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			// ignore
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				IdComposite.this.primaryKeyGenerationCheckBoxClicked(e);
-			}
-		});
-		return button;
-	}
-
-	void primaryKeyGenerationCheckBoxClicked(SelectionEvent e) {
-		boolean mappingHasGeneratedValue = this.id.getGeneratedValue() != null;
-		boolean checked = this.primaryKeyGenerationCheckBox.getSelection();
-		if (checked == mappingHasGeneratedValue) {
-			return;
-		}
-		IGeneratedValue generatedValue = null;
-		if (checked) {
-			generatedValue = this.id.createGeneratedValue();
-		}
-		this.id.setGeneratedValue(generatedValue);
-	}
-
-	private Button buildTableGeneratorCheckBox(Composite parent) {
-		Button button = getWidgetFactory().createButton(parent,JptUiMappingsMessages.IdMappingComposite_tableGenerator, SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			// ignore
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				IdComposite.this.tableGeneratorCheckBoxClicked(e);
-			}
-		});
-		return button;
-	}
-
-	void tableGeneratorCheckBoxClicked(SelectionEvent e) {
-		boolean mappingHasTableGenerator = this.id.getTableGenerator() != null;
-		boolean checked = this.tableGeneratorCheckBox.getSelection();
-		if (checked == mappingHasTableGenerator) {
-			return;
-		}
-		ITableGenerator tableGenerator = null;
-		if (checked) {
-			tableGenerator = this.id.createTableGenerator();
-		}
-		this.id.setTableGenerator(tableGenerator);
-		if (checked) {
-			IGeneratedValue generatedValue = this.id.getGeneratedValue();
-			if (generatedValue != null && generatedValue.getGenerator() != null) {
-				tableGenerator.setName(generatedValue.getGenerator());
-			}
-		}
-	}
-
-	private Button buildSequenceGeneratorCheckBox(Composite parent) {
-		Button button = getWidgetFactory().createButton(parent,JptUiMappingsMessages.IdMappingComposite_sequenceGenerator, SWT.CHECK);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			// ignore
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				IdComposite.this.sequenceGeneratorCheckBoxClicked(e);
-			}
-		});
-		return button;
-	}
-
-	void sequenceGeneratorCheckBoxClicked(SelectionEvent e) {
-		boolean mappingHasSequenceGenerator = this.id.getSequenceGenerator() != null;
-		boolean checked = this.sequenceGeneratorCheckBox.getSelection();
-		if (checked == mappingHasSequenceGenerator) {
-			return;
-		}
-		ISequenceGenerator sequenceGenerator = null;
-		if (checked) {
-			sequenceGenerator = this.id.createSequenceGenerator();
-		}
-		this.id.setSequenceGenerator(sequenceGenerator);
-		if (checked) {
-			IGeneratedValue generatedValue = this.id.getGeneratedValue();
-			if (generatedValue != null && generatedValue.getGenerator() != null) {
-				sequenceGenerator.setName(generatedValue.getGenerator());
-			}
-		}
-	}
-
-	
-	
-	public void doPopulate(EObject obj) {
-		this.id = (IId) obj;
-		if (this.id != null) {
-			this.columnComposite.populate(this.id.getColumn());
-		}
-		else {
-			this.columnComposite.populate(null);
-			this.generatedValueComposite.populate(null);
-			this.tableGeneratorComposite.populate(null);
-			this.sequenceGeneratorComposite.populate(null);
-			return;
-		}
-	    this.pkGenerationSection.setExpanded(true);
-		this.temporalTypeViewer.populate(new TemporalTypeHolder(this.id));
-		populateGeneratedValueComposite();
-		populateSequenceGeneratorComposite();
-		populateTableGeneratorComposite();
-	}
-	
-	public void doPopulate() {
-		this.columnComposite.populate();
-		this.temporalTypeViewer.populate();
-		this.generatedValueComposite.populate();
-		this.tableGeneratorComposite.populate();
-		this.sequenceGeneratorComposite.populate();
-	}
-	
-	private void populateTableGeneratorComposite() {
-		this.tableGeneratorComposite.populate(this.id);
-		boolean tableGeneratorExists = this.id.getTableGenerator() != null;
-		this.tableGeneratorCheckBox.setSelection(tableGeneratorExists);
-		if (tableGeneratorExists) {
-			this.tableGenSection.setExpanded(true);
-		}
-	}
-
-	private void populateSequenceGeneratorComposite() {
-		this.sequenceGeneratorComposite.populate(this.id);
-		boolean sequenceGeneratorExists = this.id.getSequenceGenerator() != null;
-		this.sequenceGeneratorCheckBox.setSelection(sequenceGeneratorExists);
-		if (sequenceGeneratorExists) {
-			this.sequenceGenSection.setExpanded(true);
-		}
-	}
-
-	private void populateGeneratedValueComposite() {
-		this.generatedValueComposite.populate(this.id);
-		this.primaryKeyGenerationCheckBox.setSelection(this.id.getGeneratedValue() != null);
-	}
-
-	
-	protected void engageListeners() {
-		if (this.id !=null) {
-			this.id.eAdapters().add(this.idListener);
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.id !=null) {
-			this.id.eAdapters().remove(this.idListener);
-		}
-	}
-	
-	@Override
-	public void dispose() {
-		this.columnComposite.dispose();
-		this.temporalTypeViewer.dispose();
-		this.generatedValueComposite.dispose();
-		this.tableGeneratorComposite.dispose();
-		this.sequenceGeneratorComposite.dispose();
-		super.dispose();
-	}
-	
-	protected IId getId() {
-		return this.id;
-	}
-	
-	private class TemporalTypeHolder extends EObjectImpl implements EnumHolder {
-		
-		private IId id;
-		
-		TemporalTypeHolder(IId id) {
-			super();
-			this.id = id;
-		}
-		
-		public Object get() {
-			return this.id.getTemporal();
-		}
-		
-		public void set(Object enumSetting) {
-			this.id.setTemporal((TemporalType) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return IId.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IID__TEMPORAL;
-		}
-		
-		public EObject wrappedObject() {
-			return this.id;
-		}
-		
-		public Object[] enumValues() {
-			return TemporalType.VALUES.toArray();
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public Object defaultValue() {
-			return null;
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public String defaultString() {
-			return null;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java
deleted file mode 100644
index deb6154..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java
+++ /dev/null
@@ -1,620 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.mappings.DiscriminatorType;
-import org.eclipse.jpt.core.internal.mappings.IDiscriminatorColumn;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class InheritanceComposite extends BaseJpaComposite {
-	
-	private IEntity entity;
-	private IDiscriminatorColumn discriminatorColumn;
-	private final Adapter entityListener;
-	private final Adapter discriminatorColumnListener;
-	
-	private CComboViewer strategyViewer;
-	private CCombo columnCombo;
-	private CComboViewer discriminatorTypeViewer;
-	private CCombo discriminatorValueCombo;
-	
-	private ConnectionListener connectionListener;
-	
-	private ConnectionProfile connectionProfile;
-
-	
-	private PrimaryKeyJoinColumnsComposite pkJoinColumnsComposite;
-	
-	public InheritanceComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.entityListener = buildEntityListener();
-		this.discriminatorColumnListener = buildDiscriminatorColumnListener();
-		this.connectionListener = buildConnectionListener();
-	}
-		
-	private Adapter buildEntityListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityChanged(notification);
-			}
-		};
-	}
-
-	private Adapter buildDiscriminatorColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				discriminatorColumnChanged(notification);
-			}
-		};
-	}
-	
-    private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-
-			public void aboutToClose(Connection connection) {
-				// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						InheritanceComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						InheritanceComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						InheritanceComposite.this.populateColumnCombo();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				return;
-			}
-
-			public void schemaChanged(Connection connection, final Schema schema) {
-				return;
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if(table == getDbTable()) {
-							if (!getControl().isDisposed()) {
-								InheritanceComposite.this.populateColumnCombo();
-							}
-						}
-					}
-				});
-			}
-		};
-    }	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);	
-
-		GridData gridData;
-
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.InheritanceComposite_strategy);
-
-		this.strategyViewer = buildStrategyCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.strategyViewer.getCombo().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.strategyViewer.getCombo(), IJpaHelpContextIds.ENTITY_INHERITANCE_STRATEGY);
-
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.DiscriminatorColumnComposite_column);
-
-		this.columnCombo = buildColumnCombo(composite);
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.columnCombo.setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.columnCombo, IJpaHelpContextIds.ENTITY_INHERITANCE_DISCRIMINATOR_COLUMN);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.DiscriminatorColumnComposite_discriminatorType);
-
-		this.discriminatorTypeViewer = buildDiscriminatorTypeCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.discriminatorTypeViewer.getCombo().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.discriminatorTypeViewer.getCombo(), IJpaHelpContextIds.ENTITY_INHERITANCE_DISCRIMINATOR_TYPE);
-	
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.InheritanceComposite_discriminatorValue);
-
-		this.discriminatorValueCombo = buildDiscriminatorValueCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.discriminatorValueCombo.setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.discriminatorValueCombo, IJpaHelpContextIds.ENTITY_INHERITANCE_DISCRIMINATOR_VALUE);
-		
-		this.pkJoinColumnsComposite = new PrimaryKeyJoinColumnsComposite(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessVerticalSpace = true;
-		this.pkJoinColumnsComposite.getControl().setLayoutData(gridData);
-	}
-	
-	private CComboViewer buildStrategyCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		CComboViewer strategyViewer = new CComboViewer(combo);
-		strategyViewer.setLabelProvider(buildStrategyLabelProvider());
-		strategyViewer.add(InheritanceType.VALUES.toArray());
-		strategyViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				InheritanceComposite.this.strategySelectionChanged(event.getSelection());
-			}
-		});
-		
-		return strategyViewer;
-	}
-	
-	private IBaseLabelProvider buildStrategyLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == InheritanceType.DEFAULT) {
-					//TODO need to move this to the model, don't want hardcoded String
-					return NLS.bind(JptUiMappingsMessages.InheritanceComposite_default, "Single Table");
-				}
-				return super.getText(element);
-			}
-		};
-	}
-	
-	void strategySelectionChanged(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			InheritanceType inheritanceType = (InheritanceType) ((IStructuredSelection) selection).getFirstElement();
-			if ( ! this.entity.getInheritanceStrategy().equals(inheritanceType)) {
-				this.entity.setInheritanceStrategy(inheritanceType);
-			}
-		}
-	}
-	
-	private CCombo buildColumnCombo(Composite parent) {
-		final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-  		combo.add(JptUiMappingsMessages.ColumnComposite_defaultEmpty);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String tableText = ((CCombo) e.getSource()).getText();
-				if (tableText.equals("")) { //$NON-NLS-1$
-					tableText = null;
-					if (discriminatorColumn.getSpecifiedName() == null || discriminatorColumn.getSpecifiedName().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				
-				if (tableText != null && combo.getItemCount() > 0 && tableText.equals(combo.getItem(0))) {
-					tableText = null;
-				}
-
-				if (discriminatorColumn.getSpecifiedName() == null && tableText != null) {
-					discriminatorColumn.setSpecifiedName(tableText);
-				}
-				if (discriminatorColumn.getSpecifiedName() != null && !discriminatorColumn.getSpecifiedName().equals(tableText)) {
-					discriminatorColumn.setSpecifiedName(tableText);
-				}
-			}
-		});
-		return combo;
-		
-	}
-	
-	private CComboViewer buildDiscriminatorTypeCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		CComboViewer discriminatorTypeViewer = new CComboViewer(combo);
-		discriminatorTypeViewer.setLabelProvider(buildDiscriminatorTypeLabelProvider());
-		discriminatorTypeViewer.add(DiscriminatorType.VALUES.toArray());
-		
-		discriminatorTypeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				InheritanceComposite.this.discriminatorTypeSelectionChanged(event.getSelection());
-			}
-		});
-		
-		return discriminatorTypeViewer;
-	}
-	
-	private IBaseLabelProvider buildDiscriminatorTypeLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == DiscriminatorType.DEFAULT) {
-					//TODO need to move this to the model, don't want hardcoded String
-					return NLS.bind(JptUiMappingsMessages.InheritanceComposite_defaultDiscriminatorType, "String");
-				}
-				return super.getText(element);
-			}
-		};
-	}
-	
-	void discriminatorTypeSelectionChanged(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			DiscriminatorType discriminatorType = (DiscriminatorType) ((IStructuredSelection) selection).getFirstElement();
-			if ( ! this.discriminatorColumn.getDiscriminatorType().equals(discriminatorType)) {
-				this.discriminatorColumn.setDiscriminatorType(discriminatorType);
-			}
-		}
-	}
-	
-	private CCombo buildDiscriminatorValueCombo(Composite parent) {
-		final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String discriminatorValue = entity.getSpecifiedDiscriminatorValue();
-				String value = ((CCombo) e.getSource()).getText();
-				if (value.equals("")) { //$NON-NLS-1$
-					value = null;
-					if (discriminatorValue == null || discriminatorValue.equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				
-				if (value != null && combo.getItemCount() > 0 && value.equals(combo.getItem(0))) {
-					value = null;
-				}
-
-				if (discriminatorValue == null || !discriminatorValue.equals(value)) {
-					entity.setSpecifiedDiscriminatorValue(value);
-				}
-			}
-		});
-		return combo;
-	}
-
-	public void doPopulate(EObject obj) {
-		this.entity = (IEntity) obj;
-		if (this.entity != null) {
-			this.discriminatorColumn = this.entity.getDiscriminatorColumn();
-			populateColumnCombo();
-			popuplateDiscriminatorTypeComboViewer();			
-			populateStrategyComboViewer();
-			populateDiscriminatorValueCombo();
-			this.pkJoinColumnsComposite.populate(this.entity);	
-		}
-		else {
-			this.discriminatorColumn = null;
-			this.connectionProfile = null;
-		}
-	}
-	
-	public void doPopulate() {
-		if (this.entity != null) {
-			populateColumnCombo();
-//			popuplateStrategyComboViewer();
-//			popuplateDiscriminatorValueCombo();
-		}
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().add(this.entityListener);
-			this.discriminatorColumn.eAdapters().add(this.discriminatorColumnListener);
-			this.addConnectionListener();
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().remove(this.entityListener);
-			this.removeConnectionListener();
-			this.discriminatorColumn.eAdapters().remove(this.discriminatorColumnListener);
-		}
-	}
-
-	private ConnectionProfile getConnectionProfile() {
-		if(this.connectionProfile == null) {
-			this.connectionProfile = this.entity.getJpaProject().connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-	
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-
-	private Table getDbTable() {
-		return this.entity.primaryDbTable();
-	}
-	
-	private void populateColumnCombo() {
-		//TODO don't do instanceof check here - check on Table, or isRoot check on Entity
-		//this.tableCombo.setEnabled(!(this.table instanceof SingleTableInheritanceChildTableImpl));
-		populateDefaultColumnName();
-
-		if (this.getConnectionProfile().isConnected()) {
-			this.columnCombo.remove(1, this.columnCombo.getItemCount()-1);
-			Table table = getDbTable();
-			if (table != null) {
-				for (Iterator i = CollectionTools.sort(CollectionTools.list(table.columnNames())).iterator(); i.hasNext();) {
-					this.columnCombo.add((String) i.next());
-				}
-			}
-		}
-		else {
-			this.columnCombo.remove(1, this.columnCombo.getItemCount()-1);
-		}
-		populateColumnName();
-	}
-	
-	protected void populateDefaultColumnName() {
-		String defaultTableName = discriminatorColumn.getDefaultName();
-		int selectionIndex = columnCombo.getSelectionIndex();
-		columnCombo.setItem(0, NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultTableName));
-		if (selectionIndex == 0) {
-			//combo text does not update when switching between 2 mappings of the same type
-			//that both have a default column name.  clear the selection and then set it again
-			columnCombo.clearSelection();
-			columnCombo.select(0);
-		}		
-	}
-	
-	protected void populateColumnName() {
-		String tableName = this.discriminatorColumn.getSpecifiedName();
-		String defaultName = this.discriminatorColumn.getDefaultName();
-		if (tableName != null) {
-			if (!this.columnCombo.getText().equals(tableName)) {
-				this.columnCombo.setText(tableName);
-			}
-		}
-		else {
-			if (!this.columnCombo.getText().equals(NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultName))) {
-				this.columnCombo.select(0);
-			}
-		}
-	}
-
-	private void popuplateDiscriminatorTypeComboViewer() {
-		if (this.discriminatorColumn.getDiscriminatorType() == DiscriminatorType.DEFAULT) {
-			if (((StructuredSelection) this.discriminatorTypeViewer.getSelection()).getFirstElement() != DiscriminatorType.DEFAULT) {
-				this.discriminatorTypeViewer.setSelection(new StructuredSelection(DiscriminatorType.DEFAULT));
-			}
-		}
-		else if (this.discriminatorColumn.getDiscriminatorType() == DiscriminatorType.CHAR) {
-			if (((StructuredSelection) this.discriminatorTypeViewer.getSelection()).getFirstElement() != DiscriminatorType.CHAR) {
-				this.discriminatorTypeViewer.setSelection(new StructuredSelection(DiscriminatorType.CHAR));
-			}
-		}
-		else if (this.discriminatorColumn.getDiscriminatorType() == DiscriminatorType.INTEGER) {
-			if (((StructuredSelection) this.discriminatorTypeViewer.getSelection()).getFirstElement() != DiscriminatorType.INTEGER) {
-				this.discriminatorTypeViewer.setSelection(new StructuredSelection(DiscriminatorType.INTEGER));
-			}
-		}
-		else {
-			if (((StructuredSelection) this.discriminatorTypeViewer.getSelection()).getFirstElement() != DiscriminatorType.STRING) {
-				this.discriminatorTypeViewer.setSelection(new StructuredSelection(DiscriminatorType.STRING));
-			}
-		}		
-	}
-	
-	private void populateStrategyComboViewer() {
-		if (this.entity.getInheritanceStrategy() == InheritanceType.DEFAULT) {
-			if (((StructuredSelection) this.strategyViewer.getSelection()).getFirstElement() != InheritanceType.DEFAULT) {
-				this.strategyViewer.setSelection(new StructuredSelection(InheritanceType.DEFAULT));
-			}
-		}
-		else if (this.entity.getInheritanceStrategy() == InheritanceType.JOINED) {
-			if (((StructuredSelection) this.strategyViewer.getSelection()).getFirstElement() != InheritanceType.JOINED) {
-				this.strategyViewer.setSelection(new StructuredSelection(InheritanceType.JOINED));
-			}
-		}
-		else if (this.entity.getInheritanceStrategy() == InheritanceType.SINGLE_TABLE) {
-			if (((StructuredSelection) this.strategyViewer.getSelection()).getFirstElement() != InheritanceType.SINGLE_TABLE) {
-				this.strategyViewer.setSelection(new StructuredSelection(InheritanceType.SINGLE_TABLE));
-			}
-		}
-		else {
-			if (((StructuredSelection) this.strategyViewer.getSelection()).getFirstElement() != InheritanceType.TABLE_PER_CLASS) {
-				this.strategyViewer.setSelection(new StructuredSelection(InheritanceType.TABLE_PER_CLASS));
-			}
-		}		
-	}
-
-	private void populateDiscriminatorValueCombo() {
-		String specifiedValue = this.entity.getSpecifiedDiscriminatorValue();
-		String defaultValue = this.entity.getDefaultDiscriminatorValue();
-
-		if (this.entity.discriminatorValueIsAllowed()) {
-			this.discriminatorValueCombo.setEnabled(true);
-			if (this.discriminatorValueCombo.getItemCount() == 0) {
-				this.discriminatorValueCombo.add(JptUiMappingsMessages.DiscriminatorColumnComposite_defaultEmpty);
-			}
-			if (defaultValue != null) {
-				this.discriminatorValueCombo.setItem(0, NLS.bind(JptUiMappingsMessages.ColumnComposite_defaultWithOneParam, defaultValue));
-			}
-			else {
-				this.discriminatorValueCombo.setItem(0, JptUiMappingsMessages.DiscriminatorColumnComposite_defaultEmpty);
-			}
-		}
-		else {
-			this.discriminatorValueCombo.setEnabled(false);
-			if (this.discriminatorValueCombo.getItemCount() == 1) {
-				this.discriminatorValueCombo.setText("");
-				this.discriminatorValueCombo.removeAll();
-			}
-		}
-			
-		if (specifiedValue != null) {
-			if (!this.discriminatorValueCombo.getText().equals(specifiedValue)) {
-				this.discriminatorValueCombo.setText(specifiedValue);
-			}
-		}
-		else {
-			//combo text does not update when switching between 2 entities that both have a default discriminator value.  
-			//clear the selection and then set it again
-			this.discriminatorValueCombo.clearSelection();
-			this.discriminatorValueCombo.select(0);
-		}
-	}
-	
-	private void entityChanged(Notification notification) {	
-		if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__INHERITANCE_STRATEGY) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					InheritanceType inheritanceType = entity.getInheritanceStrategy();
-					 if (((StructuredSelection) strategyViewer.getSelection()).getFirstElement() != inheritanceType) {
-						strategyViewer.setSelection(new StructuredSelection(inheritanceType));
-					}					
-				}
-			});
-		}
-		else if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__SPECIFIED_DISCRIMINATOR_VALUE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					String discriminatorValue = entity.getSpecifiedDiscriminatorValue();
-					if (discriminatorValueCombo.getText() == null || !discriminatorValueCombo.getText().equals(discriminatorValue)) {
-						if (discriminatorValue == null) {
-							discriminatorValueCombo.select(0);
-						}
-						else {
-							discriminatorValueCombo.setText(discriminatorValue);
-						}
-					}			
-				}
-			});
-		}
-		else if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__DEFAULT_DISCRIMINATOR_VALUE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateDiscriminatorValueCombo();
-				}
-			});
-		}
-	}
-
-	protected void discriminatorColumnChanged(Notification notification) {
-		if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateColumnName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateDefaultColumnName();
-				}
-			});
-		}
-
-		else if (notification.getFeatureID(IDiscriminatorColumn.class) == JpaCoreMappingsPackage.IDISCRIMINATOR_COLUMN__DISCRIMINATOR_TYPE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					DiscriminatorType discriminatorType = discriminatorColumn.getDiscriminatorType();
-					if (((StructuredSelection) discriminatorTypeViewer.getSelection()).getFirstElement() != discriminatorType) {
-						discriminatorTypeViewer.setSelection(new StructuredSelection(discriminatorType));
-					}					
-				}
-			});
-		}
-	}
-
-	public void dispose() {
-		this.pkJoinColumnsComposite.dispose();
-		super.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InverseJoinColumnDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InverseJoinColumnDialog.java
deleted file mode 100644
index 4d45d37..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InverseJoinColumnDialog.java
+++ /dev/null
@@ -1,81 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IJoinTable;
-import org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-
-public class InverseJoinColumnDialog extends JoinColumnInJoinTableDialog {
-
-	InverseJoinColumnDialog(Shell parent, IJoinTable joinTable) {
-		super(parent, joinTable);
-	}
-
-	InverseJoinColumnDialog(Shell parent, IJoinColumn joinColumn) {
-		super(parent, joinColumn);
-	}
-	
-	protected String getTitle() {
-		return JptUiMappingsMessages.InverseJoinColumnDialog_editInverseJoinColumn;
-	}
-	
-	protected void populateNameCombo() {
-		if (getJoinTable() == null) {
-			return;
-		}
-		if (getJoinColumn() != null) {
-			getNameCombo().add(NLS.bind(JptUiMappingsMessages.InverseJoinColumnDialog_defaultWithOneParam, getJoinColumn().getDefaultName()));
-		}
-		Table joinDBTable = getJoinTable().dbTable();
-		if (joinDBTable != null) {
-			for (Iterator i = joinDBTable.columnNames(); i.hasNext(); ) {
-				getNameCombo().add((String) i.next());
-			}
-		}
-		if (getJoinColumn() != null && getJoinColumn().getSpecifiedName() != null) {
-			getNameCombo().setText(getJoinColumn().getSpecifiedName());
-		}
-		else {
-			getNameCombo().select(0);
-		}
-	}
-
-	protected void populateReferencedNameCombo() {
-		if (getJoinTable() == null) {
-			return;
-		}
-		if (getJoinColumn() != null) {
-			getReferencedColumnNameCombo().add(NLS.bind(JptUiMappingsMessages.InverseJoinColumnDialog_defaultWithOneParam, getJoinColumn().getDefaultReferencedColumnName()));
-		}
-		IMultiRelationshipMapping multiRelationshipMapping = (IMultiRelationshipMapping) getJoinTable().eContainer();
-		IEntity targetEntity = multiRelationshipMapping.getResolvedTargetEntity();
-		if (targetEntity != null) {
-			Table referencedDbTable = targetEntity.primaryDbTable();
-			if (referencedDbTable != null) {
-				for (Iterator i = referencedDbTable.columnNames(); i.hasNext(); ) {
-					getReferencedColumnNameCombo().add((String) i.next());
-				}
-			}
-		}
-		if (getJoinColumn() != null && getJoinColumn().getSpecifiedReferencedColumnName() != null) {
-			getReferencedColumnNameCombo().setText(getJoinColumn().getSpecifiedReferencedColumnName());
-		}
-		else {
-			getReferencedColumnNameCombo().select(0);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnComposite.java
deleted file mode 100644
index 98b52e4..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnComposite.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.IAbstractColumn;
-import org.eclipse.jpt.core.internal.mappings.IAbstractJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.ISingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JoinColumnComposite
-	extends BaseJpaComposite
-{
-	private ISingleRelationshipMapping singleRelationshipMapping;
-	private final Adapter singleRelationshipMappingListener;
-	private final Adapter joinColumnListener;
-
-
-	private Group joinColumnsGroup;
-	Button overrideDefaultJoinColumnsCheckBox;
-	ListViewer joinColumnsListViewer;
-	private Button joinColumnsRemoveButton;
-	private Button joinColumnsEditButton;
-	
-
-	
-	public JoinColumnComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.singleRelationshipMappingListener = buildSingleRelationshipMappingListener();
-		this.joinColumnListener = buildJoinColumnListener();
-	}
-
-	
-	private Adapter buildSingleRelationshipMappingListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				singleRelationshipMappingChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildJoinColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				joinColumnChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		this.overrideDefaultJoinColumnsCheckBox = 
-			getWidgetFactory().createButton(
-				composite, 
-				JptUiMappingsMessages.JoinColumnComposite_overrideDefaultJoinColumns, 
-				SWT.CHECK);
-		this.overrideDefaultJoinColumnsCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				if (JoinColumnComposite.this.overrideDefaultJoinColumnsCheckBox.getSelection()) {
-					IJoinColumn defaultJoinColumn = JoinColumnComposite.this.singleRelationshipMapping.getDefaultJoinColumns().get(0);
-					String columnName = defaultJoinColumn.getDefaultName();
-					String referencedColumnName = defaultJoinColumn.getDefaultReferencedColumnName();
-					
-					IJoinColumn joinColumn = JoinColumnComposite.this.singleRelationshipMapping.createJoinColumn(0);
-					JoinColumnComposite.this.singleRelationshipMapping.getSpecifiedJoinColumns().add(joinColumn);
-					joinColumn.setSpecifiedName(columnName);
-					joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-				} else {
-					JoinColumnComposite.this.singleRelationshipMapping.getSpecifiedJoinColumns().clear();
-				}
-			}
-		});
-
-		this.joinColumnsGroup = 
-			getWidgetFactory().createGroup(
-				composite, 
-				JptUiMappingsMessages.JoinColumnComposite_joinColumn);
-		this.joinColumnsGroup.setLayout(new GridLayout(2, false));
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.joinColumnsGroup.setLayoutData(gridData);
-			
-		this.joinColumnsListViewer = new ListViewer(this.joinColumnsGroup, SWT.BORDER | SWT.MULTI);
-		this.joinColumnsListViewer.setContentProvider(buildJoinColumnsListContentProvider());
-		this.joinColumnsListViewer.setLabelProvider(buildJoinColumnsListLabelProvider());
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.verticalSpan = 3;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.joinColumnsListViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.joinColumnsListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-		
-		Button addJoinColumnButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinColumnComposite_add, SWT.NONE);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		addJoinColumnButton.setLayoutData(gridData);
-		addJoinColumnButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				addJoinColumn();
-			}
-		});
-		
-		this.joinColumnsEditButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinColumnComposite_edit, SWT.NONE);
-		this.joinColumnsEditButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				editJoinColumn();
-			}
-		});
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.joinColumnsEditButton.setLayoutData(gridData);
-
-		this.joinColumnsRemoveButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinColumnComposite_remove, SWT.NONE);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		this.joinColumnsRemoveButton.setLayoutData(gridData);
-		this.joinColumnsRemoveButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				removeJoinColumn();
-			}
-		});
-		
-		this.joinColumnsListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateEnablement();
-			}
-		});
-
-	}
-	private IContentProvider buildJoinColumnsListContentProvider() {
-		return new IStructuredContentProvider(){
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-			public void dispose() {
-				// do nothing
-			}
-			public Object[] getElements(Object inputElement) {
-				return ((ISingleRelationshipMapping) inputElement).getJoinColumns().toArray();
-			}
-		};
-	}
-	
-	private ILabelProvider buildJoinColumnsListLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				IJoinColumn joinColumn = (IJoinColumn) element;
-				return (JoinColumnComposite.this.singleRelationshipMapping.getSpecifiedJoinColumns().size() == 0) ?
-					buildDefaultJoinColumnLabel(joinColumn)
-				:
-					buildJoinColumnLabel(joinColumn);
-			}
-		};
-	}
-	
-	String buildDefaultJoinColumnLabel(IJoinColumn joinColumn) {
-		return NLS.bind(JptUiMappingsMessages.JoinColumnComposite_mappingBetweenTwoParamsDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-	}
-	
-	String buildJoinColumnLabel(IJoinColumn joinColumn) {
-		if (joinColumn.getSpecifiedName() == null) {
-			if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-				return NLS.bind(JptUiMappingsMessages.JoinColumnComposite_mappingBetweenTwoParamsBothDefault, joinColumn.getName(),joinColumn.getReferencedColumnName());				
-			}
-			return NLS.bind(JptUiMappingsMessages.JoinColumnComposite_mappingBetweenTwoParamsFirstDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-			return NLS.bind(JptUiMappingsMessages.JoinColumnComposite_mappingBetweenTwoParamsSecDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-		}
-		else {
-			return NLS.bind(JptUiMappingsMessages.JoinColumnComposite_mappingBetweenTwoParams, joinColumn.getName(), joinColumn.getReferencedColumnName());					
-		}
-	}
-	
-	protected void joinColumnChanged(Notification notification) {
-		if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME
-			|| notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME
-			|| notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__SPECIFIED_TABLE
-			|| notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__DEFAULT_TABLE
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__SPECIFIED_REFERENCED_COLUMN_NAME
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__DEFAULT_REFERENCED_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					joinColumnsListViewer.refresh();
-				}
-			});
-		}
-	}
-
-	void addJoinColumn() {
-		JoinColumnDialog dialog = new JoinColumnInRelationshipMappingDialog(this.getControl().getShell(), this.singleRelationshipMapping);
-		this.addJoinColumnFromDialog(dialog);
-	}
-	
-	private void addJoinColumnFromDialog(JoinColumnDialog dialog) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-		int index = this.singleRelationshipMapping.getJoinColumns().size();
-		IJoinColumn joinColumn = this.singleRelationshipMapping.createJoinColumn(index);
-		this.singleRelationshipMapping.getSpecifiedJoinColumns().add(joinColumn);
-		joinColumn.setSpecifiedName(dialog.getSelectedName());
-		joinColumn.setSpecifiedReferencedColumnName(dialog.getReferencedColumnName());
-		if (!dialog.isDefaultTableSelected()) {
-			//not checking this for name and referenced column name because there is no
-			//default option when you are adding a second join column.  There is always
-			//at least 1 join column (the default)
-			joinColumn.setSpecifiedTable(dialog.getSelectedTable());
-		}
-	}
-	
-	void editJoinColumn() {
-		IJoinColumn joinColumn = getSelectedJoinColumn();
-		JoinColumnDialog dialog = new JoinColumnInRelationshipMappingDialog(this.getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	private IJoinColumn getSelectedJoinColumn() {
-		return (IJoinColumn) ((StructuredSelection) this.joinColumnsListViewer.getSelection()).getFirstElement();
-	}
-
-	private void editJoinColumnFromDialog(JoinColumnDialog dialog, IJoinColumn joinColumn) {
-		if (dialog.open() == Window.OK) {
-			editJoinColumnDialogOkd(dialog, joinColumn);
-		}
-	}
-	
-	private void editJoinColumnDialogOkd(JoinColumnDialog dialog, IJoinColumn joinColumn) {
-		String name = dialog.getSelectedName();
-		String referencedColumnName = dialog.getReferencedColumnName();
-		String table = dialog.getSelectedTable();
-
-		if (dialog.isDefaultNameSelected()) {
-			if (joinColumn.getSpecifiedName() != null) {
-				joinColumn.setSpecifiedName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedName() == null || !joinColumn.getSpecifiedName().equals(name)){
-			joinColumn.setSpecifiedName(name);
-		}
-		if (dialog.isDefaultReferencedColumnNameSelected()) {
-			if (joinColumn.getSpecifiedReferencedColumnName() != null) {
-				joinColumn.setSpecifiedReferencedColumnName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null || !joinColumn.getSpecifiedReferencedColumnName().equals(referencedColumnName)){
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-		
-		if (dialog.isDefaultTableSelected()) {
-			if (joinColumn.getSpecifiedTable() != null) {
-				joinColumn.setSpecifiedTable(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedTable() == null || !joinColumn.getSpecifiedTable().equals(table)){
-			joinColumn.setSpecifiedTable(table);
-		}
-
-		DefaultTrueBoolean insertable = dialog.getInsertable();
-		if (joinColumn.getInsertable() != insertable) {
-			joinColumn.setInsertable(insertable);
-		}
-
-		DefaultTrueBoolean updatable = dialog.getUpdatable();
-		if (joinColumn.getUpdatable() != updatable) {
-			joinColumn.setUpdatable(updatable);
-		}
-	}
-	
-	void removeJoinColumn() {
-		ISelection selection = this.joinColumnsListViewer.getSelection();
-		if (selection instanceof StructuredSelection) {
-			for (Iterator stream = ((StructuredSelection) selection).iterator(); stream.hasNext(); ) {
-				this.singleRelationshipMapping.getJoinColumns().remove(stream.next());
-			}
-		}
-	}
-	
-	protected void singleRelationshipMappingChanged(Notification notification) {
-		if (notification.getFeatureID(ISingleRelationshipMapping.class) == JpaCoreMappingsPackage.ISINGLE_RELATIONSHIP_MAPPING__SPECIFIED_JOIN_COLUMNS) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					JoinColumnComposite.this.joinColumnsListViewer.refresh();
-					JoinColumnComposite.this.overrideDefaultJoinColumnsCheckBox.setSelection(singleRelationshipMapping.containsSpecifiedJoinColumns());
-					JoinColumnComposite.this.updateEnablement();
-				}
-			});
-			if (notification.getEventType() == Notification.ADD) {
-				((IJoinColumn) notification.getNewValue()).eAdapters().add(this.joinColumnListener);
-			}
-			else if (notification.getEventType() == Notification.REMOVE) {
-				((IJoinColumn) notification.getOldValue()).eAdapters().remove(this.joinColumnListener);				
-			}
-		}
-	}
-	
-	private void enableGroup(Group group, boolean enabled) {
-		group.setEnabled(enabled);
-		for (int i = 0; i < group.getChildren().length; i++) {
-			group.getChildren()[i].setEnabled(enabled);
-		}	
-	}
-
-	
-	
-	protected void engageListeners() {
-		if (this.singleRelationshipMapping != null) {
-			this.singleRelationshipMapping.eAdapters().add(this.singleRelationshipMappingListener);
-			for (Iterator i = this.singleRelationshipMapping.getJoinColumns().iterator(); i.hasNext(); ) {
-				((IJoinColumn) i.next()).eAdapters().add(this.joinColumnListener);
-			}
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.singleRelationshipMapping != null) {
-			for (Iterator i = this.singleRelationshipMapping.getJoinColumns().iterator(); i.hasNext(); ) {
-				((IJoinColumn) i.next()).eAdapters().remove(this.joinColumnListener);
-			}
-			this.singleRelationshipMapping.eAdapters().remove(this.singleRelationshipMappingListener);
-		}
-	}
-		
-	public void doPopulate(EObject obj) {
-		this.singleRelationshipMapping = (ISingleRelationshipMapping) obj;
-		if (this.singleRelationshipMapping == null) {
-			this.joinColumnsListViewer.setInput(null);
-			return;
-		}
-		
-		this.joinColumnsListViewer.setInput(this.singleRelationshipMapping);
-		
-
-		updateEnablement();
-		this.overrideDefaultJoinColumnsCheckBox.setSelection(this.singleRelationshipMapping.containsSpecifiedJoinColumns());
-	}
-	
-	@Override
-	protected void doPopulate() {
-		this.joinColumnsListViewer.setInput(this.singleRelationshipMapping);		
-	}
-	
-	void updateEnablement() {
-		boolean groupEnabledState = this.singleRelationshipMapping.containsSpecifiedJoinColumns();
-		enableGroup(this.joinColumnsGroup, groupEnabledState);
-
-		this.joinColumnsRemoveButton.setEnabled(groupEnabledState && !((StructuredSelection) this.joinColumnsListViewer.getSelection()).isEmpty());
-		this.joinColumnsEditButton.setEnabled(groupEnabledState && ((StructuredSelection) this.joinColumnsListViewer.getSelection()).size() == 1);
-	}
-	
-	public void dispose() {
-		disengageListeners();
-		super.dispose();
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java
deleted file mode 100644
index e36b19e..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java
+++ /dev/null
@@ -1,209 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-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.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-
-public abstract class JoinColumnDialog extends AbstractJoinColumnDialog<IJoinColumn> {
-	
-	private Combo tableCombo;
-	private ComboViewer insertableComboViewer;
-	private ComboViewer updatableComboViewer;
-
-	private boolean defaultTableSelected;
-	private String selectedTable;
-	private DefaultTrueBoolean insertable;
-	private DefaultTrueBoolean updatable;
-	
-	JoinColumnDialog(Shell parent) {
-		super(parent);
-	}
-
-	JoinColumnDialog(Shell parent, IJoinColumn joinColumn) {
-		super(parent, joinColumn);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		Composite composite = (Composite) super.createDialogArea(parent);
-	
-		Label tableLabel = new Label(composite, SWT.LEFT);
-		tableLabel.setText(JptUiMappingsMessages.JoinColumnDialog_table);
-		GridData gridData = new GridData();
-		tableLabel.setLayoutData(gridData);
-
-		this.tableCombo = new Combo(composite, SWT.LEFT);
-		this.tableCombo.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				populateNameCombo();
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				populateNameCombo();
-			}
-		});
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.tableCombo.setLayoutData(gridData);
-		//PlatformUI.getWorkbench().getHelpSystem().setHelp(this.tableCombo, IJpaHelpContextIds.MAPPING_JOIN_REFERENCED_COLUMN);
-		populateTableCombo();
-
-		Label insertableLabel = new Label(composite, SWT.LEFT);
-		insertableLabel.setText(JptUiMappingsMessages.JoinColumnDialog_insertable);
-		insertableLabel.setLayoutData(new GridData());
-		
-		this.insertableComboViewer = this.buildInsertableComboViewer(composite);
-		this.insertableComboViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		helpSystem.setHelp(this.insertableComboViewer.getCombo(), IJpaHelpContextIds.MAPPING_COLUMN_INSERTABLE);
-	
-		Label updatableLabel = new Label(composite, SWT.LEFT);
-		updatableLabel.setText(JptUiMappingsMessages.JoinColumnDialog_updatable);
-		updatableLabel.setLayoutData(new GridData());
-		
-		this.updatableComboViewer = this.buildUpdatableComboViewer(composite);
-		this.updatableComboViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		helpSystem.setHelp(this.updatableComboViewer.getCombo(), IJpaHelpContextIds.MAPPING_COLUMN_UPDATABLE);
-	
-		return composite;
-	}
-
-	private ComboViewer buildInsertableComboViewer(Composite parent) {
-		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
-		viewer.setLabelProvider(buildDefaultTrueLabelProvider());
-		viewer.add(DefaultTrueBoolean.VALUES.toArray());
-		
-		DefaultTrueBoolean sel = (this.joinColumn() == null) ? DefaultTrueBoolean.DEFAULT : this.joinColumn().getInsertable();
-		viewer.setSelection(new StructuredSelection(sel));
-		return viewer;
-	}
-	
-	private IBaseLabelProvider buildDefaultTrueLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == DefaultTrueBoolean.DEFAULT) {
-					//TODO need to move this to the model, don't want hardcoded String
-					return NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultTrue, "True");
-				}
-				return super.getText(element);
-			}
-		};
-	}
-
-	private ComboViewer buildUpdatableComboViewer(Composite parent) {
-		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
-		viewer.setLabelProvider(buildDefaultTrueLabelProvider());
-		viewer.add(DefaultTrueBoolean.VALUES.toArray());
-		DefaultTrueBoolean sel = (this.joinColumn() == null) ? DefaultTrueBoolean.DEFAULT : this.joinColumn().getUpdatable();
-		viewer.setSelection(new StructuredSelection(sel));
-		return viewer;
-	}
-	
-	protected void populateTableCombo() {
-		this.tableCombo.add(NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultWithOneParam, defaultTableName()));
-		Schema schema = this.getSchema();
-		if (schema != null) {
-			Iterator<String> tables = schema.tableNames();
-			for (Iterator<String> stream = CollectionTools.sort( tables); stream.hasNext(); ) {
-				this.tableCombo.add(stream.next());
-			}
-		}
-		if (specifiedTableName() != null) {
-			this.tableCombo.setText(specifiedTableName());
-		}
-		else {
-			this.tableCombo.select(0);
-		}
-	}
-	
-	protected abstract String defaultTableName();
-	
-	protected String specifiedTableName() {
-		if (getJoinColumn() != null) {
-			return getJoinColumn().getSpecifiedTable();
-		}
-		return null;
-	}
-	
-	protected String tableName() {
-		if (this.tableCombo != null) {
-			if (this.tableCombo.getSelectionIndex() == 0) {
-				return defaultTableName();
-			}
-			return this.tableCombo.getText();
-		}
-		return (this.specifiedTableName() == null) ? defaultTableName() : this.specifiedTableName();
-	}
-	
-	protected abstract Schema getSchema();
-	
-	private IJoinColumn joinColumn() {
-		return this.getJoinColumn();
-	}
-
-	protected boolean isDefaultTableSelected() {
-		return this.defaultTableSelected;
-	}
-
-	public String getSelectedTable() {
-		return this.selectedTable;
-	}
-
-	public DefaultTrueBoolean getInsertable() {
-		return this.insertable;
-	}
-
-	public DefaultTrueBoolean getUpdatable() {
-		return this.updatable;
-	}
-
-	public boolean close() {
-		this.defaultTableSelected = this.tableCombo.getSelectionIndex() == 0;
-		this.selectedTable = this.tableCombo.getText();
-
-		ISelection selection = this.insertableComboViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			this.insertable = (DefaultTrueBoolean) ((IStructuredSelection) selection).getFirstElement();
-		}
-
-		selection = this.updatableComboViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			this.updatable = (DefaultTrueBoolean) ((IStructuredSelection) selection).getFirstElement();
-		}
-
-		return super.close();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInAssociationOverrideDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInAssociationOverrideDialog.java
deleted file mode 100644
index c324a95..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInAssociationOverrideDialog.java
+++ /dev/null
@@ -1,62 +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.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.internal.IAttributeMapping;
-import org.eclipse.jpt.core.internal.mappings.IAssociationOverride;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.swt.widgets.Shell;
-
-public class JoinColumnInAssociationOverrideDialog extends JoinColumnDialog {
-
-	private IAssociationOverride associationOverride;
-	
-	JoinColumnInAssociationOverrideDialog(Shell parent, IAssociationOverride associationOverride) {
-		super(parent);
-		this.associationOverride = associationOverride;
-	}
-
-	JoinColumnInAssociationOverrideDialog(Shell parent, IJoinColumn joinColumn) {
-		super(parent, joinColumn);
-		this.associationOverride = (IAssociationOverride) joinColumn.eContainer();
-	}
-	
-	protected Schema getSchema() {
-		return this.associationOverride.typeMapping().dbSchema();
-	}
-	
-	protected String defaultTableName() {
-		if (getJoinColumn() != null) {
-			return getJoinColumn().getDefaultTable();
-		}
-		return this.associationOverride.typeMapping().getTableName();
-	}
-
-	protected Table getNameTable() {
-		return this.associationOverride.typeMapping().primaryDbTable();
-	}
-	
-	protected Table getReferencedNameTable() {
-		IAttributeMapping attributeMapping = this.associationOverride.getOwner().attributeMapping(this.associationOverride.getName());
-		if (attributeMapping == null || !(attributeMapping instanceof IRelationshipMapping)) {
-			return null;
-		}
-		IEntity targetEntity = ((IRelationshipMapping) attributeMapping).getResolvedTargetEntity();
-		if (targetEntity != null) {
-			return targetEntity.primaryDbTable();
-		}
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInJoinTableDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInJoinTableDialog.java
deleted file mode 100644
index 5a8a747..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInJoinTableDialog.java
+++ /dev/null
@@ -1,45 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IJoinTable;
-import org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.swt.widgets.Shell;
-
-//if there is only 1 joinColumn and the user is editing it, they should be
-//able to define defaults.  otherwise, we probably shouldn't allow it.
-public class JoinColumnInJoinTableDialog extends AbstractJoinColumnDialog<IJoinColumn> {
-
-	private IJoinTable joinTable;
-	
-	JoinColumnInJoinTableDialog(Shell parent, IJoinTable joinTable) {
-		super(parent);
-		this.joinTable = joinTable;
-	}
-
-	JoinColumnInJoinTableDialog(Shell parent, IJoinColumn joinColumn) {
-		super(parent, joinColumn);
-		this.joinTable = (IJoinTable) joinColumn.eContainer();
-	}
-	protected IJoinTable getJoinTable() {
-		return this.joinTable;
-	}
-	
-	protected Table getNameTable() {
-		return getJoinTable().dbTable();
-	}
-	
-	protected Table getReferencedNameTable() {
-		IMultiRelationshipMapping multiRelationshipMapping = (IMultiRelationshipMapping) getJoinTable().eContainer();
-		return multiRelationshipMapping.typeMapping().primaryDbTable();
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInRelationshipMappingDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInRelationshipMappingDialog.java
deleted file mode 100644
index e60a047..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnInRelationshipMappingDialog.java
+++ /dev/null
@@ -1,56 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.ISingleRelationshipMapping;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.swt.widgets.Shell;
-
-public class JoinColumnInRelationshipMappingDialog extends JoinColumnDialog {
-
-	private ISingleRelationshipMapping singleRelationshipMapping;
-	
-	JoinColumnInRelationshipMappingDialog(Shell parent, ISingleRelationshipMapping singleRelationshipMapping) {
-		super(parent);
-		this.singleRelationshipMapping = singleRelationshipMapping;
-	}
-
-	JoinColumnInRelationshipMappingDialog(Shell parent, IJoinColumn joinColumn) {
-		super(parent, joinColumn);
-		this.singleRelationshipMapping = (ISingleRelationshipMapping) joinColumn.eContainer();
-	}
-	
-	protected String defaultTableName() {
-		if (getJoinColumn() != null) {
-			return getJoinColumn().getDefaultTable();
-		}
-		return this.singleRelationshipMapping.typeMapping().getTableName();
-	}
-	
-	protected Schema getSchema() {
-		return this.singleRelationshipMapping.typeMapping().dbSchema();
-	}
-	
-	protected Table getNameTable() {
-		Schema schema = this.getSchema();
-		return (schema == null) ? null : schema.tableNamed(tableName());
-	}
-	
-	protected Table getReferencedNameTable() {
-		IEntity targetEntity = this.singleRelationshipMapping.getResolvedTargetEntity();
-		if (targetEntity != null) {
-			return targetEntity.primaryDbTable();
-		}
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnsComposite.java
deleted file mode 100644
index 886e200..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnsComposite.java
+++ /dev/null
@@ -1,348 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.mappings.IAbstractColumn;
-import org.eclipse.jpt.core.internal.mappings.IAbstractJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JoinColumnsComposite extends BaseJpaComposite
-{
-	
-	private Owner owner;
-	private final Adapter joinColumnsOwnerListener;
-
-	private ListViewer joinColumnsListViewer;
-		
-	private final Adapter joinColumnListener;
-	
-	private Group joinColumnsGroup;
-	private Button joinColumnsAddButton;
-	private Button joinColumnsRemoveButton;
-	private Button joinColumnsEditButton;
-	
-
-	public JoinColumnsComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory, String groupTitle) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.joinColumnsOwnerListener = buildJoinColumnsOwnerListener();
-		this.joinColumnListener = buildJoinColumnListener();
-		this.joinColumnsGroup.setText(groupTitle);
-	}
-	
-	private Adapter buildJoinColumnsOwnerListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				joinColumnsOwnerChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildJoinColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				joinColumnChanged(notification, joinColumnsListViewer);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-
-		this.joinColumnsGroup = 
-			getWidgetFactory().createGroup(
-				composite, 
-				"");
-		this.joinColumnsGroup.setLayout(new GridLayout(2, false));
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.joinColumnsGroup.setLayoutData(gridData);
-			
-		this.joinColumnsListViewer = new ListViewer(this.joinColumnsGroup, SWT.BORDER | SWT.MULTI);
-		this.joinColumnsListViewer.setContentProvider(buildJoinColumnsListContentProvider());
-		this.joinColumnsListViewer.setLabelProvider(buildJoinColumnsListLabelProvider());
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.verticalSpan = 3;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.joinColumnsListViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.joinColumnsListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-		
-		this.joinColumnsAddButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinTableComposite_add, SWT.NONE);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.joinColumnsAddButton.setLayoutData(gridData);
-		this.joinColumnsAddButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				owner.addJoinColumn();
-			}
-		});
-		
-		this.joinColumnsEditButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinTableComposite_edit, SWT.NONE);
-		this.joinColumnsEditButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				editJoinColumn();
-			}
-		});
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.joinColumnsEditButton.setLayoutData(gridData);
-
-		this.joinColumnsRemoveButton = getWidgetFactory().createButton(this.joinColumnsGroup, JptUiMappingsMessages.JoinTableComposite_remove, SWT.NONE);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		this.joinColumnsRemoveButton.setLayoutData(gridData);
-		this.joinColumnsRemoveButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				removeJoinColumn();
-			}
-		});
-		
-		this.joinColumnsListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateJoinColumnsEnablement();
-			}
-		});
-	}
-
-	private IContentProvider buildJoinColumnsListContentProvider() {
-		return new IStructuredContentProvider(){
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		
-			public void dispose() {
-				
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return ((Owner) inputElement).getJoinColumns().toArray();
-			}
-		};
-	}
-	
-	private ILabelProvider buildJoinColumnsListLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				IJoinColumn joinColumn = (IJoinColumn) element;
-				return (JoinColumnsComposite.this.owner.containsSpecifiedJoinColumns()) ?
-					buildJoinColumnLabel(joinColumn)
-				:
-					buildDefaultJoinColumnLabel(joinColumn);
-			}
-		};
-	}
-	
-	private String buildDefaultJoinColumnLabel(IJoinColumn joinColumn) {
-		return NLS.bind(JptUiMappingsMessages.JoinTableComposite_mappingBetweenTwoParamsDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-	}
-	
-	private String buildJoinColumnLabel(IJoinColumn joinColumn) {
-		if (joinColumn.getSpecifiedName() == null) {
-			if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-				return NLS.bind(JptUiMappingsMessages.JoinTableComposite_mappingBetweenTwoParamsBothDefault, joinColumn.getName(),joinColumn.getReferencedColumnName());				
-			}
-			return NLS.bind(JptUiMappingsMessages.JoinTableComposite_mappingBetweenTwoParamsFirstDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-			return NLS.bind(JptUiMappingsMessages.JoinTableComposite_mappingBetweenTwoParamsSecDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-		}
-		else {
-			return NLS.bind(JptUiMappingsMessages.JoinTableComposite_mappingBetweenTwoParams, joinColumn.getName(), joinColumn.getReferencedColumnName());					
-		}
-	}
-
-	void editJoinColumn() {
-		this.owner.editJoinColumn(getSelectedJoinColumn());
-	}
-		
-	void removeJoinColumn() {
-		ISelection selection = this.joinColumnsListViewer.getSelection();
-		if (selection instanceof StructuredSelection) {
-			for (Iterator stream = ((StructuredSelection) selection).iterator(); stream.hasNext(); ) {
-				this.owner.getJoinColumns().remove(stream.next());
-			}
-		}
-	}
-	
-	private IJoinColumn getSelectedJoinColumn() {
-		return (IJoinColumn) ((StructuredSelection) this.joinColumnsListViewer.getSelection()).getFirstElement();
-	}
-		
-	protected void joinColumnsOwnerChanged(Notification notification) {
-		if (notification.getFeatureID(owner.owningFeatureClass()) == owner.specifiedJoinColumnsFeatureId()) {
-			if (notification.getEventType() == Notification.ADD) {
-				((IJoinColumn) notification.getNewValue()).eAdapters().add(this.joinColumnListener);
-			}
-			else if (notification.getEventType() == Notification.REMOVE) {
-				((IJoinColumn) notification.getOldValue()).eAdapters().remove(this.joinColumnListener);				
-			}
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					joinColumnsListViewer.refresh();
-					updateJoinColumnsEnablement();
-				}
-			});
-		}
-	}
-	
-	private void enableGroup(Group group, boolean enabled) {
-		group.setEnabled(enabled);
-		for (int i = 0; i < group.getChildren().length; i++) {
-			group.getChildren()[i].setEnabled(enabled);
-		}	
-	}
-		protected void joinColumnChanged(Notification notification, final ListViewer listViewer) {
-			if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME
-				|| notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME
-				|| notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__SPECIFIED_TABLE
-				|| notification.getFeatureID(IAbstractColumn.class) == JpaCoreMappingsPackage.IABSTRACT_COLUMN__DEFAULT_TABLE
-				|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__SPECIFIED_REFERENCED_COLUMN_NAME
-				|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__DEFAULT_REFERENCED_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					listViewer.refresh();
-				}
-			});
-		}
-	}
-		
-	protected void engageListeners() {
-		if (this.owner != null) {
-			this.owner.getEObject().eAdapters().add(this.joinColumnsOwnerListener);
-			for (IJoinColumn joinColumn : this.owner.getJoinColumns()) {
-				joinColumn.eAdapters().add(this.joinColumnListener);
-			}
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.owner != null) {
-			for (IJoinColumn joinColumn : this.owner.getJoinColumns()) {
-				joinColumn.eAdapters().remove(this.joinColumnListener);
-			}
-			this.owner.getEObject().eAdapters().remove(this.joinColumnsOwnerListener);
-		}
-	}
-		
-	public void doPopulate(EObject obj) {
-		this.owner = (Owner) obj;
-		if (this.owner == null) {
-			this.joinColumnsListViewer.setInput(null);
-			return;
-		}
-		
-		this.joinColumnsListViewer.setInput(this.owner);
-		
-		updateEnablement();
-	}
-
-	@Override
-	protected void doPopulate() {
-	}
-
-	private void updateEnablement() {
-		updateJoinColumnsEnablement();
-	}
-	
-	void updateJoinColumnsEnablement() {
-		boolean groupEnabledState = this.owner.containsSpecifiedJoinColumns();
-		enableGroup(this.joinColumnsGroup, groupEnabledState);
-
-		this.joinColumnsRemoveButton.setEnabled(groupEnabledState && !((StructuredSelection) this.joinColumnsListViewer.getSelection()).isEmpty());
-		this.joinColumnsEditButton.setEnabled(groupEnabledState && ((StructuredSelection) this.joinColumnsListViewer.getSelection()).size() == 1);
-	}
-		
-	protected void enableWidgets(boolean enabled) {
-		enableGroup(this.joinColumnsGroup, enabled);
-		this.joinColumnsAddButton.setEnabled(enabled);
-		this.joinColumnsEditButton.setEnabled(enabled);
-		this.joinColumnsRemoveButton.setEnabled(enabled);
-		this.joinColumnsListViewer.getList().setEnabled(enabled);
-	}
-
-	public interface Owner {
-		int specifiedJoinColumnsFeatureId();
-		
-		Class owningFeatureClass();
-
-		EObject getEObject();
-		
-		boolean containsSpecifiedJoinColumns();
-		
-		List<IJoinColumn> getJoinColumns();
-		
-		List<IJoinColumn> getSpecifiedJoinColumns();
-		
-		IJoinColumn createJoinColumn(int index);
-		
-		void addJoinColumn();
-		
-		void editJoinColumn(IJoinColumn joinColumn);
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinTableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinTableComposite.java
deleted file mode 100644
index f5fd60c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinTableComposite.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.mappings.details;
-
-import java.util.List;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.JpaEObject;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IJoinTable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.JoinColumnsComposite.Owner;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class JoinTableComposite extends BaseJpaComposite
-{
-	
-	private IJoinTable joinTable;
-	private final Adapter joinTableListener;
-
-	protected TableCombo tableCombo;
-
-	private ConnectionProfile connectionProfile;
-	private ConnectionListener connectionListener;
-	
-	private Button overrideDefaultJoinColumnsCheckBox;
-	private JoinColumnsComposite joinColumnsComposite;
-	
-	private Button overrideDefaultInverseJoinColumnsCheckBox;
-	private JoinColumnsComposite inverseJoinColumnsComposite;
-
-	public JoinTableComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.joinTableListener = buildJoinTableListener();
-		this.connectionListener = buildConnectionListener();
-	}
-	
-	private Adapter buildJoinTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				joinTableChanged(notification);
-			}
-		};
-	}
-	
-	private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-
-			public void aboutToClose(Connection connection) {
-				// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						JoinTableComposite.this.tableCombo.populate();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						JoinTableComposite.this.tableCombo.populate();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						JoinTableComposite.this.tableCombo.populate();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if(database == JoinTableComposite.this.tableCombo.getDatabase()) {
-							if (!getControl().isDisposed()) {
-								JoinTableComposite.this.tableCombo.populate();
-							}
-						}
-					}
-				});
-			}
-			
-			public void schemaChanged(Connection connection, final Schema schema) {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if(schema == JoinTableComposite.this.tableCombo.getTableSchema()) {
-							if (!getControl().isDisposed()) {
-								JoinTableComposite.this.tableCombo.populate();
-							}
-						}
-					}
-				});
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-				// not interested to this event.
-			}
-		};
-    }
-
-	private ConnectionProfile getConnectionProfile() {
-		if(this.connectionProfile == null) {
-			IJpaProject jpaProject = this.joinTable.getJpaProject();
-			this.connectionProfile = jpaProject.connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-	
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-	
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.JoinTableComposite_name);
-		
-		this.tableCombo = new TableCombo(composite, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.tableCombo.getCombo().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.tableCombo.getCombo(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_NAME);
-		
-		this.overrideDefaultJoinColumnsCheckBox = 
-			getWidgetFactory().createButton(
-				composite, 
-				JptUiMappingsMessages.JoinTableComposite_overrideDefaultJoinColumns, 
-				SWT.CHECK);
-		this.overrideDefaultJoinColumnsCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				if (JoinTableComposite.this.overrideDefaultJoinColumnsCheckBox.getSelection()) {
-					IJoinColumn defaultJoinColumn = JoinTableComposite.this.joinTable.getDefaultJoinColumns().get(0);
-					String columnName = defaultJoinColumn.getDefaultName();
-					String referencedColumnName = defaultJoinColumn.getDefaultReferencedColumnName();
-					IJoinColumn joinColumn = JoinTableComposite.this.joinTable.createJoinColumn(0);
-					JoinTableComposite.this.joinTable.getSpecifiedJoinColumns().add(joinColumn);
-					joinColumn.setSpecifiedName(columnName);
-					joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-				} else {
-					JoinTableComposite.this.joinTable.getSpecifiedJoinColumns().clear();
-				}
-			}
-		});
-
-		this.joinColumnsComposite = new JoinColumnsComposite(composite, this.commandStack, getWidgetFactory(), JptUiMappingsMessages.JoinTableComposite_joinColumn);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.joinColumnsComposite.getControl().setLayoutData(gridData);
-		
-		this.overrideDefaultInverseJoinColumnsCheckBox = getWidgetFactory().createButton(composite, JptUiMappingsMessages.JoinTableComposite_overrideDefaultInverseJoinColumns, SWT.CHECK);
-		this.overrideDefaultInverseJoinColumnsCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				if (JoinTableComposite.this.overrideDefaultInverseJoinColumnsCheckBox.getSelection()) {
-					IJoinColumn defaultJoinColumn = JoinTableComposite.this.joinTable.getDefaultInverseJoinColumns().get(0);
-					String columnName = defaultJoinColumn.getDefaultName();
-					String referencedColumnName = defaultJoinColumn.getDefaultReferencedColumnName();
-					IJoinColumn joinColumn = JoinTableComposite.this.joinTable.createInverseJoinColumn(0);
-					JoinTableComposite.this.joinTable.getSpecifiedInverseJoinColumns().add(joinColumn);
-					joinColumn.setSpecifiedName(columnName);
-					joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-				} else {
-					JoinTableComposite.this.joinTable.getSpecifiedInverseJoinColumns().clear();
-				}
-			}
-		});
-		this.inverseJoinColumnsComposite = new JoinColumnsComposite(composite, this.commandStack, getWidgetFactory(), JptUiMappingsMessages.JoinTableComposite_inverseJoinColumn);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.inverseJoinColumnsComposite.getControl().setLayoutData(gridData);
-	}
-	
-	void addJoinColumn() {
-		JoinColumnInJoinTableDialog dialog = new JoinColumnInJoinTableDialog(this.getControl().getShell(), this.joinTable);
-		this.addJoinColumnFromDialog(dialog);
-	}
-	
-	private void addJoinColumnFromDialog(JoinColumnInJoinTableDialog dialog) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-		int index = this.joinTable.getJoinColumns().size();
-		IJoinColumn joinColumn = this.joinTable.createJoinColumn(index);
-		this.joinTable.getSpecifiedJoinColumns().add(joinColumn);
-		joinColumn.setSpecifiedName(dialog.getSelectedName());
-		joinColumn.setSpecifiedReferencedColumnName(dialog.getReferencedColumnName());
-	}
-	
-	void addInverseJoinColumn() {
-		InverseJoinColumnDialog dialog = new InverseJoinColumnDialog(this.getControl().getShell(), this.joinTable);
-		this.addInverseJoinColumnFromDialog(dialog);
-	}
-	
-	private void addInverseJoinColumnFromDialog(InverseJoinColumnDialog dialog) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-		int index = this.joinTable.getInverseJoinColumns().size();
-		IJoinColumn joinColumn = this.joinTable.createInverseJoinColumn(index);
-		this.joinTable.getSpecifiedInverseJoinColumns().add(joinColumn);
-		joinColumn.setSpecifiedName(dialog.getSelectedName());
-		joinColumn.setSpecifiedReferencedColumnName(dialog.getReferencedColumnName());
-	}
-
-	void editJoinColumn(IJoinColumn joinColumn) {
-		JoinColumnInJoinTableDialog dialog = new JoinColumnInJoinTableDialog(this.getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	private void editJoinColumnFromDialog(JoinColumnInJoinTableDialog dialog, IJoinColumn joinColumn) {
-		if (dialog.open() == Window.OK) {
-			editJoinColumnDialogOkd(dialog, joinColumn);
-		}
-	}
-	
-	private void editJoinColumnDialogOkd(JoinColumnInJoinTableDialog dialog, IJoinColumn joinColumn) {
-		String name = dialog.getSelectedName();
-		String referencedColumnName = dialog.getReferencedColumnName();
-
-		if (dialog.isDefaultNameSelected()) {
-			if (joinColumn.getSpecifiedName() != null) {
-				joinColumn.setSpecifiedName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedName() == null || !joinColumn.getSpecifiedName().equals(name)){
-			joinColumn.setSpecifiedName(name);
-		}
-		
-		if (dialog.isDefaultReferencedColumnNameSelected()) {
-			if (joinColumn.getSpecifiedReferencedColumnName() != null) {
-				joinColumn.setSpecifiedReferencedColumnName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null || !joinColumn.getSpecifiedReferencedColumnName().equals(referencedColumnName)){
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	
-	void editInverseJoinColumn(IJoinColumn joinColumn) {
-		InverseJoinColumnDialog dialog = new InverseJoinColumnDialog(getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	protected void joinTableChanged(Notification notification) {
-		if (notification.getFeatureID(IJoinTable.class) == JpaCoreMappingsPackage.IJOIN_TABLE__SPECIFIED_JOIN_COLUMNS) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					overrideDefaultJoinColumnsCheckBox.setSelection(joinTable.containsSpecifiedJoinColumns());
-				}
-			});
-		}
-		else if (notification.getFeatureID(IJoinTable.class) == JpaCoreMappingsPackage.IJOIN_TABLE__SPECIFIED_INVERSE_JOIN_COLUMNS) {
-
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					overrideDefaultInverseJoinColumnsCheckBox.setSelection(joinTable.containsSpecifiedInverseJoinColumns());
-				}
-			});
-		}
-	}
-		
-	protected void engageListeners() {
-		if (this.joinTable != null) {
-			this.joinTable.eAdapters().add(this.joinTableListener);
-			this.addConnectionListener();		
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.joinTable != null) {
-			this.joinTable.eAdapters().remove(this.joinTableListener);
-			this.removeConnectionListener();
-		}
-	}
-		
-	public void doPopulate(EObject obj) {
-		this.joinTable = (IJoinTable) obj;
-		if (this.joinTable == null) {
-			this.joinColumnsComposite.populate(null);
-			this.inverseJoinColumnsComposite.populate(null);
-			this.connectionProfile = null;
-			return;
-		}
-		
-		this.tableCombo.populate(this.joinTable);
-		this.joinColumnsComposite.populate(new JoinColumnsOwner(this.joinTable));
-		this.inverseJoinColumnsComposite.populate(new InverseJoinColumnsOwner(this.joinTable));
-		
-		this.overrideDefaultJoinColumnsCheckBox.setSelection(this.joinTable.containsSpecifiedJoinColumns());
-		this.overrideDefaultInverseJoinColumnsCheckBox.setSelection(this.joinTable.containsSpecifiedInverseJoinColumns());
-	}
-
-	@Override
-	protected void doPopulate() {
-		this.tableCombo.populate();
-		this.joinColumnsComposite.populate();
-		this.inverseJoinColumnsComposite.populate();
-	}
-	
-	@Override
-	public void dispose() {
-		this.tableCombo.dispose();
-		this.joinColumnsComposite.dispose();
-		this.inverseJoinColumnsComposite.dispose();
-		super.dispose();
-	}
-
-	private class JoinColumnsOwner extends JpaEObject implements Owner {
-		
-		private IJoinTable joinTable;
-		
-		public JoinColumnsOwner(IJoinTable joinTable) {
-			super();
-			this.joinTable = joinTable;
-		}
-		
-		public void addJoinColumn() {
-			JoinTableComposite.this.addJoinColumn();
-		}
-		
-		public boolean containsSpecifiedJoinColumns() {
-			return this.joinTable.containsSpecifiedJoinColumns();
-		}
-		
-		public IJoinColumn createJoinColumn(int index) {
-			return this.joinTable.createJoinColumn(index);
-		}
-		
-		public List<IJoinColumn> getJoinColumns() {
-			return this.joinTable.getJoinColumns();
-		}
-		
-		public List<IJoinColumn> getSpecifiedJoinColumns() {
-			return this.joinTable.getSpecifiedJoinColumns();
-		}
-		
-		public int specifiedJoinColumnsFeatureId() {
-			return JpaCoreMappingsPackage.IJOIN_TABLE__SPECIFIED_JOIN_COLUMNS;
-		}
-		
-		public Class owningFeatureClass() {
-			return IJoinTable.class;
-		}
-		
-		public void editJoinColumn(IJoinColumn joinColumn) {
-			JoinTableComposite.this.editJoinColumn(joinColumn);
-		}
-		
-		public EObject getEObject() {
-			return this.joinTable;
-		}
-	}
-	
-	private class InverseJoinColumnsOwner extends JpaEObject implements Owner {
-		
-		private IJoinTable joinTable;
-		
-		public InverseJoinColumnsOwner(IJoinTable joinTable) {
-			super();
-			this.joinTable = joinTable;
-		}
-		
-		public void addJoinColumn() {
-			JoinTableComposite.this.addInverseJoinColumn();
-		}
-		
-		public boolean containsSpecifiedJoinColumns() {
-			return this.joinTable.containsSpecifiedInverseJoinColumns();
-		}
-		
-		public IJoinColumn createJoinColumn(int index) {
-			return this.joinTable.createJoinColumn(index);
-		}
-		
-		public List<IJoinColumn> getJoinColumns() {
-			return this.joinTable.getInverseJoinColumns();
-		}
-		
-		public List<IJoinColumn> getSpecifiedJoinColumns() {
-			return this.joinTable.getSpecifiedInverseJoinColumns();
-		}
-		
-		public int specifiedJoinColumnsFeatureId() {
-			return JpaCoreMappingsPackage.IJOIN_TABLE__SPECIFIED_INVERSE_JOIN_COLUMNS;
-		}
-		
-		public Class owningFeatureClass() {
-			return IJoinTable.class;
-		}
-		
-		public void editJoinColumn(IJoinColumn joinColumn) {
-			JoinTableComposite.this.editInverseJoinColumn(joinColumn);
-		}
-		
-		public EObject getEObject() {
-			return this.joinTable;
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/LobCheckBox.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/LobCheckBox.java
deleted file mode 100644
index a81944a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/LobCheckBox.java
+++ /dev/null
@@ -1,128 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IBasic;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class LobCheckBox extends BaseJpaController
-{
-	private IBasic basicMapping;
-	private Adapter basicMappingListener;
-	
-	private Button button;
-
-
-	public LobCheckBox(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildBasicMappingListener();
-	}
-	
-	private void buildBasicMappingListener() {
-		this.basicMappingListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				bsaicMappingChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.button = getWidgetFactory().createButton(
-						parent, 
-						JptUiMappingsMessages.BasicGeneralSection_lobLabel,
-						SWT.CHECK);
-		
-		this.button.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				LobCheckBox.this.lobSelectionChanged();
-			}
-		
-			public void widgetDefaultSelected(SelectionEvent e) {
-				LobCheckBox.this.lobSelectionChanged();
-			}
-		});
-	}
-	
-	void lobSelectionChanged() {
-		boolean lob = this.button.getSelection();
-		if (this.basicMapping.isLob() != lob) {
-			this.basicMapping.setLob(lob);
-		}
-	}
-
-	private void bsaicMappingChanged(Notification notification) {
-		if (notification.getFeatureID(IBasic.class) == 
-				JpaCoreMappingsPackage.IBASIC__LOB) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.basicMapping != null) {
-			this.basicMapping.eAdapters().add(this.basicMappingListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.basicMapping != null) {
-			this.basicMapping.eAdapters().remove(this.basicMappingListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.basicMapping = (IBasic) obj;
-		populateButton();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateButton();
-	}
-	
-	private void populateButton() {
-		boolean lob = false;
-		if (this.basicMapping != null) {
-			lob  = this.basicMapping.isLob();
-		}
-		
-		if (this.button.getSelection() != lob) {
-			this.button.setSelection(lob);
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.button;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToManyComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToManyComposite.java
deleted file mode 100644
index 1853eba..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToManyComposite.java
+++ /dev/null
@@ -1,184 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IManyToMany;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class ManyToManyComposite extends BaseJpaComposite 
-{
-	private IManyToMany manyToMany;
-	
-	private TargetEntityChooser targetEntityChooser;
-
-	private EnumComboViewer fetchTypeComboViewer;
-
-	private MappedByCombo mappedByCombo;
-
-	private CascadeComposite cascadeComposite;
-
-	private OrderingComposite orderingComposite;
-
-	private JoinTableComposite joinTableComposite;
-	
-
-	public ManyToManyComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-		Control joinTableControl = buildJoinTableControl(composite);
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		joinTableControl.setLayoutData(gridData);
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-//		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-
-		this.targetEntityChooser = CommonWidgets.buildTargetEntityChooser(generalComposite, commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.targetEntityChooser.getControl().setLayoutData(gridData);
-
-		
-		CommonWidgets.buildFetchLabel(generalComposite, getWidgetFactory());
-		this.fetchTypeComboViewer = CommonWidgets.buildFetchTypeComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.fetchTypeComboViewer.getControl().setLayoutData(gridData);
-
-
-		CommonWidgets.buildMappedByLabel(generalComposite, getWidgetFactory());
-		this.mappedByCombo = new MappedByCombo(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.mappedByCombo.getControl().setLayoutData(gridData);
-
-		this.cascadeComposite = new CascadeComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.cascadeComposite.getControl().setLayoutData(gridData);
-
-
-		this.orderingComposite = new OrderingComposite(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.orderingComposite.getControl().setLayoutData(gridData);
-
-		return generalComposite;
-	}
-	
-	private Control buildJoinTableControl(Composite composite) {
-	    Section section = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    section.setText(JptUiMappingsMessages.MultiRelationshipMappingComposite_joinTable);
-
-		Composite joinTableClient = getWidgetFactory().createComposite(section);
-		section.setClient(joinTableClient);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		joinTableClient.setLayout(layout);
-
-		this.joinTableComposite = new JoinTableComposite(joinTableClient, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.joinTableComposite.getControl().setLayoutData(gridData);
-		
-		return section;
-	}
-	
-	public void doPopulate(EObject obj) {
-		this.manyToMany = (IManyToMany) obj;
-		this.targetEntityChooser.populate(this.manyToMany);
-		this.fetchTypeComboViewer.populate(CommonWidgets.buildMultiRelationshipMappingFetchEnumHolder(this.manyToMany));
-		this.mappedByCombo.populate(this.manyToMany);
-		this.cascadeComposite.populate(this.manyToMany);
-		if (this.manyToMany != null) {
-			this.joinTableComposite.populate(this.manyToMany.getJoinTable());
-			this.orderingComposite.populate(this.manyToMany);
-		}
-		else {
-			this.joinTableComposite.populate(null);
-			this.orderingComposite.populate(null);
-		}
-	}
-	
-	public void doPopulate() {
-		this.targetEntityChooser.populate();
-		this.fetchTypeComboViewer.populate();
-		this.mappedByCombo.populate();
-		this.cascadeComposite.populate();
-		this.joinTableComposite.populate();
-		this.orderingComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.targetEntityChooser.dispose();
-		this.fetchTypeComboViewer.dispose();
-		this.mappedByCombo.dispose();
-		this.cascadeComposite.dispose();
-		this.joinTableComposite.dispose();
-		this.orderingComposite.dispose();
-		super.dispose();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java
deleted file mode 100644
index c36cd7b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java
+++ /dev/null
@@ -1,151 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.IManyToOne;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class ManyToOneComposite extends BaseJpaComposite 
-{
-	private IManyToOne manyToOne;
-	
-	private TargetEntityChooser targetEntityChooser;
-
-	private EnumComboViewer fetchTypeComboViewer;
-	
-	private EnumComboViewer optionalComboViewer;
-
-	private OrderingComposite orderByComposite;
-
-	private CascadeComposite cascadeComposite;
-
-	private JoinColumnComposite joinColumnComposite;
-		
-	public ManyToOneComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-		
-		this.targetEntityChooser = CommonWidgets.buildTargetEntityChooser(generalComposite, commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.targetEntityChooser.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(targetEntityChooser.getControl(), IJpaHelpContextIds.MAPPING_TARGET_ENTITY);
-		
-		CommonWidgets.buildFetchLabel(generalComposite, getWidgetFactory());
-		this.fetchTypeComboViewer = CommonWidgets.buildFetchTypeComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.fetchTypeComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(fetchTypeComboViewer.getControl(), IJpaHelpContextIds.MAPPING_FETCH_TYPE);
-		
-		CommonWidgets.buildOptionalLabel(generalComposite, getWidgetFactory());
-		this.optionalComboViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.optionalComboViewer.getControl().setLayoutData(gridData);
-
-		this.cascadeComposite = new CascadeComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.cascadeComposite.getControl().setLayoutData(gridData);
-
-		this.joinColumnComposite = new JoinColumnComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.joinColumnComposite.getControl().setLayoutData(gridData);	
-
-		return generalComposite;
-	}
-	
-	public void doPopulate(EObject obj) {
-		this.manyToOne = (IManyToOne) obj;
-		this.targetEntityChooser.populate(this.manyToOne);
-		this.fetchTypeComboViewer.populate(CommonWidgets.buildSingleRelationshipMappingFetchEnumHolder(this.manyToOne));
-		this.optionalComboViewer.populate(CommonWidgets.buildOptionalHolder(this.manyToOne));
-		this.cascadeComposite.populate(this.manyToOne);
-		this.joinColumnComposite.populate(this.manyToOne);
-	}
-	
-	public void doPopulate() {
-		this.targetEntityChooser.populate();
-		this.fetchTypeComboViewer.populate();
-		this.optionalComboViewer.populate();
-		this.cascadeComposite.populate();
-		this.joinColumnComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.targetEntityChooser.dispose();
-		this.fetchTypeComboViewer.dispose();
-		this.optionalComboViewer.dispose();
-		this.cascadeComposite.dispose();
-		this.joinColumnComposite.dispose();
-		super.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedByCombo.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedByCombo.java
deleted file mode 100644
index 593988c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedByCombo.java
+++ /dev/null
@@ -1,162 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.INonOwningMapping;
-import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class MappedByCombo extends BaseJpaController
-{
-	private INonOwningMapping nonOwningMapping;
-	private Adapter nonOwningMappingListener;
-	
-	private CCombo combo;
-	
-	public MappedByCombo(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-		this.nonOwningMappingListener = buildListener();
-	}
-	
-	private Adapter buildListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				nonOwningMappingChanged(notification);
-			}
-		};
-	}
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(combo,IJpaHelpContextIds.MAPPING_MAPPED_BY);
-		this.combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String mappedBy = ((CCombo) e.getSource()).getText();
-				if (mappedBy.equals("")) { //$NON-NLS-1$
-					mappedBy = null;
-					if (getNonOwningMapping().getMappedBy() == null || getNonOwningMapping().getMappedBy().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				if (getNonOwningMapping().getMappedBy() == null || !getNonOwningMapping().getMappedBy().equals(mappedBy)) {
-					getNonOwningMapping().setMappedBy(mappedBy);
-				}
-			}
-		});
-	}
-	
-	private INonOwningMapping getNonOwningMapping() {
-		return this.nonOwningMapping;
-	}
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		this.nonOwningMapping = (INonOwningMapping) obj;
-		
-		if (this.nonOwningMapping == null) {
-			return;
-		}
-		
-		populateCombo();
-	}
-
-	private void populateCombo() {
-		populateChoices();
-		populateMappedByText();
-	}
-	
-	private void populateChoices() {
-		if (this.combo.getItemCount() > 0) {
-			this.combo.removeAll();
-		}
-		for (Iterator<String> i = this.nonOwningMapping.candidateMappedByAttributeNames(); i.hasNext(); ) {
-			this.combo.add(i.next());
-		}
-	}
-	
-	private void populateMappedByText() {
-		String mappedBy = this.nonOwningMapping.getMappedBy();
-		if (mappedBy != null) {
-			if (!this.combo.getText().equals(mappedBy)) {
-				this.combo.setText(mappedBy);
-			}
-		}
-		else {
-			this.combo.setText("");
-		}
-	}
-	
-	@Override
-	protected void doPopulate() {
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.nonOwningMapping != null) {
-			this.nonOwningMapping.eAdapters().add(this.nonOwningMappingListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.nonOwningMapping != null) {
-			this.nonOwningMapping.eAdapters().remove(this.nonOwningMappingListener);
-		}
-	}
-	
-	protected void nonOwningMappingChanged(Notification notification) {
-		if (notification.getFeatureID(INonOwningMapping.class) == JpaCoreMappingsPackage.INON_OWNING_MAPPING__MAPPED_BY) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateMappedByText();
-				}
-			});
-		}
-		else if (notification.getFeatureID(IRelationshipMapping.class) == JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateChoices();
-				}
-			});
-		}
-	}
-
-	@Override
-	public Control getControl() {
-		return this.combo;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedSuperclassComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedSuperclassComposite.java
deleted file mode 100644
index 7d21ec7..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/MappedSuperclassComposite.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IMappedSuperclass;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class MappedSuperclassComposite extends BaseJpaComposite 
-{
-	private IMappedSuperclass mappedSuperclass;
-	private Adapter mappedSuperclassListener;
-	
-	private CommandStack commandStack;
-	
-	
-	public MappedSuperclassComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.mappedSuperclassListener = buildMappedSuperclassListener();
-	}
-	
-	private Adapter buildMappedSuperclassListener() {
-		return new AdapterImpl() {
-			@Override
-			public void notifyChanged(Notification notification) {
-				mappedSuperclassChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new FillLayout(SWT.VERTICAL));
-		
-//		Label accessTypeLabel = new Label(composite, SWT.LEFT);
-//		accessTypeLabel.setText(DaliUiMessages.MappedSuperclassComposite_accessType);
-//		this.accessTypeComboViewer = buildAccessTypeCombo(composite);
-//		//eventually this will be enabled if editing xml instead of java
-//		this.accessTypeComboViewer.getCombo().setEnabled(false);
-//		GridData gridData = new GridData();
-//		gridData.horizontalAlignment = GridData.FILL;
-//		gridData.grabExcessHorizontalSpace = true;
-//		this.accessTypeComboViewer.getCombo().setLayoutData(gridData);
-//		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.accessTypeComboViewer.getCombo(), IDaliHelpContextIds.ENTITY_ACCESS_TYPE);
-		
-	}
-	
-//	private ComboViewer buildAccessTypeCombo(Composite parent) {
-//		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
-//		viewer.add(AccessType.VALUES.toArray());
-//		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-//			public void selectionChanged(SelectionChangedEvent event) {
-//				if (populating) {
-//					return;
-//				}
-//				if (event.getSelection() instanceof StructuredSelection) {
-//					StructuredSelection selection = (StructuredSelection) event.getSelection();
-//					editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, persistentType, OrmPackage.eINSTANCE.getPersistentType_AccessType(), selection.getFirstElement()));
-//				}
-//			}
-//		});
-//		return viewer;
-//	}
-	
-	@Override
-	protected void doPopulate(EObject model) {
-		this.mappedSuperclass = (IMappedSuperclass) model;
-	}
-	
-	@Override
-	protected void doPopulate() {
-		
-	}
-	
-	
-	protected void engageListeners() {
-//		this.persistentTypeItemProvider.addListener(getPersistentTypeListener());
-//		this.persistentType.eAdapters().add(this.persistentTypeItemProvider);
-	}
-
-	protected void disengageListeners() {
-//		if (this.persistentType != null){
-//			this.persistentType.eAdapters().remove(this.persistentTypeItemProvider);
-//			this.persistentTypeItemProvider.removeListener(getPersistentTypeListener());
-//		}
-	}
-	
-	private void mappedSuperclassChanged(Notification notification) {
-		
-	}
-	
-//	private INotifyChangedListener getPersistentTypeListener() {
-//		if (this.persistentTypeListener == null) {
-//			this.persistentTypeListener = new INotifyChangedListener() {
-//				public void notifyChanged(Notification notification) {
-//					if (notification.getFeatureID(PersistentType.class) == OrmPackage.PERSISTENT_TYPE__ACCESS_TYPE) {
-//						final AccessType accessType = (AccessType) notification.getNewValue();
-//						Display.getDefault().syncExec(new Runnable() {
-//							public void run() {
-//								if (((StructuredSelection) accessTypeComboViewer.getSelection()).getFirstElement() != accessType) {
-//									accessTypeComboViewer.setSelection(new StructuredSelection(accessType));
-//								}
-//							}
-//						});
-//					}
-//				}
-//			};
-//		}
-//		return this.persistentTypeListener;
-//	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToManyComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToManyComposite.java
deleted file mode 100644
index 113173f..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToManyComposite.java
+++ /dev/null
@@ -1,187 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.IOneToMany;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class OneToManyComposite extends BaseJpaComposite 
-{
-	private IOneToMany oneToMany;
-	
-	private EnumComboViewer fetchTypeComboViewer;
-	
-	private TargetEntityChooser targetEntityChooser;
-	
-	private MappedByCombo mappedByCombo;
-
-	private CascadeComposite cascadeComposite;
-	
-	private OrderingComposite orderingComposite;
-
-	private JoinTableComposite joinTableComposite;
-	
-	public OneToManyComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralControl(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-		Control joinTableControl = buildJoinTableControl(composite);
-	    gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		joinTableControl.setLayoutData(gridData);
-	}
-	
-	private Control buildGeneralControl(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-
-		GridData gridData;
-		
-		this.targetEntityChooser = CommonWidgets.buildTargetEntityChooser(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.targetEntityChooser.getControl().setLayoutData(gridData);
-
-		CommonWidgets.buildFetchLabel(generalComposite, getWidgetFactory());
-		this.fetchTypeComboViewer = CommonWidgets.buildFetchTypeComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.fetchTypeComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(this.fetchTypeComboViewer.getControl(), IJpaHelpContextIds.MAPPING_FETCH_TYPE);
-
-		CommonWidgets.buildMappedByLabel(generalComposite, getWidgetFactory());
-		this.mappedByCombo = new MappedByCombo(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.mappedByCombo.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(this.mappedByCombo.getControl(), IJpaHelpContextIds.MAPPING_MAPPED_BY);
-		
-		this.cascadeComposite = new CascadeComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.cascadeComposite.getControl().setLayoutData(gridData);
-	
-		this.orderingComposite = new OrderingComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.orderingComposite.getControl().setLayoutData(gridData);
-		
-
-		return generalComposite;
-	}
-	
-	private Control buildJoinTableControl(Composite composite) {
-	    Section section = getWidgetFactory().createSection(composite, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    section.setText(JptUiMappingsMessages.MultiRelationshipMappingComposite_joinTable);
-
-		Composite joinTableClient = getWidgetFactory().createComposite(section);
-		section.setClient(joinTableClient);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		joinTableClient.setLayout(layout);
-
-		this.joinTableComposite = new JoinTableComposite(joinTableClient, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.joinTableComposite.getControl().setLayoutData(gridData);
-		
-		return section;
-	}
-
-	public void doPopulate(EObject obj) {
-		this.oneToMany = (IOneToMany) obj;
-		this.fetchTypeComboViewer.populate(CommonWidgets.buildMultiRelationshipMappingFetchEnumHolder(this.oneToMany));
-		this.targetEntityChooser.populate(this.oneToMany);
-		this.mappedByCombo.populate(this.oneToMany);
-		this.cascadeComposite.populate(this.oneToMany);
-		if (this.oneToMany != null) {
-			this.joinTableComposite.populate(this.oneToMany.getJoinTable());
-			this.orderingComposite.populate(this.oneToMany);
-		}
-		else {
-			this.joinTableComposite.populate(null);
-			this.orderingComposite.populate(null);
-		}
-	}
-	
-	public void doPopulate() {
-		this.fetchTypeComboViewer.populate();
-		this.targetEntityChooser.populate();
-		this.mappedByCombo.populate();
-		this.cascadeComposite.populate();
-		this.joinTableComposite.populate();
-		this.orderingComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.fetchTypeComboViewer.dispose();
-		this.targetEntityChooser.dispose();
-		this.mappedByCombo.dispose();
-		this.cascadeComposite.dispose();
-		this.joinTableComposite.dispose();
-		this.orderingComposite.dispose();
-		super.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java
deleted file mode 100644
index f16a350..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java
+++ /dev/null
@@ -1,164 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
-import org.eclipse.jpt.core.internal.mappings.IOneToOne;
-import org.eclipse.jpt.core.internal.mappings.ISingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class OneToOneComposite extends BaseJpaComposite 
-{
-	private IOneToOne oneToOne;
-	
-	private TargetEntityChooser targetEntityChooser;
-
-	private EnumComboViewer fetchTypeComboViewer;
-	
-	private MappedByCombo mappedByCombo;
-
-	private EnumComboViewer optionalComboViewer;
-
-	private CascadeComposite cascadeComposite;
-
-	private JoinColumnComposite joinColumnComposite;
-		
-	public OneToOneComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	private IOneToOne getOneToOne() {
-		return this.oneToOne;
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-//		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-		
-		this.targetEntityChooser = CommonWidgets.buildTargetEntityChooser(generalComposite, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.targetEntityChooser.getControl().setLayoutData(gridData);
-		
-
-		CommonWidgets.buildFetchLabel(generalComposite, getWidgetFactory());
-		this.fetchTypeComboViewer = CommonWidgets.buildFetchTypeComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.fetchTypeComboViewer.getControl().setLayoutData(gridData);
-
-		CommonWidgets.buildMappedByLabel(generalComposite, getWidgetFactory());
-		this.mappedByCombo = new MappedByCombo(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.mappedByCombo.getControl().setLayoutData(gridData);
-		
-		CommonWidgets.buildOptionalLabel(generalComposite, getWidgetFactory());
-		this.optionalComboViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.optionalComboViewer.getControl().setLayoutData(gridData);
-
-		this.cascadeComposite = new CascadeComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.cascadeComposite.getControl().setLayoutData(gridData);
-
-		this.joinColumnComposite = new JoinColumnComposite(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.joinColumnComposite.getControl().setLayoutData(gridData);	
-
-		return generalComposite;
-	}
-
-	public void doPopulate(EObject obj) {
-		this.oneToOne = (IOneToOne) obj;
-		this.targetEntityChooser.populate(this.oneToOne);
-		this.fetchTypeComboViewer.populate(CommonWidgets.buildSingleRelationshipMappingFetchEnumHolder(this.oneToOne));
-		this.mappedByCombo.populate(this.oneToOne);
-		this.optionalComboViewer.populate(CommonWidgets.buildOptionalHolder(this.oneToOne));
-		this.cascadeComposite.populate(this.oneToOne);
-		this.joinColumnComposite.populate(this.oneToOne);
-	}
-	
-	public void doPopulate() {
-		this.targetEntityChooser.populate();
-		this.fetchTypeComboViewer.populate();
-		this.mappedByCombo.populate();
-		this.optionalComboViewer.populate();
-		this.cascadeComposite.populate();
-		this.joinColumnComposite.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.targetEntityChooser.dispose();
-		this.fetchTypeComboViewer.dispose();
-		this.mappedByCombo.dispose();
-		this.optionalComboViewer.dispose();
-		this.cascadeComposite.dispose();
-		this.joinColumnComposite.dispose();
-		super.dispose();
-	}
-
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrderingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrderingComposite.java
deleted file mode 100644
index 95b1bc6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OrderingComposite.java
+++ /dev/null
@@ -1,309 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- *
- */
-public class OrderingComposite extends BaseJpaComposite  {
-
-	private IMultiRelationshipMapping mapping;
-	private Adapter mappingListener;
-	
-	private Button noOrderingRadioButton;
-	private Button primaryKeyOrderingRadioButton;
-	private Button customOrderingRadioButton;
-	
-	private ITextViewer orderingTextViewer;
-	
-	// short circuit flag for user typing
-	private boolean updatingCustomOrderBy = false;
-	
-
-	public OrderingComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-		this.mappingListener = buildMappingListener();
-	}
-
-	private Adapter buildMappingListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				mappingChanged(notification);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		Group orderByGroup = getWidgetFactory().createGroup(composite, JptUiMappingsMessages.OrderByComposite_orderByGroup);
-		orderByGroup.setLayout(new GridLayout(1, false));
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		orderByGroup.setLayoutData(gridData);
-		helpSystem.setHelp(orderByGroup, IJpaHelpContextIds.MAPPING_ORDER_BY);
-		
-
-		this.noOrderingRadioButton = buildNoOrderingRadioButton(orderByGroup);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.noOrderingRadioButton.setLayoutData(gridData);
-//		helpSystem().setHelp(this.noOrderingRadioButton, IJpaHelpContextIds.MAPPING_ORDER_BY_NO_ORDERING);
-
-
-		this.primaryKeyOrderingRadioButton = buildPrimaryKeyOrderingRadioButton(orderByGroup);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.primaryKeyOrderingRadioButton.setLayoutData(gridData);
-//		helpSystem().setHelp(this.primaryKeyOrderingRadioButton, IJpaHelpContextIds.MAPPING_ORDER_BY_PRIMARY_KEY_ORDERING);
-
-		this.customOrderingRadioButton = buildCustomOrderingRadioButton(orderByGroup);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.customOrderingRadioButton.setLayoutData(gridData);
-//		helpSystem().setHelp(this.customOrderingRadioButton, IJpaHelpContextIds.MAPPING_ORDER_BY_CUSTOM_ORDERING);
-
-		
-		this.orderingTextViewer = buildOrderByTestViewer(orderByGroup);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalIndent = 15;
-		this.orderingTextViewer.getTextWidget().setLayoutData(gridData);
-		helpSystem.setHelp(this.orderingTextViewer.getTextWidget(), IJpaHelpContextIds.MAPPING_ORDER_BY);
-	}
-	
-	private Button buildNoOrderingRadioButton(Composite parent) {
-		Button button = getWidgetFactory().createButton(
-			parent, 
-			JptUiMappingsMessages.OrderByComposite_noOrdering, 
-			SWT.RADIO);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// ignore
-			}
-			public void widgetSelected(SelectionEvent e) {
-				OrderingComposite.this.noOrderingRadioButtonSelected(e);
-			}
-		});
-
-		return button;
-	}
-
-	void noOrderingRadioButtonSelected(SelectionEvent e) {
-		if (!((Button) e.widget).getSelection()) {
-			//ignore case where radio button is deselected
-			return;
-		}
-		if (this.mapping.isNoOrdering()) {
-			return;
-		}
-		this.mapping.setNoOrdering();
-	}
-	
-	private Button buildPrimaryKeyOrderingRadioButton(Composite parent) {
-		Button button = getWidgetFactory().createButton(
-			parent, 
-			JptUiMappingsMessages.OrderByComposite_primaryKeyOrdering, 
-			SWT.RADIO);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// ignore
-			}
-			public void widgetSelected(SelectionEvent e) {
-				OrderingComposite.this.primaryKeyOrderingRadioButtonSelected(e);
-			}
-		});
-		return button;
-	}
-	
-	void primaryKeyOrderingRadioButtonSelected(SelectionEvent e) {
-		if (!((Button) e.widget).getSelection()) {
-			//ignore case where radio button is deselected
-			return;
-		}
-		if (! this.mapping.isOrderByPk()) {
-			this.mapping.setOrderByPk();
-		}
-		setTextViewerEnabled(false);
-	}
-
-	private Button buildCustomOrderingRadioButton(Composite parent) {
-		Button button = getWidgetFactory().createButton(
-			parent, 
-			JptUiMappingsMessages.OrderByComposite_customOrdering, 
-			SWT.RADIO);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// ignore
-			}
-			public void widgetSelected(SelectionEvent e) {
-				OrderingComposite.this.customOrderingRadioButtonSelected(e);
-			}
-		});
-
-		return button;
-	}
-	
-	void customOrderingRadioButtonSelected(SelectionEvent e) {
-		if (!((Button) e.widget).getSelection()) {
-			//ignore case where radio button is deselected
-			return;
-		}
-		setTextViewerEnabled(true);
-	}
-	
-	private ITextViewer buildOrderByTestViewer(Composite parent) {
-		final TextViewer textViewer = new TextViewer(parent, SWT.SINGLE | SWT.BORDER);
-		textViewer.setDocument(new Document());
-		textViewer.addTextListener(new ITextListener() {
-			public void textChanged(TextEvent event) {
-				orderingTextViewerChanged();
-			}
-		});
-		return textViewer;
-	}
-	
-	private void orderingTextViewerChanged() {
-		if (isPopulating()) {
-			return;
-		}
-		String orderByValue = this.orderingTextViewer.getDocument().get();
-		if (orderByValue.equals(this.mapping.getOrderBy())) {
-			return;
-		}
-		
-		this.updatingCustomOrderBy = true;
-		this.mapping.setOrderBy(orderByValue);
-	}
-	
-	private void setTextViewerEnabled(boolean enabled) {
-		this.orderingTextViewer.setEditable(enabled);
-		this.orderingTextViewer.getTextWidget().setEnabled(enabled);
-	}
-
-	private void mappingChanged(Notification notification) {
-		if (notification.getFeatureID(IMultiRelationshipMapping.class) == JpaCoreMappingsPackage.IMULTI_RELATIONSHIP_MAPPING__ORDER_BY) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					populate();
-				}
-			});
-		}		
-	}
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		this.mapping = (IMultiRelationshipMapping) obj;
-		if (this.mapping == null) {
-			return;
-		}
-		populateOrderingRadioButtons();		
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateOrderingRadioButtons();		
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.mapping != null) {
-			this.mapping.eAdapters().add(this.mappingListener);
-		}
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (this.mapping != null) {
-			this.mapping.eAdapters().remove(this.mappingListener);
-		}
-	}
-	
-	private void populateOrderingRadioButtons() {
-		// short circuit if user is typing
-		if (updatingCustomOrderBy) {
-			updatingCustomOrderBy = false;
-			return;
-		}
-		
-		if (this.mapping.isNoOrdering()) {
-			this.primaryKeyOrderingRadioButton.setSelection(false);			
-			this.customOrderingRadioButton.setSelection(false);
-			this.noOrderingRadioButton.setSelection(true);
-			if (! "".equals(this.orderingTextViewer.getDocument().get())) {
-				this.orderingTextViewer.getDocument().set("");
-			}
-		}
-		else if (this.mapping.isOrderByPk()) {
-			this.customOrderingRadioButton.setSelection(false);
-			this.noOrderingRadioButton.setSelection(false);
-			this.primaryKeyOrderingRadioButton.setSelection(true);			
-//			String value = this.ordering.getValue();
-//			if (value != null && !value.equals(this.orderingTextViewer.getDocument().get())) {
-//				this.orderingTextViewer.getDocument().set(value);
-//			}
-//			else {
-				if (!"".equals(this.orderingTextViewer.getDocument().get())) {
-					this.orderingTextViewer.getDocument().set("");				
-				}
-//			}
-		}
-		else if (this.mapping.isCustomOrdering()) {
-			this.noOrderingRadioButton.setSelection(false);
-			this.primaryKeyOrderingRadioButton.setSelection(false);			
-			this.customOrderingRadioButton.setSelection(true);
-			String value = this.mapping.getOrderBy();
-			if (value != null && !value.equals(this.orderingTextViewer.getDocument().get())) {
-				this.orderingTextViewer.getDocument().set(value);
-			}
-		}
-		
-		setTextViewerEnabled(this.mapping.isCustomOrdering());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java
deleted file mode 100644
index 986aab2..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java
+++ /dev/null
@@ -1,501 +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.ui.internal.mappings.details;
-
-import java.util.List;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.JpaEObject;
-import org.eclipse.jpt.core.internal.mappings.IAssociationOverride;
-import org.eclipse.jpt.core.internal.mappings.IAttributeOverride;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IOverride;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.JoinColumnsComposite.Owner;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class OverridesComposite extends BaseJpaComposite
-{
-	private ListViewer listViewer;
-	
-	private IEntity entity;
-	private Adapter entityListener;
-	
-	private IOverride selectedOverride;
-	private Adapter overrideListener;
-	
-	protected PageBook overridePageBook;
-
-	protected ColumnComposite columnComposite;
-	protected JoinColumnsComposite joinColumnsComposite;
-	
-	private Button overrideDefaultButton;
-	
-	public OverridesComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.entityListener = buildEntityListener();
-		this.overrideListener = buildOverrideListener();
-	}
-	
-	private Adapter buildEntityListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildOverrideListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				overrideChanged(notification);
-			}
-		};
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		Group attributeOverridesGroup = getWidgetFactory().createGroup(
-			composite, JptUiMappingsMessages.AttributeOverridesComposite_attributeOverrides);
-		attributeOverridesGroup.setLayout(new GridLayout(2, true));
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		attributeOverridesGroup.setLayoutData(gridData);
-		
-		this.listViewer = buildAttributeOverridesListViewer(attributeOverridesGroup);
-		gridData = new GridData();
-		gridData.verticalSpan = 2;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		this.listViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.listViewer.getList(), IJpaHelpContextIds.ENTITY_ATTRIBUTE_OVERRIDES);
-		
-		this.overrideDefaultButton = 
-			getWidgetFactory().createButton(
-				attributeOverridesGroup, 
-				JptUiMappingsMessages.AttributeOverridesComposite_overridDefault, 
-				SWT.CHECK);
-		this.overrideDefaultButton.addSelectionListener(buildOverrideDefaultSelectionListener());
-		gridData = new GridData();
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.overrideDefaultButton.setLayoutData(gridData);
-		
-		
-		this.overridePageBook = buildOverridePageBook(attributeOverridesGroup);
-		gridData = new GridData();
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.overridePageBook.setLayoutData(gridData);
-
-		this.joinColumnsComposite = new JoinColumnsComposite(this.overridePageBook, this.commandStack, getWidgetFactory(), JptUiMappingsMessages.OverridesComposite_joinColumn);
-		this.columnComposite = new ColumnComposite(this.overridePageBook, this.commandStack, getWidgetFactory());
-		this.overridePageBook.showPage(this.joinColumnsComposite.getControl());
-	}
-	
-	protected PageBook buildOverridePageBook(Composite parent) {
-		return new PageBook(parent, SWT.NONE);
-	}
-
-	private SelectionListener buildOverrideDefaultSelectionListener() {
-		return new SelectionListener(){
-		
-			public void widgetSelected(SelectionEvent e) {
-				overrideDefaultButtonSelected(e);
-			}
-		
-			public void widgetDefaultSelected(SelectionEvent e) {
-				overrideDefaultButtonSelected(e);
-			}
-		};
-	}
-	
-	private void overrideDefaultButtonSelected(SelectionEvent e) {
-		boolean selection = this.overrideDefaultButton.getSelection();
-		if (selection) {
-			if (getSelectedOverride() instanceof IAttributeOverride) {
-				int index = this.entity.getSpecifiedAttributeOverrides().size();
-				IAttributeOverride attributeOverride = this.entity.createAttributeOverride(index);			
-				this.entity.getSpecifiedAttributeOverrides().add(attributeOverride);
-				attributeOverride.setName(this.selectedOverride.getName());
-				attributeOverride.getColumn().setSpecifiedName(((IAttributeOverride) this.selectedOverride).getColumn().getName());
-			}
-			else {
-				int index = this.entity.getSpecifiedAssociationOverrides().size();
-				IAssociationOverride associationOverride = this.entity.createAssociationOverride(index);
-				String name = this.selectedOverride.getName();
-				this.entity.getSpecifiedAssociationOverrides().add(associationOverride);
-				associationOverride.setName(name);
-				//attributeOverride.getColumn().setSpecifiedName(this.attributeOverride.getColumn().getName());			
-			}
-		}
-		else {
-			if (getSelectedOverride() instanceof IAttributeOverride) {
-				this.entity.getSpecifiedAttributeOverrides().remove(this.selectedOverride);
-			}
-			else {
-				this.entity.getSpecifiedAssociationOverrides().remove(this.selectedOverride);
-			}
-		}
-	}
-	
-	
-	private ListViewer buildAttributeOverridesListViewer(Composite parent) {
-		ListViewer listViewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER);
-		listViewer.setLabelProvider(buildAttributeOverridesLabelProvider());
-		listViewer.setContentProvider(buildAttributeOverridesContentProvider());
-		
-		listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				overridesListSelectionChanged(event);
-			}
-		});
-
-		return listViewer;
-	}
-	
-	protected void overridesListSelectionChanged(SelectionChangedEvent event) {
-		if (((StructuredSelection) event.getSelection()).isEmpty()) {
-			this.columnComposite.populate(null);
-			this.columnComposite.enableWidgets(false);
-			this.overrideDefaultButton.setSelection(false);
-			this.overrideDefaultButton.setEnabled(false);
-		}
-		else {
-			this.selectedOverride = getSelectedOverride();
-			if (this.selectedOverride instanceof IAttributeOverride) {
-				boolean specifiedOverride = this.entity.getSpecifiedAttributeOverrides().contains(this.selectedOverride);
-				this.overrideDefaultButton.setSelection(specifiedOverride);
-				this.overridePageBook.showPage(this.columnComposite.getControl());
-				this.columnComposite.populate(((IAttributeOverride) this.selectedOverride).getColumn());
-				this.columnComposite.enableWidgets(specifiedOverride);
-				this.overrideDefaultButton.setEnabled(true);
-			}
-			else {
-				boolean specifiedOverride = this.entity.getSpecifiedAssociationOverrides().contains(this.selectedOverride);
-				this.overrideDefaultButton.setSelection(specifiedOverride);
-				this.overridePageBook.showPage(this.joinColumnsComposite.getControl());
-				this.joinColumnsComposite.populate(new JoinColumnsOwner((IAssociationOverride) getSelectedOverride()));
-				this.joinColumnsComposite.enableWidgets(specifiedOverride);
-				this.overrideDefaultButton.setEnabled(true);
-			}
-		}
-	}
-	
-	private ILabelProvider buildAttributeOverridesLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				//TODO also display column name somehow
-				return ((IOverride) element).getName();
-			}
-		};
-	}
-
-	
-	private IContentProvider buildAttributeOverridesContentProvider() {
-		return new IStructuredContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		
-			public void dispose() {
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				IEntity entity = (IEntity) inputElement;
-				return CollectionTools.addAll(
-					entity.getAttributeOverrides().toArray(new IOverride[entity.getAttributeOverrides().size()]), 
-					entity.getAssociationOverrides());
-			}
-		};
-	}
-
-	private IOverride getSelectedOverride() {
-		return (IOverride) ((StructuredSelection) this.listViewer.getSelection()).getFirstElement();
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-		this.entity = (IEntity) obj;
-		if (this.entity == null) {
-			this.selectedOverride = null;
-			this.columnComposite.populate(null);
-			this.joinColumnsComposite.populate(null);
-			this.listViewer.setInput(null);
-			return;
-		}
-		
-		if (this.listViewer.getInput() != entity) {
-			this.listViewer.setInput(entity);
-		}
-		if (!this.entity.getAttributeOverrides().isEmpty()) {
-			if (this.listViewer.getSelection().isEmpty()) {
-				IOverride override = this.entity.getAttributeOverrides().get(0);
-				this.listViewer.setSelection(new StructuredSelection(override));
-			}
-			else {
-				Object selection = ((StructuredSelection) this.listViewer.getSelection()).getFirstElement();
-				if (selection instanceof IAttributeOverride) {
-					this.overridePageBook.showPage(this.columnComposite.getControl());
-					this.columnComposite.enableWidgets(true);
-					this.columnComposite.populate(((IAttributeOverride) selection).getColumn());
-					}
-				else {
-					this.overridePageBook.showPage(this.joinColumnsComposite.getControl());
-					this.joinColumnsComposite.enableWidgets(true);
-					this.joinColumnsComposite.populate(new JoinColumnsOwner((IAssociationOverride) selection));
-				}
-			}
-		}
-		else {
-			this.columnComposite.populate(null);
-			this.columnComposite.enableWidgets(false);
-		}
-	}
-
-	@Override
-	protected void doPopulate() {
-		this.columnComposite.doPopulate();
-		this.joinColumnsComposite.doPopulate();
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().add(this.entityListener);
-			for (IOverride attributeOverride : this.entity.getAttributeOverrides()) {
-				attributeOverride.eAdapters().add(this.overrideListener);
-			}	
-			for (IOverride attributeOverride : this.entity.getAssociationOverrides()) {
-				attributeOverride.eAdapters().add(this.overrideListener);
-			}	
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().remove(this.entityListener);
-			for (IOverride attributeOverride : this.entity.getAttributeOverrides()) {
-				attributeOverride.eAdapters().remove(this.overrideListener);
-			}	
-			for (IOverride attributeOverride : this.entity.getAssociationOverrides()) {
-				attributeOverride.eAdapters().remove(this.overrideListener);
-			}	
-		}
-	}
-
-	
-	protected void entityChanged(Notification notification) {
-		switch (notification.getFeatureID(IEntity.class)) {
-			case JpaCoreMappingsPackage.IENTITY__SPECIFIED_ATTRIBUTE_OVERRIDES :
-			case JpaCoreMappingsPackage.IENTITY__SPECIFIED_ASSOCIATION_OVERRIDES :
-			case JpaCoreMappingsPackage.IENTITY__DEFAULT_ATTRIBUTE_OVERRIDES :
-			case JpaCoreMappingsPackage.IENTITY__DEFAULT_ASSOCIATION_OVERRIDES :
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						if (listViewer.getList().isDisposed()) {
-							return;
-						}
-						listViewer.refresh();
-					}
-				});
-
-				if (notification.getEventType() == Notification.ADD) {
-					((IOverride) notification.getNewValue()).eAdapters().add(this.overrideListener);
-					final Object newValue = notification.getNewValue();
-					((IOverride) newValue).eAdapters().add(this.overrideListener);
-					Display.getDefault().asyncExec(new Runnable() {
-						public void run() {
-							if (listViewer.getList().isDisposed()) {
-								return;
-							}
-							listViewer.setSelection(new StructuredSelection(newValue));
-						}
-					});
-				}
-				else if (notification.getEventType() == Notification.ADD_MANY) {
-					List<IOverride> addedList = (List<IOverride>) notification.getNewValue();
-					for (IOverride override : addedList) {
-						override.eAdapters().add(this.overrideListener);
-					}
-				}
-				else if (notification.getEventType() == Notification.REMOVE) {
-					((IOverride) notification.getOldValue()).eAdapters().remove(this.overrideListener);				
-				}
-				else if (notification.getEventType() == Notification.REMOVE_MANY) {
-					List<IOverride> removedList = (List<IOverride>) notification.getOldValue();
-					for (IOverride override : removedList) {
-						override.eAdapters().remove(this.overrideListener);
-					}
-				}
-				break;
-		}
-	}
-
-	protected void overrideChanged(Notification notification) {
-		switch (notification.getFeatureID(IOverride.class)) {
-			case JpaCoreMappingsPackage.IOVERRIDE__NAME :
-				final IOverride override = (IOverride) notification.getNotifier();
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						OverridesComposite.this.listViewer.update(override, null);
-					}
-				});
-				break;
-			default :
-				break;
-		}
-	}
-	
-	public void dispose() {
-		this.columnComposite.dispose();
-		this.joinColumnsComposite.dispose();
-		super.dispose();
-	}
-	
-
-	void addJoinColumn() {
-		JoinColumnInAssociationOverrideDialog dialog = new JoinColumnInAssociationOverrideDialog(this.getControl().getShell(), (IAssociationOverride) getSelectedOverride());
-		this.addJoinColumnFromDialog(dialog);
-	}
-	
-	private void addJoinColumnFromDialog(JoinColumnInAssociationOverrideDialog dialog) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-		int index = ((IAssociationOverride) getSelectedOverride()).getJoinColumns().size();
-		IJoinColumn joinColumn = ((IAssociationOverride) getSelectedOverride()).createJoinColumn(index);
-		((IAssociationOverride) getSelectedOverride()).getSpecifiedJoinColumns().add(joinColumn);
-		joinColumn.setSpecifiedName(dialog.getSelectedName());
-		joinColumn.setSpecifiedReferencedColumnName(dialog.getReferencedColumnName());
-	}
-
-	void editJoinColumn(IJoinColumn joinColumn) {
-		JoinColumnInAssociationOverrideDialog dialog = new JoinColumnInAssociationOverrideDialog(this.getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	private void editJoinColumnFromDialog(JoinColumnInAssociationOverrideDialog dialog, IJoinColumn joinColumn) {
-		if (dialog.open() == Window.OK) {
-			editJoinColumnDialogOkd(dialog, joinColumn);
-		}
-	}
-	
-	private void editJoinColumnDialogOkd(JoinColumnInAssociationOverrideDialog dialog, IJoinColumn joinColumn) {
-		String name = dialog.getSelectedName();
-		String referencedColumnName = dialog.getReferencedColumnName();
-
-		if (dialog.isDefaultNameSelected()) {
-			if (joinColumn.getSpecifiedName() != null) {
-				joinColumn.setSpecifiedName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedName() == null || !joinColumn.getSpecifiedName().equals(name)){
-			joinColumn.setSpecifiedName(name);
-		}
-		
-		if (dialog.isDefaultReferencedColumnNameSelected()) {
-			if (joinColumn.getSpecifiedReferencedColumnName() != null) {
-				joinColumn.setSpecifiedReferencedColumnName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null || !joinColumn.getSpecifiedReferencedColumnName().equals(referencedColumnName)){
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	private class JoinColumnsOwner extends JpaEObject implements Owner {
-		
-		IAssociationOverride associationOverride;
-		
-		public JoinColumnsOwner(IAssociationOverride associationOverride) {
-			super();
-			this.associationOverride = associationOverride;
-		}
-		
-		public void addJoinColumn() {
-			OverridesComposite.this.addJoinColumn();
-		}
-		
-		public boolean containsSpecifiedJoinColumns() {
-			return this.associationOverride.containsSpecifiedJoinColumns();
-		}
-		
-		public IJoinColumn createJoinColumn(int index) {
-			return this.associationOverride.createJoinColumn(index);
-		}
-		
-		public List<IJoinColumn> getJoinColumns() {
-			return this.associationOverride.getJoinColumns();
-		}
-		
-		public List<IJoinColumn> getSpecifiedJoinColumns() {
-			return this.associationOverride.getSpecifiedJoinColumns();
-		}
-		
-		public int specifiedJoinColumnsFeatureId() {
-			return JpaCoreMappingsPackage.IASSOCIATION_OVERRIDE__SPECIFIED_JOIN_COLUMNS;
-		}
-		
-		public Class owningFeatureClass() {
-			return IAssociationOverride.class;
-		}
-		
-		public void editJoinColumn(IJoinColumn joinColumn) {
-			OverridesComposite.this.editJoinColumn(joinColumn);
-		}
-		
-		public EObject getEObject() {
-			return this.associationOverride;
-		}
-	}
-	
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnDialog.java
deleted file mode 100644
index f7aa965..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnDialog.java
+++ /dev/null
@@ -1,37 +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
- ******************************************************************************/        
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.swt.widgets.Shell;
-
-public class PrimaryKeyJoinColumnDialog extends AbstractJoinColumnDialog<IPrimaryKeyJoinColumn> {
-
-	private IEntity entity;
-	
-	PrimaryKeyJoinColumnDialog(Shell parent, IEntity entity) {
-		super(parent);
-		this.entity = entity;
-	}
-
-	PrimaryKeyJoinColumnDialog(Shell parent, IPrimaryKeyJoinColumn joinColumn) {
-		super(parent, joinColumn);
-		this.entity = (IEntity) joinColumn.eContainer();
-	}
-
-	protected Table getNameTable() {
-		return this.entity.primaryDbTable();
-	}
-	
-	protected Table getReferencedNameTable() {
-		return this.entity.parentEntity().primaryDbTable();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnInSecondaryTableDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnInSecondaryTableDialog.java
deleted file mode 100644
index 51a220d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnInSecondaryTableDialog.java
+++ /dev/null
@@ -1,37 +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.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.swt.widgets.Shell;
-
-public class PrimaryKeyJoinColumnInSecondaryTableDialog extends AbstractJoinColumnDialog<IPrimaryKeyJoinColumn> {
-
-	private ISecondaryTable secondaryTable;
-	
-	PrimaryKeyJoinColumnInSecondaryTableDialog(Shell parent, ISecondaryTable secondaryTable) {
-		super(parent);
-		this.secondaryTable = secondaryTable;
-	}
-
-	PrimaryKeyJoinColumnInSecondaryTableDialog(Shell parent, IPrimaryKeyJoinColumn joinColumn) {
-		super(parent, joinColumn);
-		this.secondaryTable = (ISecondaryTable) joinColumn.eContainer();
-	}
-
-	protected Table getNameTable() {
-		return this.secondaryTable.dbTable();
-	}
-	
-	protected Table getReferencedNameTable() {
-		return this.secondaryTable.typeMapping().primaryDbTable();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsComposite.java
deleted file mode 100644
index d7a7524..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsComposite.java
+++ /dev/null
@@ -1,399 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IAbstractJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class PrimaryKeyJoinColumnsComposite extends BaseJpaComposite 
-{
-	private IEntity entity;
-	private final Adapter entityListener;
-	private final Adapter pkJoinColumnListener;
-	
-	ListViewer pkJoinColumnsListViewer;
-
-	private Group pkJoinColumnsGroup;
-	Button overrideDefaultJoinColumnsCheckBox;
-	private Button pkJoinColumnsRemoveButton;
-	private Button pkJoinColumnsEditButton;
-	
-	
-	public PrimaryKeyJoinColumnsComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.entityListener = buildEntityListener();
-		this.pkJoinColumnListener = buildPkJoinColumnListener();
-	}
-	
-	private Adapter buildEntityListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildPkJoinColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				pkJoinColumnChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		GridData gridData =  new GridData();
-		this.overrideDefaultJoinColumnsCheckBox = getWidgetFactory().createButton(
-			composite, 
-			JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns, 
-			SWT.CHECK);
-		this.overrideDefaultJoinColumnsCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				if (PrimaryKeyJoinColumnsComposite.this.overrideDefaultJoinColumnsCheckBox.getSelection()) {
-					IPrimaryKeyJoinColumn defaultJoinColumn = PrimaryKeyJoinColumnsComposite.this.entity.getDefaultPrimaryKeyJoinColumns().get(0);
-					String columnName = defaultJoinColumn.getDefaultName();
-					String referencedColumnName = defaultJoinColumn.getDefaultReferencedColumnName();
-					
-					IPrimaryKeyJoinColumn pkJoinColumn = PrimaryKeyJoinColumnsComposite.this.entity.createPrimaryKeyJoinColumn(0);
-					PrimaryKeyJoinColumnsComposite.this.entity.getSpecifiedPrimaryKeyJoinColumns().add(pkJoinColumn);
-					pkJoinColumn.setSpecifiedName(columnName);
-					pkJoinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-				} else {
-					PrimaryKeyJoinColumnsComposite.this.entity.getSpecifiedPrimaryKeyJoinColumns().clear();
-				}
-			}
-		});
-
-		this.pkJoinColumnsGroup = 
-			getWidgetFactory().createGroup(
-				composite, 
-				JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn);
-		this.pkJoinColumnsGroup.setLayout(new GridLayout(2, false));
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.pkJoinColumnsGroup.setLayoutData(gridData);
-			
-		this.pkJoinColumnsListViewer = new ListViewer(this.pkJoinColumnsGroup, SWT.BORDER | SWT.MULTI);
-		this.pkJoinColumnsListViewer.setContentProvider(buildJoinColumnsListContentProvider());
-		this.pkJoinColumnsListViewer.setLabelProvider(buildJoinColumnsListLabelProvider());
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.verticalSpan = 3;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.pkJoinColumnsListViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.pkJoinColumnsListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-		
-		Button addJoinColumnButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		addJoinColumnButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_add);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		addJoinColumnButton.setLayoutData(gridData);
-		addJoinColumnButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				addPrimaryKeyJoinColumn();
-			}
-		});
-		
-		this.pkJoinColumnsEditButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		this.pkJoinColumnsEditButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_edit);
-		this.pkJoinColumnsEditButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				editPrimaryKeyJoinColumn();
-			}
-		});
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.pkJoinColumnsEditButton.setLayoutData(gridData);
-
-		this.pkJoinColumnsRemoveButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		this.pkJoinColumnsRemoveButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_remove);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		this.pkJoinColumnsRemoveButton.setLayoutData(gridData);
-		this.pkJoinColumnsRemoveButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				removePrimaryKeyJoinColumn();
-			}
-		});
-		
-		this.pkJoinColumnsListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updatePrimaryKeyJoinColumnsEnablement();
-			}
-		});
-	}
-	
-	private IContentProvider buildJoinColumnsListContentProvider() {
-		return new IStructuredContentProvider(){
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-		
-			public void dispose() {
-				// do nothing
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return ((IEntity) inputElement).getPrimaryKeyJoinColumns().toArray();
-			}
-		};
-	}
-	
-	private ILabelProvider buildJoinColumnsListLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				IPrimaryKeyJoinColumn joinColumn = (IPrimaryKeyJoinColumn) element;
-				return (PrimaryKeyJoinColumnsComposite.this.entity.containsSpecifiedPrimaryKeyJoinColumns()) ?
-					buildJoinColumnLabel(joinColumn)
-				:
-					buildDefaultJoinColumnLabel(joinColumn);
-			}
-		};
-	}
-	
-	String buildDefaultJoinColumnLabel(IPrimaryKeyJoinColumn joinColumn) {
-		return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-	}
-	
-	String buildJoinColumnLabel(IPrimaryKeyJoinColumn joinColumn) {
-		if (joinColumn.getSpecifiedName() == null) {
-			if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-				return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault, joinColumn.getName(),joinColumn.getReferencedColumnName());				
-			}
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-		}
-		else {
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams, joinColumn.getName(), joinColumn.getReferencedColumnName());					
-		}
-	}
-
-	
-	void addPrimaryKeyJoinColumn() {
-		PrimaryKeyJoinColumnDialog dialog = new PrimaryKeyJoinColumnDialog(this.getControl().getShell(), this.entity);
-		addJoinColumnFromDialog(dialog);
-	}
-	
-	private void addJoinColumnFromDialog(PrimaryKeyJoinColumnDialog dialog) {
-		if (dialog.open() == Window.OK) {
-			int index = this.entity.getSpecifiedPrimaryKeyJoinColumns().size();
-			String name = dialog.getSelectedName();
-			String referencedColumnName = dialog.getReferencedColumnName();
-			IPrimaryKeyJoinColumn joinColumn = this.entity.createPrimaryKeyJoinColumn(index);
-			this.entity.getSpecifiedPrimaryKeyJoinColumns().add(joinColumn);
-			joinColumn.setSpecifiedName(name);
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	private IPrimaryKeyJoinColumn getSelectedJoinColumn() {
-		return (IPrimaryKeyJoinColumn) ((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).getFirstElement();
-	}
-
-	void editPrimaryKeyJoinColumn() {
-		IPrimaryKeyJoinColumn joinColumn = getSelectedJoinColumn();
-		PrimaryKeyJoinColumnDialog dialog = new PrimaryKeyJoinColumnDialog(this.getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	private void editJoinColumnFromDialog(PrimaryKeyJoinColumnDialog dialog, IPrimaryKeyJoinColumn joinColumn) {
-		if (dialog.open() == Window.OK) {
-			editJoinColumnDialogOkd(dialog, joinColumn);
-		}
-	}
-	
-	private void editJoinColumnDialogOkd(PrimaryKeyJoinColumnDialog dialog, IPrimaryKeyJoinColumn joinColumn) {
-		String name = dialog.getSelectedName();
-		String referencedColumnName = dialog.getReferencedColumnName();
-
-		if (dialog.isDefaultNameSelected()) {
-			if (joinColumn.getSpecifiedName() != null) {
-				joinColumn.setSpecifiedName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedName() == null || !joinColumn.getSpecifiedName().equals(name)){
-			joinColumn.setSpecifiedName(name);
-		}
-		
-		if (dialog.isDefaultReferencedColumnNameSelected()) {
-			if (joinColumn.getSpecifiedReferencedColumnName() != null) {
-				joinColumn.setSpecifiedReferencedColumnName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null || !joinColumn.getSpecifiedReferencedColumnName().equals(referencedColumnName)){
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	void removePrimaryKeyJoinColumn() {
-		ISelection selection = this.pkJoinColumnsListViewer.getSelection();
-		if (selection instanceof StructuredSelection) {
-			for (Iterator i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
-				this.entity.getPrimaryKeyJoinColumns().remove(i.next());
-			}
-		}
-	}
-	
-	void updatePrimaryKeyJoinColumnsEnablement() {
-		boolean groupEnabledState = this.entity.containsSpecifiedPrimaryKeyJoinColumns();
-		enableGroup(this.pkJoinColumnsGroup, groupEnabledState);
-
-		this.pkJoinColumnsRemoveButton.setEnabled(groupEnabledState && !((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).isEmpty());
-		this.pkJoinColumnsEditButton.setEnabled(groupEnabledState && ((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).size() == 1);
-	}
-	
-	private void enableGroup(Group group, boolean enabled) {
-		group.setEnabled(enabled);
-		for (int i = 0; i < group.getChildren().length; i++) {
-			group.getChildren()[i].setEnabled(enabled);
-		}	
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-		this.entity = (IEntity) obj;
-		if (this.entity == null) {
-			this.pkJoinColumnsListViewer.setInput(null);
-			return;
-		}
-		
-		this.pkJoinColumnsListViewer.setInput(this.entity);
-		
-
-		updatePrimaryKeyJoinColumnsEnablement();
-		this.overrideDefaultJoinColumnsCheckBox.setSelection(this.entity.containsSpecifiedPrimaryKeyJoinColumns());
-	}
-
-	@Override
-	protected void doPopulate() {
-	}
-
-	protected void engageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().add(this.entityListener);
-			for (IPrimaryKeyJoinColumn pkJoinColumn : this.entity.getPrimaryKeyJoinColumns()) {
-				pkJoinColumn.eAdapters().add(this.pkJoinColumnListener);
-			}
-			//this.addConnectionListener();		
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.entity != null) {
-			//this.removeConnectionListener();
-			for (IPrimaryKeyJoinColumn pkJoinColumn : this.entity.getPrimaryKeyJoinColumns()) {
-				pkJoinColumn.eAdapters().remove(this.pkJoinColumnListener);
-			}
-			this.entity.eAdapters().remove(this.entityListener);
-		}
-	}
-	
-	protected void entityChanged(Notification notification) {
-		if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS) {
-			if (notification.getEventType() == Notification.ADD) {
-				((IPrimaryKeyJoinColumn) notification.getNewValue()).eAdapters().add(this.pkJoinColumnListener);
-			}
-			else if (notification.getEventType() == Notification.REMOVE) {
-				((IPrimaryKeyJoinColumn) notification.getOldValue()).eAdapters().remove(this.pkJoinColumnListener);				
-			}
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					pkJoinColumnsListViewer.refresh();
-					overrideDefaultJoinColumnsCheckBox.setSelection(entity.containsSpecifiedPrimaryKeyJoinColumns());
-					updatePrimaryKeyJoinColumnsEnablement();
-				}
-			});
-		}
-	}
-
-	protected void pkJoinColumnChanged(Notification notification) {
-		if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__SPECIFIED_REFERENCED_COLUMN_NAME
-			|| notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__DEFAULT_REFERENCED_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					pkJoinColumnsListViewer.refresh();
-				}
-			});
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsInSecondaryTableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsInSecondaryTableComposite.java
deleted file mode 100644
index 3afc547..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/PrimaryKeyJoinColumnsInSecondaryTableComposite.java
+++ /dev/null
@@ -1,407 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IAbstractJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.INamedColumn;
-import org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class PrimaryKeyJoinColumnsInSecondaryTableComposite extends BaseJpaComposite 
-{
-	private ISecondaryTable secondaryTable;
-	private final Adapter secondaryTableListener;
-	private final Adapter pkJoinColumnListener;
-	
-	ListViewer pkJoinColumnsListViewer;
-
-	private Group pkJoinColumnsGroup;
-	Button overrideDefaultJoinColumnsCheckBox;
-	private Button pkJoinColumnsAddButton;
-	private Button pkJoinColumnsRemoveButton;
-	private Button pkJoinColumnsEditButton;
-	
-	
-	public PrimaryKeyJoinColumnsInSecondaryTableComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.secondaryTableListener = buildSecondaryTableListener();
-		this.pkJoinColumnListener = buildPkJoinColumnListener();
-	}
-	
-	private Adapter buildSecondaryTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				secondaryTableChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildPkJoinColumnListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				pkJoinColumnChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		GridData gridData =  new GridData();
-		this.overrideDefaultJoinColumnsCheckBox = getWidgetFactory().createButton(
-			composite, 
-			JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns, 
-			SWT.CHECK);
-		this.overrideDefaultJoinColumnsCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				if (PrimaryKeyJoinColumnsInSecondaryTableComposite.this.overrideDefaultJoinColumnsCheckBox.getSelection()) {
-					IPrimaryKeyJoinColumn defaultJoinColumn = PrimaryKeyJoinColumnsInSecondaryTableComposite.this.secondaryTable.getDefaultPrimaryKeyJoinColumns().get(0);
-					String columnName = defaultJoinColumn.getDefaultName();
-					String referencedColumnName = defaultJoinColumn.getDefaultReferencedColumnName();
-					
-					IPrimaryKeyJoinColumn pkJoinColumn = PrimaryKeyJoinColumnsInSecondaryTableComposite.this.secondaryTable.createPrimaryKeyJoinColumn(0);
-					PrimaryKeyJoinColumnsInSecondaryTableComposite.this.secondaryTable.getSpecifiedPrimaryKeyJoinColumns().add(pkJoinColumn);
-					pkJoinColumn.setSpecifiedName(columnName);
-					pkJoinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-				} else {
-					PrimaryKeyJoinColumnsInSecondaryTableComposite.this.secondaryTable.getSpecifiedPrimaryKeyJoinColumns().clear();
-				}
-			}
-		});
-
-		this.pkJoinColumnsGroup = 
-			getWidgetFactory().createGroup(
-				composite, 
-				JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn);
-		this.pkJoinColumnsGroup.setLayout(new GridLayout(2, false));
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.pkJoinColumnsGroup.setLayoutData(gridData);
-			
-		this.pkJoinColumnsListViewer = new ListViewer(this.pkJoinColumnsGroup, SWT.BORDER | SWT.MULTI);
-		this.pkJoinColumnsListViewer.setContentProvider(buildJoinColumnsListContentProvider());
-		this.pkJoinColumnsListViewer.setLabelProvider(buildJoinColumnsListLabelProvider());
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.verticalSpan = 3;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.pkJoinColumnsListViewer.getList().setLayoutData(gridData);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.pkJoinColumnsListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-		
-		this.pkJoinColumnsAddButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		this.pkJoinColumnsAddButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_add);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.pkJoinColumnsAddButton.setLayoutData(gridData);
-		this.pkJoinColumnsAddButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				addPrimaryKeyJoinColumn();
-			}
-		});
-		
-		this.pkJoinColumnsEditButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		this.pkJoinColumnsEditButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_edit);
-		this.pkJoinColumnsEditButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				editPrimaryKeyJoinColumn();
-			}
-		});
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.pkJoinColumnsEditButton.setLayoutData(gridData);
-
-		this.pkJoinColumnsRemoveButton = new Button(this.pkJoinColumnsGroup, SWT.NONE);
-		this.pkJoinColumnsRemoveButton.setText(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_remove);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		this.pkJoinColumnsRemoveButton.setLayoutData(gridData);
-		this.pkJoinColumnsRemoveButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				removePrimaryKeyJoinColumn();
-			}
-		});
-		
-		this.pkJoinColumnsListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updatePrimaryKeyJoinColumnsEnablement();
-			}
-		});
-	}
-	
-	private IContentProvider buildJoinColumnsListContentProvider() {
-		return new IStructuredContentProvider(){
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-		
-			public void dispose() {
-				// do nothing
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return ((ISecondaryTable) inputElement).getPrimaryKeyJoinColumns().toArray();
-			}
-		};
-	}
-	
-	private ILabelProvider buildJoinColumnsListLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				IPrimaryKeyJoinColumn joinColumn = (IPrimaryKeyJoinColumn) element;
-				return (PrimaryKeyJoinColumnsInSecondaryTableComposite.this.secondaryTable.containsSpecifiedPrimaryKeyJoinColumns()) ?
-					buildJoinColumnLabel(joinColumn)
-				:
-					buildDefaultJoinColumnLabel(joinColumn);
-			}
-		};
-	}
-	
-	String buildDefaultJoinColumnLabel(IPrimaryKeyJoinColumn joinColumn) {
-		return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-	}
-	
-	String buildJoinColumnLabel(IPrimaryKeyJoinColumn joinColumn) {
-		if (joinColumn.getSpecifiedName() == null) {
-			if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-				return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault, joinColumn.getName(),joinColumn.getReferencedColumnName());				
-			}
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null) {
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault, joinColumn.getName(), joinColumn.getReferencedColumnName());				
-		}
-		else {
-			return NLS.bind(JptUiMappingsMessages.PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams, joinColumn.getName(), joinColumn.getReferencedColumnName());					
-		}
-	}
-
-	
-	void addPrimaryKeyJoinColumn() {
-		PrimaryKeyJoinColumnInSecondaryTableDialog dialog = new PrimaryKeyJoinColumnInSecondaryTableDialog(this.getControl().getShell(), this.secondaryTable);
-		addJoinColumnFromDialog(dialog);
-	}
-	
-	private void addJoinColumnFromDialog(PrimaryKeyJoinColumnInSecondaryTableDialog dialog) {
-		if (dialog.open() == Window.OK) {
-			int index = this.secondaryTable.getSpecifiedPrimaryKeyJoinColumns().size();
-			String name = dialog.getSelectedName();
-			String referencedColumnName = dialog.getReferencedColumnName();
-			IPrimaryKeyJoinColumn joinColumn = this.secondaryTable.createPrimaryKeyJoinColumn(index);
-			this.secondaryTable.getSpecifiedPrimaryKeyJoinColumns().add(joinColumn);
-			joinColumn.setSpecifiedName(name);
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	private IPrimaryKeyJoinColumn getSelectedJoinColumn() {
-		return (IPrimaryKeyJoinColumn) ((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).getFirstElement();
-	}
-
-	void editPrimaryKeyJoinColumn() {
-		IPrimaryKeyJoinColumn joinColumn = getSelectedJoinColumn();
-		PrimaryKeyJoinColumnInSecondaryTableDialog dialog = new PrimaryKeyJoinColumnInSecondaryTableDialog(this.getControl().getShell(), joinColumn);
-		editJoinColumnFromDialog(dialog, joinColumn);
-	}
-	
-	private void editJoinColumnFromDialog(PrimaryKeyJoinColumnInSecondaryTableDialog dialog, IPrimaryKeyJoinColumn joinColumn) {
-		if (dialog.open() == Window.OK) {
-			editJoinColumnDialogOkd(dialog, joinColumn);
-		}
-	}
-	
-	private void editJoinColumnDialogOkd(PrimaryKeyJoinColumnInSecondaryTableDialog dialog, IPrimaryKeyJoinColumn joinColumn) {
-		String name = dialog.getSelectedName();
-		String referencedColumnName = dialog.getReferencedColumnName();
-
-		if (dialog.isDefaultNameSelected()) {
-			if (joinColumn.getSpecifiedName() != null) {
-				joinColumn.setSpecifiedName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedName() == null || !joinColumn.getSpecifiedName().equals(name)){
-			joinColumn.setSpecifiedName(name);
-		}
-		
-		if (dialog.isDefaultReferencedColumnNameSelected()) {
-			if (joinColumn.getSpecifiedReferencedColumnName() != null) {
-				joinColumn.setSpecifiedReferencedColumnName(null);
-			}
-		}
-		else if (joinColumn.getSpecifiedReferencedColumnName() == null || !joinColumn.getSpecifiedReferencedColumnName().equals(referencedColumnName)){
-			joinColumn.setSpecifiedReferencedColumnName(referencedColumnName);
-		}
-	}
-	
-	void removePrimaryKeyJoinColumn() {
-		ISelection selection = this.pkJoinColumnsListViewer.getSelection();
-		if (selection instanceof StructuredSelection) {
-			for (Iterator i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
-				this.secondaryTable.getPrimaryKeyJoinColumns().remove(i.next());
-			}
-		}
-	}
-	
-	void updatePrimaryKeyJoinColumnsEnablement() {
-		boolean groupEnabledState = this.secondaryTable.containsSpecifiedPrimaryKeyJoinColumns();
-		enableGroup(this.pkJoinColumnsGroup, groupEnabledState);
-
-		this.pkJoinColumnsRemoveButton.setEnabled(groupEnabledState && !((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).isEmpty());
-		this.pkJoinColumnsEditButton.setEnabled(groupEnabledState && ((StructuredSelection) this.pkJoinColumnsListViewer.getSelection()).size() == 1);
-	}
-	
-	private void enableGroup(Group group, boolean enabled) {
-		group.setEnabled(enabled);
-		for (int i = 0; i < group.getChildren().length; i++) {
-			group.getChildren()[i].setEnabled(enabled);
-		}	
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-		this.secondaryTable = (ISecondaryTable) obj;
-		if (this.secondaryTable == null) {
-			this.pkJoinColumnsListViewer.setInput(null);
-			return;
-		}
-		
-		this.pkJoinColumnsListViewer.setInput(this.secondaryTable);
-		
-
-		updatePrimaryKeyJoinColumnsEnablement();
-		this.overrideDefaultJoinColumnsCheckBox.setSelection(this.secondaryTable.containsSpecifiedPrimaryKeyJoinColumns());
-	}
-
-	@Override
-	protected void doPopulate() {
-	}
-
-	protected void engageListeners() {
-		if (this.secondaryTable != null) {
-			this.secondaryTable.eAdapters().add(this.secondaryTableListener);
-			for (IPrimaryKeyJoinColumn pkJoinColumn : this.secondaryTable.getPrimaryKeyJoinColumns()) {
-				pkJoinColumn.eAdapters().add(this.pkJoinColumnListener);
-			}
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.secondaryTable != null) {
-			for (IPrimaryKeyJoinColumn pkJoinColumn : this.secondaryTable.getPrimaryKeyJoinColumns()) {
-				pkJoinColumn.eAdapters().remove(this.pkJoinColumnListener);
-			}
-			this.secondaryTable.eAdapters().remove(this.secondaryTableListener);
-		}
-	}
-	
-	protected void secondaryTableChanged(Notification notification) {
-		if (notification.getFeatureID(ISecondaryTable.class) == JpaCoreMappingsPackage.ISECONDARY_TABLE__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS) {
-			if (notification.getEventType() == Notification.ADD) {
-				((IPrimaryKeyJoinColumn) notification.getNewValue()).eAdapters().add(this.pkJoinColumnListener);
-			}
-			else if (notification.getEventType() == Notification.REMOVE) {
-				((IPrimaryKeyJoinColumn) notification.getOldValue()).eAdapters().remove(this.pkJoinColumnListener);				
-			}
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					pkJoinColumnsListViewer.refresh();
-					overrideDefaultJoinColumnsCheckBox.setSelection(secondaryTable.containsSpecifiedPrimaryKeyJoinColumns());
-					updatePrimaryKeyJoinColumnsEnablement();
-				}
-			});
-		}
-	}
-
-	protected void pkJoinColumnChanged(Notification notification) {
-		if (notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__SPECIFIED_NAME
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__SPECIFIED_REFERENCED_COLUMN_NAME
-			|| notification.getFeatureID(INamedColumn.class) == JpaCoreMappingsPackage.INAMED_COLUMN__DEFAULT_NAME
-			|| notification.getFeatureID(IAbstractJoinColumn.class) == JpaCoreMappingsPackage.IABSTRACT_JOIN_COLUMN__DEFAULT_REFERENCED_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					pkJoinColumnsListViewer.refresh();
-				}
-			});
-		}
-	}
-	
-	protected void enableWidgets(boolean enabled) {
-		this.pkJoinColumnsListViewer.getControl().setEnabled(enabled);
-		this.overrideDefaultJoinColumnsCheckBox.setEnabled(enabled);
-		this.pkJoinColumnsEditButton.setEnabled(enabled);
-		this.pkJoinColumnsRemoveButton.setEnabled(enabled);
-		this.pkJoinColumnsAddButton.setEnabled(enabled);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SchemaCombo.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SchemaCombo.java
deleted file mode 100644
index 9655c22..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SchemaCombo.java
+++ /dev/null
@@ -1,327 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class SchemaCombo extends BaseJpaController
-{
-	private ITable table;
-
-	private Adapter listener;
-
-	/**
-	 * Caching the connectionProfile so we can remove the listener. If the
-	 * cached table object has been removed from the model then we no longer
-	 * have access to the parent and cannot find the connectionProfile
-	 */
-	private ConnectionProfile connectionProfile;
-
-	private ConnectionListener connectionListener;
-
-	private CCombo combo;
-
-	public SchemaCombo(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		this.listener = this.buildTableListener();
-		this.connectionListener = this.buildConnectionListener();
-	}
-
-	private Adapter buildTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				SchemaCombo.this.schemaChanged(notification);
-			}
-		};
-	}
-
-	private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-			public void aboutToClose(Connection connection) {
-			// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						SchemaCombo.this.populateShemaCombo();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						SchemaCombo.this.populateShemaCombo();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						SchemaCombo.this.populateShemaCombo();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (database == SchemaCombo.this.getDatabase()) {
-							if (!getControl().isDisposed()) {
-								SchemaCombo.this.populateShemaCombo();
-							}
-						}
-					}
-				});
-			}
-
-			public void schemaChanged(Connection connection, final Schema schema) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (schema == SchemaCombo.this.getTableSchema()) {
-							if (!getControl().isDisposed()) {
-								SchemaCombo.this.populateShemaCombo();
-							}
-						}
-					}
-				});
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-			// not interested to this event.
-			}
-		};
-	}
-
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		this.combo.add(JptUiMappingsMessages.TableComposite_defaultEmpty);
-		this.combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String schemaText = ((CCombo) e.getSource()).getText();
-				if (schemaText.equals("")) { //$NON-NLS-1$
-					schemaText = null;
-					if (SchemaCombo.this.table.getSpecifiedSchema() == null || SchemaCombo.this.table.getSpecifiedSchema().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				if (schemaText != null && combo.getItemCount() > 0 && schemaText.equals(combo.getItem(0))) {
-					schemaText = null;
-				}
-				if (SchemaCombo.this.table.getSpecifiedSchema() == null && schemaText != null) {
-					SchemaCombo.this.table.setSpecifiedSchema(schemaText);
-				}
-				if (SchemaCombo.this.table.getSpecifiedSchema() != null && !SchemaCombo.this.table.getSpecifiedSchema().equals(schemaText)) {
-					SchemaCombo.this.table.setSpecifiedSchema(schemaText);
-				}
-			}
-		});
-	}
-
-	protected void schemaChanged(Notification notification) {
-		if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_SCHEMA) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					SchemaCombo.this.populateSchemaName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_SCHEMA) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					SchemaCombo.this.populateDefaultSchemaName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_CATALOG) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					SchemaCombo.this.populateShemaCombo();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_CATALOG) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					SchemaCombo.this.populateShemaCombo();
-				}
-			});
-		}
-	}
-
-	public void doPopulate(EObject obj) {
-		this.table = (ITable) obj;
-		if (this.table != null) {
-			this.populateShemaCombo();
-		}
-		else {
-			this.connectionProfile = null;
-		}
-	}
-
-	public void doPopulate() {
-		this.populateShemaCombo();
-	}
-
-	protected Database getDatabase() {
-		return this.getConnectionProfile().getDatabase();
-	}
-
-	private ConnectionProfile getConnectionProfile() {
-		if (this.connectionProfile == null) {
-			this.connectionProfile = this.table.getJpaProject().connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-
-	private void populateShemaCombo() {
-		if (this.table == null) {
-			return;
-		}
-		this.populateDefaultSchemaName();
-		if (this.getConnectionProfile().isConnected()) {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-			Database database = this.getDatabase();
-			if (database != null) {
-				Iterator<String> schemata = database.schemaNames();
-				for (Iterator<String> stream = CollectionTools.sort(schemata); stream.hasNext();) {
-					this.combo.add(stream.next());
-				}
-			}
-		}
-		else {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-		}
-		this.populateSchemaName();
-	}
-
-	protected void populateDefaultSchemaName() {
-		String defaultSchemaName = this.table.getDefaultSchema();
-		int selectionIndex = combo.getSelectionIndex();
-		combo.setItem(0, NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultSchemaName));
-		if (selectionIndex == 0) {
-			combo.clearSelection();
-			combo.select(0);
-		}
-	}
-
-	protected void populateSchemaName() {
-		if (this.table == null) {
-			return;
-		}
-		String schemaName = this.table.getSpecifiedSchema();
-		String defaultSchemaName = this.table.getDefaultSchema();
-		if (!StringTools.stringIsEmpty(schemaName)) {
-			if (!this.combo.getText().equals(schemaName)) {
-				this.combo.setText(schemaName);
-			}
-		}
-		else {
-			if (!this.combo.getText().equals(NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultSchemaName))) {
-				this.combo.select(0);
-			}
-		}
-	}
-
-	public CCombo getCombo() {
-		return this.combo;
-	}
-
-	@Override
-	public Control getControl() {
-		return getCombo();
-	}
-
-	protected Schema getTableSchema() {
-		return this.getConnectionProfile().getDatabase().schemaNamed(table.getSchema());
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (this.table != null) {
-			this.removeConnectionListener();
-			this.table.eAdapters().remove(this.listener);
-		}
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.table != null) {
-			this.table.eAdapters().add(this.listener);
-			this.addConnectionListener();
-		}
-	}
-
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTableDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTableDialog.java
deleted file mode 100644
index 14be07b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTableDialog.java
+++ /dev/null
@@ -1,247 +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
- ******************************************************************************/        
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.Shell;
-
-public class SecondaryTableDialog extends Dialog {
-
-	//if creating a new JoinColumn, this will be null, 
-	//specify the JoinColumnOwner instead in the appropriate construtor
-	private ISecondaryTable secondaryTable;
-	private IEntity entity;
-	
-	protected Combo nameCombo;
-	protected Combo catalogCombo;
-	protected Combo schemaCombo;
-	
-	private String selectedName;
-	private String selectedSchema;
-	private String selectedCatalog;
-	
-	private boolean defaultSchemaSelected;
-	private boolean defaultCatalogSelected;
-	
-	SecondaryTableDialog(Shell parent, IEntity entity) {
-		super(parent);
-		this.entity = entity;
-	}
-
-	SecondaryTableDialog(Shell parent, ISecondaryTable secondaryTable, IEntity entity) {
-		super(parent);
-		this.secondaryTable = secondaryTable;
-		this.entity = entity;
-	}
-	
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(getTitle());
-	}
-	
-	protected String getTitle() {
-		return JptUiMappingsMessages.SecondaryTableDialog_editSecondaryTable;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		GridLayout gridLayout = (GridLayout) composite.getLayout();
-		gridLayout.numColumns = 2;
-		
-		Label nameLabel = new Label(composite, SWT.LEFT);
-		nameLabel.setText(JptUiMappingsMessages.SecondaryTableDialog_name);
-		GridData gridData = new GridData();
-		nameLabel.setLayoutData(gridData);
-		
-		this.nameCombo = new Combo(composite, SWT.LEFT);
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.nameCombo.setLayoutData(gridData);
-		populateNameCombo();
-	
-		Label catalogLabel = new Label(composite, SWT.LEFT);
-		catalogLabel.setText(JptUiMappingsMessages.SecondaryTableDialog_catalog);
-		gridData = new GridData();
-		catalogLabel.setLayoutData(gridData);
-		
-		this.catalogCombo = new Combo(composite, SWT.LEFT);
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.catalogCombo.setLayoutData(gridData);
-		populateCatalogCombo();
-
-		Label schemaLabel = new Label(composite, SWT.LEFT);
-		schemaLabel.setText(JptUiMappingsMessages.SecondaryTableDialog_schema);
-		gridData = new GridData();
-		schemaLabel.setLayoutData(gridData);
-		
-		this.schemaCombo = new Combo(composite, SWT.LEFT);
-		gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		this.schemaCombo.setLayoutData(gridData);
-		populateSchemaCombo();
-
-		return composite;
-	}
-	
-	protected Database getDatabase() {
-		return this.getConnectionProfile().getDatabase();
-	}
-	
-	private ConnectionProfile getConnectionProfile() {
-		IJpaProject project = (this.secondaryTable == null) ? this.entity.getJpaProject() : this.secondaryTable.getJpaProject();
-		return project.connectionProfile();
-	}
-	
-	protected Schema getTableSchema() {
-		Database database = this.getDatabase();
-		if (database != null) {
-			if (this.secondaryTable != null) {
-				return database.schemaNamed(this.secondaryTable.getSchema());
-			}
-			return database.schemaNamed(this.entity.getTable().getSchema());
-		}
-		return null;
-	}
-	
-	protected void populateNameCombo() {
-		Schema schema = this.getTableSchema();
-		if (schema != null) {
-			Iterator<String> tables = schema.tableNames();
-			for (Iterator<String> stream = CollectionTools.sort( tables); stream.hasNext(); ) {
-				this.nameCombo.add(stream.next());
-			}
-		}
-
-		if (getSecondaryTable() != null) {
-			if (getSecondaryTable().getSpecifiedName() != null) {
-				this.nameCombo.setText(getSecondaryTable().getSpecifiedName());
-			}
-		}
-	}
-
-	protected void populateSchemaCombo() {
-		if (getSecondaryTable() != null) {
-			this.schemaCombo.add(NLS.bind(JptUiMappingsMessages.SecondaryTableDialog_defaultSchema, getSecondaryTable().getDefaultSchema()));
-		}
-		
-		Database database = this.getDatabase();
-		
-		if (database != null) {
-			Iterator<String> schemata = database.schemaNames();
-			for (Iterator<String> stream = CollectionTools.sort(schemata); stream.hasNext(); ) {
-				this.schemaCombo.add(stream.next());
-			}
-		}
-
-		if (getSecondaryTable() != null) {
-			if (getSecondaryTable().getSpecifiedSchema() != null) {
-				this.schemaCombo.setText(getSecondaryTable().getSpecifiedSchema());
-			}
-			else {
-				this.schemaCombo.select(0);
-			}
-		}
-	}
-	
-	protected void populateCatalogCombo() {
-		if (getSecondaryTable() != null) {
-			this.catalogCombo.add(NLS.bind(JptUiMappingsMessages.SecondaryTableDialog_defaultCatalog, getSecondaryTable().getDefaultCatalog()));
-		}
-		Database database = this.getDatabase();
-		
-		if (database != null) {
-			Iterator<String> catalogs = database.catalogNames();
-			for (Iterator<String> stream = CollectionTools.sort(catalogs); stream.hasNext(); ) {
-				this.catalogCombo.add(stream.next());
-			}
-		}
-
-		if (getSecondaryTable() != null) {
-			if (getSecondaryTable().getSpecifiedCatalog() != null) {
-				this.catalogCombo.setText(getSecondaryTable().getSpecifiedCatalog());
-			}
-			else {
-				this.catalogCombo.select(0);
-			}
-		}
-	}	
-	
-	protected Combo getNameCombo() {
-		return this.nameCombo;
-	}
-	
-	protected Combo getSchemaCombo() {
-		return this.schemaCombo;
-	}
-	
-	protected Combo getCatalogCombo() {
-		return this.catalogCombo;
-	}
-	
-	protected ISecondaryTable getSecondaryTable() {
-		return this.secondaryTable;
-	}
-	
-	
-	protected String getSelectedName() {
-		return this.selectedName;
-	}
-	
-	protected String getSelectedCatalog() {
-		return this.selectedCatalog;
-	}
-	
-	protected String getSelectedSchema() {
-		return this.selectedSchema;
-	}
-	
-	protected boolean isDefaultSchemaSelected() {
-		return this.defaultSchemaSelected;
-	}
-	
-	protected boolean isDefaultCatalogSelected() {
-		return this.defaultCatalogSelected;
-	}
-		
-	public boolean close() {
-		this.selectedName = this.nameCombo.getText();
-		this.selectedSchema = this.schemaCombo.getText();
-		if (this.selectedSchema.equals("")) {
-			this.selectedSchema = null;
-		}
-		this.selectedCatalog = this.catalogCombo.getText();
-		if (this.selectedCatalog.equals("")) {
-			this.selectedCatalog = null;
-		}
-		this.defaultSchemaSelected = this.schemaCombo.getSelectionIndex() == 0;
-		this.defaultCatalogSelected = this.catalogCombo.getSelectionIndex() == 0;
-		return super.close();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java
deleted file mode 100644
index 2ff149d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java
+++ /dev/null
@@ -1,382 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-//TODO handle xml, how to handle virtual secondaryTables, adding them to xml, are they overriden, etc??
-public class SecondaryTablesComposite extends BaseJpaComposite 
-{
-	private IEntity entity;
-	private final Adapter entityListener;
-	private final Adapter secondaryTableListener;
-	
-	ListViewer secondaryTablesListViewer;
-
-	private Button addButton;
-	private Button editButton;
-	private Button removeButton;
-	
-	private PrimaryKeyJoinColumnsInSecondaryTableComposite pkJoinColumnsComposite;
-	
-	public SecondaryTablesComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-		this.entityListener = buildEntityListener();
-		this.secondaryTableListener = buildSecondaryTableListener();
-	}
-	
-	private Adapter buildEntityListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityChanged(notification);
-			}
-		};
-	}
-	
-	private Adapter buildSecondaryTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				seoncaryTableChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		
-		GridData gridData =  new GridData();
-		
-		Composite secondaryTablesComposite = new Composite(composite, SWT.NONE);
-		layout = new GridLayout(3, false);
-		layout.marginWidth = 0;
-		secondaryTablesComposite.setLayout(layout);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		secondaryTablesComposite.setLayoutData(gridData);
-	
-		this.secondaryTablesListViewer = buildSecondaryTablesListViewer(secondaryTablesComposite);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.horizontalSpan = 3;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.secondaryTablesListViewer.getList().setLayoutData(gridData);
-		//PlatformUI.getWorkbench().getHelpSystem().setHelp(this.secondaryTablesListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-		
-		Composite buttonsComposite = new Composite(secondaryTablesComposite, SWT.NONE);
-		layout = new GridLayout(3, false);
-		layout.marginWidth = 0;
-		buttonsComposite.setLayout(layout);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = SWT.END;
-		buttonsComposite.setLayoutData(gridData);
-		
-		this.addButton = new Button(buttonsComposite, SWT.NONE);
-		this.addButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_add);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.addButton.setLayoutData(gridData);
-		this.addButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				addSecondaryTable();
-			}
-		});
-		
-		this.editButton = new Button(buttonsComposite, SWT.NONE);
-		this.editButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_edit);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		this.editButton.setLayoutData(gridData);
-		this.editButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				editSecondaryTable();
-			}
-		});
-
-		this.removeButton = new Button(buttonsComposite, SWT.NONE);
-		this.removeButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_remove);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		this.removeButton.setLayoutData(gridData);
-		this.removeButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				removeSecondaryTable();
-			}
-		});
-		
-		this.pkJoinColumnsComposite = new PrimaryKeyJoinColumnsInSecondaryTableComposite(composite, this.commandStack, getWidgetFactory());
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		this.pkJoinColumnsComposite.getControl().setLayoutData(gridData);
-	}
-	
-	private ListViewer buildSecondaryTablesListViewer(Composite parent) {
-		ListViewer listViewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER);
-		listViewer.setLabelProvider(buildSecondaryTablesListLabelProvider());
-		listViewer.setContentProvider(buildSecondaryTablesListContentProvider());
-		
-		listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateEnablement();
-				secondaryTablesListSelectionChanged(event);
-			}
-		});
-
-		return listViewer;
-	}
-	
-	protected void secondaryTablesListSelectionChanged(SelectionChangedEvent event) {
-		if (((StructuredSelection) event.getSelection()).isEmpty()) {
-			this.pkJoinColumnsComposite.populate(null);
-			this.pkJoinColumnsComposite.enableWidgets(false);
-		}
-		else {
-			ISecondaryTable selectedSecondaryTable = getSelectedSecondaryTable();
-			this.pkJoinColumnsComposite.populate(selectedSecondaryTable);
-			this.pkJoinColumnsComposite.enableWidgets(true);
-		}
-	}
-
-	private IContentProvider buildSecondaryTablesListContentProvider() {
-		return new IStructuredContentProvider(){
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				// do nothing
-			}
-		
-			public void dispose() {
-				// do nothing
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return ((IEntity) inputElement).getSecondaryTables().toArray();
-			}
-		};
-	}
-	
-	private ILabelProvider buildSecondaryTablesListLabelProvider() {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				//TODO display a qualified name instead
-				ISecondaryTable secondaryTable = (ISecondaryTable) element;
-				return secondaryTable.getName();
-			}
-		};
-	}
-	
-	void addSecondaryTable() {
-		SecondaryTableDialog dialog = new SecondaryTableDialog(this.getControl().getShell(), this.entity);
-		addSecondaryTableFromDialog(dialog);
-	}
-	
-	private void addSecondaryTableFromDialog(SecondaryTableDialog dialog) {
-		if (dialog.open() == Window.OK) {
-			int index = this.entity.getSpecifiedSecondaryTables().size();
-			String name = dialog.getSelectedName();
-			String catalog = dialog.getSelectedCatalog();
-			String schema = dialog.getSelectedSchema();
-			ISecondaryTable secondaryTable = this.entity.createSecondaryTable(index);
-			this.entity.getSpecifiedSecondaryTables().add(secondaryTable);
-			secondaryTable.setSpecifiedName(name);
-			secondaryTable.setSpecifiedCatalog(catalog);
-			secondaryTable.setSpecifiedSchema(schema);
-			
-			this.secondaryTablesListViewer.setSelection(new StructuredSelection(secondaryTable));
-		}
-	}
-	
-	void editSecondaryTable() {
-		ISecondaryTable secondaryTable = getSelectedSecondaryTable();
-		SecondaryTableDialog dialog = new SecondaryTableDialog(this.getControl().getShell(), secondaryTable, this.entity);
-		editSecondaryTableFromDialog(dialog, secondaryTable);
-	}
-	
-	private void editSecondaryTableFromDialog(SecondaryTableDialog dialog, ISecondaryTable secondaryTable) {
-		if (dialog.open() == Window.OK) {
-			editSecondaryTableDialogOkd(dialog, secondaryTable);
-		}
-	}
-	
-	private void editSecondaryTableDialogOkd(SecondaryTableDialog dialog, ISecondaryTable secondaryTable) {
-		String name = dialog.getSelectedName();
-		String catalog = dialog.getSelectedCatalog();
-		String schema = dialog.getSelectedSchema();
-
-		if (secondaryTable.getSpecifiedName() == null || !secondaryTable.getSpecifiedName().equals(name)){
-			secondaryTable.setSpecifiedName(name);
-		}
-		
-		if (dialog.isDefaultCatalogSelected()) {
-			if (secondaryTable.getSpecifiedCatalog() != null) {
-				secondaryTable.setSpecifiedCatalog(null);
-			}
-		}
-		else if (secondaryTable.getSpecifiedCatalog() == null || !secondaryTable.getSpecifiedCatalog().equals(catalog)){
-			secondaryTable.setSpecifiedCatalog(catalog);
-		}
-		
-		if (dialog.isDefaultSchemaSelected()) {
-			if (secondaryTable.getSpecifiedSchema() != null) {
-				secondaryTable.setSpecifiedSchema(null);
-			}
-		}
-		else if (secondaryTable.getSpecifiedSchema() == null || !secondaryTable.getSpecifiedSchema().equals(schema)){
-			secondaryTable.setSpecifiedSchema(schema);
-		}
-	}
-
-	private ISecondaryTable getSelectedSecondaryTable() {
-		return (ISecondaryTable) ((StructuredSelection) this.secondaryTablesListViewer.getSelection()).getFirstElement();
-	}
-
-	
-	void removeSecondaryTable() {
-		ISelection selection = this.secondaryTablesListViewer.getSelection();
-		if (selection instanceof StructuredSelection) {
-			for (Iterator<ISecondaryTable> i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
-				this.entity.getSpecifiedSecondaryTables().remove(i.next());
-			}
-		}
-	}
-	
-	void updateEnablement() {
-		this.editButton.setEnabled(!((StructuredSelection) this.secondaryTablesListViewer.getSelection()).isEmpty());
-		this.removeButton.setEnabled(!((StructuredSelection) this.secondaryTablesListViewer.getSelection()).isEmpty());
-	}	
-	
-	public void doPopulate(EObject obj) {
-		this.entity = (IEntity) obj;
-		if (this.entity == null) {
-			this.secondaryTablesListViewer.setInput(null);
-			return;
-		}
-		
-		this.secondaryTablesListViewer.setInput(this.entity);
-		if (!this.entity.getSecondaryTables().isEmpty()) {
-			this.secondaryTablesListViewer.setSelection(new StructuredSelection(this.entity.getSecondaryTables().get(0)));
-		}
-		else {
-			this.secondaryTablesListViewer.setSelection(null);			
-		}
-		updateEnablement();
-	}
-
-	@Override
-	protected void doPopulate() {
-	}
-
-	protected void engageListeners() {
-		if (this.entity != null) {
-			this.entity.eAdapters().add(this.entityListener);
-			for (ISecondaryTable secondaryTable : this.entity.getSecondaryTables()) {
-				secondaryTable.eAdapters().add(this.secondaryTableListener);
-			}	
-		}
-	}
-	
-	protected void disengageListeners() {
-		if (this.entity != null) {
-			for (ISecondaryTable secondaryTable : this.entity.getSecondaryTables()) {
-				secondaryTable.eAdapters().remove(this.secondaryTableListener);
-			}
-			this.entity.eAdapters().remove(this.entityListener);
-		}
-	}
-	
-	protected void entityChanged(Notification notification) {
-		if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__SPECIFIED_SECONDARY_TABLES) {
-			if (notification.getEventType() == Notification.ADD) {
-				((ISecondaryTable) notification.getNewValue()).eAdapters().add(this.secondaryTableListener);
-			}
-			else if (notification.getEventType() == Notification.REMOVE) {
-				((ISecondaryTable) notification.getOldValue()).eAdapters().remove(this.secondaryTableListener);				
-			}
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					secondaryTablesListViewer.refresh();
-					updateEnablement();
-				}
-			});
-		}
-	}
-
-	protected void seoncaryTableChanged(Notification notification) {
-		if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_NAME
-			|| notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_CATALOG
-			|| notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_SCHEMA
-			|| notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_CATALOG
-			|| notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_SCHEMA) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					secondaryTablesListViewer.refresh();
-				}
-			});
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SequenceGeneratorComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SequenceGeneratorComposite.java
deleted file mode 100644
index 9be54c3..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SequenceGeneratorComposite.java
+++ /dev/null
@@ -1,185 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.ISequenceGenerator;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * SequenceGeneratorComposite
- */
-public class SequenceGeneratorComposite extends GeneratorComposite<ISequenceGenerator>
-{
-	private CCombo sequenceNameCombo;
-
-	private ModifyListener sequenceNameComboListener;
-
-	private ConnectionProfile connectionProfile;
-
-	public SequenceGeneratorComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-	}
-
-	protected ISequenceGenerator createGenerator() {
-		ISequenceGenerator sequenceGenerator = idMapping().createSequenceGenerator();
-		idMapping().setSequenceGenerator(sequenceGenerator);
-		return sequenceGenerator;
-	}
-	
-	protected ISequenceGenerator generator(IId idMapping) {
-		return idMapping.getSequenceGenerator();
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		GridLayout layout = new GridLayout(2, false);
-		composite.setLayout(layout);
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.SequenceGeneratorComposite_name);
-		
-		this.nameTextWidget = buildNameText(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.nameTextWidget.setLayoutData(gridData);
-		helpSystem.setHelp(this.nameTextWidget, IJpaHelpContextIds.MAPPING_SEQUENCE_GENERATOR_NAME);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.SequenceGeneratorComposite_sequence);
-		
-		this.sequenceNameCombo = buildSequenceNameCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.sequenceNameCombo.setLayoutData(gridData);
-		helpSystem.setHelp(sequenceNameCombo, IJpaHelpContextIds.MAPPING_SEQUENCE_GENERATOR_SEQUENCE);
-	}
-
-	private CCombo buildSequenceNameCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(""); //$NON-NLS-1$
-		combo.select(0);
-		combo.addModifyListener(getSequenceNameListener());
-		return combo;
-	}
-
-	private ModifyListener getSequenceNameListener() {
-		if (this.sequenceNameComboListener == null) {
-			this.sequenceNameComboListener = new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					if (isPopulating()) {
-						return;
-					}
-					String text = ((CCombo) e.getSource()).getText();
-					if (text != null && sequenceNameCombo.getItemCount() > 0 && text.equals(sequenceNameCombo.getItem(0))) {
-						text = null;
-					}
-					ISequenceGenerator generator = getGenerator();
-					if (generator == null) {
-						generator = createGenerator();
-					}
-					generator.setSpecifiedSequenceName(text);
-				}
-			};
-		}
-		return this.sequenceNameComboListener;
-	}
-
-	protected void generatorChanged(Notification notification) {
-		super.generatorChanged(notification);
-		if (notification.getFeatureID(ISequenceGenerator.class) == JpaCoreMappingsPackage.ISEQUENCE_GENERATOR__SPECIFIED_SEQUENCE_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					String sequenceName = getGenerator().getSpecifiedSequenceName();
-					if (sequenceName == null) {
-						sequenceNameCombo.select(0);
-					}
-					else if (!sequenceNameCombo.getText().equals(sequenceName)) {
-						sequenceNameCombo.setText(sequenceName);
-					}
-				}
-			});
-		}
-	}
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		super.doPopulate(obj);
-		if (obj == null) {
-			return;
-		}
-		populateSequenceNameCombo();
-	}
-
-	@Override
-	protected void doPopulate() {
-		populateSequenceNameCombo();
-	}
-	
-	private ConnectionProfile getConnectionProfile() {
-		if(this.connectionProfile == null) {
-			IJpaProject jpaProject = getGenerator().getJpaProject();
-			this.connectionProfile = jpaProject.connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-
-	private void populateSequenceNameCombo() {
-		if (this.getGenerator() == null) {
-			return;
-		}
-		this.sequenceNameCombo.setItem(0, JptUiMappingsMessages.SequenceGeneratorComposite_default);
-		if (this.getConnectionProfile().isConnected()) {
-//			this.sequenceNameCombo.remove(1, this.sequenceNameCombo.getItemCount() - 1);
-//			Schema schema = getConnectionProfile().getDatabase().schemaNamed(getGenerator().getJpaProject().getSchemaName());
-//			if (schema != null) {
-//				for (Iterator stream = CollectionTools.sort(schema.sequenceNames()); stream.hasNext();) {
-//					this.sequenceNameCombo.add((String) stream.next());
-//				}
-//			}
-		}
-		String sequenceName = this.getGenerator().getSpecifiedSequenceName();
-		if (sequenceName != null) {
-			if (!this.sequenceNameCombo.getText().equals(sequenceName)) {
-				this.sequenceNameCombo.setText(sequenceName);
-			}
-		}
-		else {
-			this.sequenceNameCombo.select(0);
-		}
-	}
-
-	protected void clear() {
-		super.clear();
-		this.sequenceNameCombo.select(0);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/StringWithDefaultChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/StringWithDefaultChooser.java
deleted file mode 100644
index 57c7624..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/StringWithDefaultChooser.java
+++ /dev/null
@@ -1,274 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class StringWithDefaultChooser extends BaseJpaController
-{
-	private StringHolder stringHolder;
-	private Adapter stringHolderListener;
-	
-	private CComboViewer comboViewer;
-
-	private static final String DEFAULT = "default";
-	
-	
-	public StringWithDefaultChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildStringHolderListener();
-	}
-	
-	
-	private void buildStringHolderListener() {
-		this.stringHolderListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				stringHolderChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		this.comboViewer = new CComboViewer(combo);
-		this.comboViewer.setContentProvider(buildContentProvider());
-		this.comboViewer.setLabelProvider(buildLabelProvider());
-		
-		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				StringWithDefaultChooser.this.selectionChanged(event.getSelection());
-			}
-		});
-		
-		combo.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					comboModified(e);
-				}
-			});
-	}
-	
-	private IContentProvider buildContentProvider() {
-		return new IStructuredContentProvider(){
-		
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		
-			public void dispose() {
-			}
-		
-			public Object[] getElements(Object inputElement) {
-				return new String[] {DEFAULT};
-			}
-		};
-	}
-	
-	
-	private IBaseLabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == DEFAULT && stringHolder.wrappedObject() != null) {
-					return stringHolder.defaultItem();
-				}
-				return super.getText(element);
-			}
-		};
-	}
-	void selectionChanged(ISelection sel) {
-		if (isPopulating()) {
-			return;
-		}
-		
-		if (sel instanceof IStructuredSelection) {
-			String selection = (String) ((IStructuredSelection) sel).getFirstElement();
-			if (this.comboViewer.getCombo().getSelectionIndex() == 0) {
-				selection = null;
-			}
-			if (this.stringHolder.getString() == null) {
-				if (selection != null) {
-					this.stringHolder.setString(selection);
-				}
-			}
-			else if (!this.stringHolder.getString().equals(selection)) {
-				this.stringHolder.setString(selection);
-			}
-		}
-	}
-	
-	private void comboModified(ModifyEvent e) {
-		if (isPopulating()) {
-			return;
-		}
-		CCombo combo = (CCombo) e.getSource();
-		combo.getSelectionIndex();
-		String text = combo.getText();
-		
-		if (text != null && combo.getItemCount() > 0 && text.equals(combo.getItem(0))) {
-			text = null;
-		}
-		if (this.stringHolder.getString() != text) {
-			this.stringHolder.setString(text);
-		}
-	}
-	
-	private void stringHolderChanged(Notification notification) {
-		if (notification.getFeatureID(this.stringHolder.featureClass()) == 
-				this.stringHolder.featureId()) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						if (getCombo().isDisposed()) {
-							return;
-						}
-						populate();
-					}
-				});
-		}
-		else if (this.stringHolder.supportsDefault()) {
-			if (notification.getFeatureID(this.stringHolder.featureClass()) == 
-				this.stringHolder.defaultFeatureId()) {
-				Display.getDefault().asyncExec(
-					new Runnable() {
-						public void run() {
-							if (getCombo().isDisposed()) {
-								return;
-							}
-							populate();
-						}
-					});
-				
-			}
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.stringHolder != null && this.stringHolder.wrappedObject() != null) {
-			this.stringHolder.wrappedObject().eAdapters().add(this.stringHolderListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.stringHolder != null && this.stringHolder.wrappedObject() != null) {
-			this.stringHolder.wrappedObject().eAdapters().remove(this.stringHolderListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.stringHolder = (StringHolder) obj;
-		this.comboViewer.setInput(this.stringHolder);
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		if (this.stringHolder.wrappedObject() == null) {
-			this.comboViewer.setSelection(StructuredSelection.EMPTY);
-			return;
-		}
-		this.comboViewer.update(this.comboViewer.getElementAt(0), null);
-
-		String string = this.stringHolder.getString();
-		if (string == null) {
-			if (((StructuredSelection) this.comboViewer.getSelection()).getFirstElement() == DEFAULT) {
-				this.comboViewer.refresh();
-			}
-			else {
-				this.comboViewer.setSelection(new StructuredSelection(DEFAULT));
-			}
-		}
-		else {
-			if (!this.comboViewer.getCombo().getText().equals(string)) {
-				this.comboViewer.getCombo().setText(string);
-			}
-		}
-	}
-	
-	public CCombo getCombo() {
-		return this.comboViewer.getCombo();
-	}
-	
-	@Override
-	public Control getControl() {
-		return getCombo();
-	}
-	/**
-	 * An interface to wrap an object that supports a string with a default setting
-	 * An object of this type must be passed in to populate(EObject)
-	 */
-	public static interface StringHolder extends EObject {
-		/**
-		 * Return the string setting from the wrapped object
-		 * @return
-		 */
-		String getString();
-		
-		/**
-		 * Set the string setting on the wrapped object
-		 * @param string
-		 */
-		void setString(String string);
-		
-		/**
-		 * Return the Class of the wrapped object
-		 * @return
-		 */
-		Class featureClass();
-		
-		/**
-		 * Return the feature id of string setting on the wrapped object
-		 * @return
-		 */
-		int featureId();
-		
-		boolean supportsDefault();
-		
-		int defaultFeatureId();
-		
-		/**
-		 * The wrapped EObject that the enum setting is stored on
-		 * @return
-		 */
-		EObject wrappedObject();
-		
-		String defaultItem();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableCombo.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableCombo.java
deleted file mode 100644
index 3304743..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableCombo.java
+++ /dev/null
@@ -1,338 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TableCombo extends BaseJpaController
-{
-	private ITable table;
-
-	private Adapter listener;
-
-	/**
-	 * Caching the connectionProfile so we can remove the listener. If the
-	 * cached table object has been removed from the model then we no longer
-	 * have access to parent and cannot find the connectionProfile
-	 */
-	private ConnectionProfile connectionProfile;
-
-	private ConnectionListener connectionListener;
-
-	private CCombo combo;
-
-	public TableCombo(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		this.listener = buildTableListener();
-		this.connectionListener = buildConnectionListener();
-	}
-
-	private Adapter buildTableListener() {
-		return new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				tableChanged(notification);
-			}
-		};
-	}
-
-	private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-			public void aboutToClose(Connection connection) {
-			// not interested to this event.
-			}
-
-			public void closed(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						TableCombo.this.populateTableCombo();
-					}
-				});
-			}
-
-			public void modified(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						TableCombo.this.populateTableCombo();
-					}
-				});
-			}
-
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-
-			public void opened(Connection connection) {
-				getCombo().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						TableCombo.this.populateTableCombo();
-					}
-				});
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (database == TableCombo.this.getDatabase()) {
-							if (!getControl().isDisposed()) {
-								TableCombo.this.populateTableCombo();
-							}
-						}
-					}
-				});
-			}
-
-			public void schemaChanged(Connection connection, final Schema schema) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						if (schema == TableCombo.this.getTableSchema()) {
-							if (!getControl().isDisposed()) {
-								TableCombo.this.populateTableCombo();
-							}
-						}
-					}
-				});
-			}
-
-			public void tableChanged(Connection connection, final Table table) {
-			// not interested to this event.
-			}
-		};
-	}
-
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		this.combo.add(JptUiMappingsMessages.TableComposite_defaultEmpty);
-		this.combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String tableText = ((CCombo) e.getSource()).getText();
-				if (tableText.equals("")) { //$NON-NLS-1$
-					tableText = null;
-					if (table.getSpecifiedName() == null || table.getSpecifiedName().equals("")) { //$NON-NLS-1$
-						return;
-					}
-				}
-				if (tableText != null && combo.getItemCount() > 0 && tableText.equals(combo.getItem(0))) {
-					tableText = null;
-				}
-				if (table.getSpecifiedName() == null && tableText != null) {
-					table.setSpecifiedName(tableText);
-				}
-				if (table.getSpecifiedName() != null && !table.getSpecifiedName().equals(tableText)) {
-					table.setSpecifiedName(tableText);
-				}
-			}
-		});
-	}
-
-	protected void tableChanged(Notification notification) {
-		if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateTableName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateDefaultTableName();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_SCHEMA) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateTableCombo();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_SCHEMA) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populateTableCombo();
-				}
-			});
-		}
-	}
-
-	public void doPopulate(EObject obj) {
-		this.table = (ITable) obj;
-		if (this.table != null) {
-			populateTableCombo();
-		}
-		else {
-			this.connectionProfile = null;
-		}
-	}
-
-	public void doPopulate() {
-		if (this.table != null) {
-			populateTableCombo();
-		}
-	}
-
-	protected Database getDatabase() {
-		return getConnectionProfile().getDatabase();
-	}
-
-	protected Schema getTableSchema() {
-		return getConnectionProfile().getDatabase().schemaNamed(table.getSchema());
-	}
-
-	private ConnectionProfile getConnectionProfile() {
-		if (this.connectionProfile == null) {
-			this.connectionProfile = this.table.getJpaProject().connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-
-	private void populateTableCombo() {
-		if (this.table == null) {
-			return;
-		}
-		// TODO don't do instanceof check here - check on Table, or isRoot check
-		// on Entity
-		// this.tableCombo.setEnabled(!(this.table instanceof
-		// SingleTableInheritanceChildTableImpl));
-		populateDefaultTableName();
-		if (getConnectionProfile().isConnected()) {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-			Schema schema = this.getTableSchema();
-			if (schema != null) {
-				Iterator<String> tables = schema.tableNames();
-				for (Iterator<String> stream = CollectionTools.sort(tables); stream.hasNext();) {
-					this.combo.add(stream.next());
-				}
-			}
-		}
-		else {
-			this.combo.remove(1, this.combo.getItemCount() - 1);
-		}
-		populateTableName();
-	}
-
-	protected void populateDefaultTableName() {
-		if (this.table == null) {
-			return;
-		}
-		String defaultTableName = table.getDefaultName();
-		int selectionIndex = combo.getSelectionIndex();
-		combo.setItem(0, NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultTableName));
-		if (selectionIndex == 0) {
-			// combo text does not update when switching between 2 mappings of
-			// the same type
-			// that both have a default column name. clear the selection and
-			// then set it again
-			combo.clearSelection();
-			combo.select(0);
-		}
-	}
-
-	protected void populateTableName() {
-		if (this.table == null) {
-			return;
-		}
-		String tableName = this.table.getSpecifiedName();
-		String defaultTableName = this.table.getDefaultName();
-		if (tableName != null) {
-			if (!this.combo.getText().equals(tableName)) {
-				this.combo.setText(tableName);
-			}
-		}
-		else {
-			if (!this.combo.getText().equals(NLS.bind(JptUiMappingsMessages.TableComposite_defaultWithOneParam, defaultTableName))) {
-				this.combo.select(0);
-			}
-		}
-	}
-
-	public CCombo getCombo() {
-		return this.combo;
-	}
-
-	@Override
-	public Control getControl() {
-		return getCombo();
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (this.table != null) {
-			this.removeConnectionListener();
-			this.table.eAdapters().remove(this.listener);
-		}
-	}
-
-	@Override
-	protected void engageListeners() {
-		if (this.table != null) {
-			this.table.eAdapters().add(this.listener);
-			this.addConnectionListener();
-		}
-	}
-
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableComposite.java
deleted file mode 100644
index cc6f99a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableComposite.java
+++ /dev/null
@@ -1,129 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-//TODO repopulate this panel based on the Entity table changing
-public class TableComposite extends BaseJpaComposite
-{
-	private ITable table;
-	
-	protected TableCombo tableCombo;
-	
-	protected CatalogCombo catalogCombo;
-	protected SchemaCombo schemaCombo;
-	
-	public TableComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;		
-		composite.setLayout(layout);	
-		
-		Group columnGroup = getWidgetFactory().createGroup(composite, JptUiMappingsMessages.TableComposite_tableSection);
-		layout = new GridLayout();
-		layout.marginHeight = 0;				
-		columnGroup.setLayout(layout);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		columnGroup.setLayoutData(gridData);
-
-		//created this composite because combos as direct children of a Group do not have a border, no clue why
-		Composite intermediaryComposite = getWidgetFactory().createComposite(columnGroup);
-		layout = new GridLayout(2, false);
-		layout.marginWidth = 0;		
-		intermediaryComposite.setLayout(layout);
-		
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace= true;
-		intermediaryComposite.setLayoutData(gridData);
-		
-		CommonWidgets.buildTableLabel(intermediaryComposite, getWidgetFactory());
-		
-		this.tableCombo = new TableCombo(intermediaryComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.tableCombo.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(tableCombo.getCombo(), IJpaHelpContextIds.ENTITY_TABLE);
-
-		CommonWidgets.buildCatalogLabel(intermediaryComposite, getWidgetFactory());
-		this.catalogCombo = new CatalogCombo(intermediaryComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.catalogCombo.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(catalogCombo.getCombo(), IJpaHelpContextIds.ENTITY_CATALOG);
-	
-		CommonWidgets.buildSchemaLabel(intermediaryComposite, getWidgetFactory());
-		this.schemaCombo = new SchemaCombo(intermediaryComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.schemaCombo.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(schemaCombo.getCombo(), IJpaHelpContextIds.ENTITY_SCHEMA);
-	}
-	
-	@Override
-	protected void engageListeners() {
-	}
-
-	@Override
-	protected void disengageListeners() {
-	}
-	
-	public void doPopulate(EObject obj) {
-		this.table = (ITable) obj;
-		this.tableCombo.populate(this.table);
-		this.catalogCombo.populate(this.table);
-		this.schemaCombo.populate(this.table);
-	}
-	
-	public void doPopulate() {
-		this.tableCombo.populate();
-		this.catalogCombo.populate();
-		this.schemaCombo.populate();
-	}
-	
-	@Override
-	public void dispose() {
-		this.catalogCombo.dispose();
-		this.schemaCombo.dispose();
-		this.tableCombo.dispose();
-		super.dispose();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java
deleted file mode 100644
index 4c2f937..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java
+++ /dev/null
@@ -1,535 +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.ui.internal.mappings.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.ITableGenerator;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TableGeneratorComposite extends GeneratorComposite<ITableGenerator>
-{
-	private CCombo tableNameCombo;
-	private CCombo pkColumnNameCombo;
-	private CCombo valueColumnNameCombo;
-	private CCombo pkColumnValueCombo;
-
-	private ConnectionListener connectionListener;
-
-	private ConnectionProfile connectionProfile;
-
-	public TableGeneratorComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-		this.connectionListener = this.buildConnectionListener();
-	}
-	
-	protected ITableGenerator createGenerator() {
-		ITableGenerator tableGenerator = idMapping().createTableGenerator();
-		idMapping().setTableGenerator(tableGenerator);
-		return tableGenerator;
-	}
-	
-	protected ITableGenerator generator(IId idMapping) {
-		return idMapping.getTableGenerator();
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		composite.setLayout(layout);
-		
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_name);
-		
-		this.nameTextWidget = buildNameText(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.nameTextWidget.setLayoutData(gridData);
-		helpSystem.setHelp(this.nameTextWidget, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_NAME);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_table);
-		
-		this.tableNameCombo = buildTableNameCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.tableNameCombo.setLayoutData(gridData);
-		helpSystem.setHelp(this.tableNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_TABLE);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_pkColumn);
-		
-		this.pkColumnNameCombo = buildPkColumnNameCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.pkColumnNameCombo.setLayoutData(gridData);
-		helpSystem.setHelp(this.pkColumnNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_valueColumn);
-		
-		this.valueColumnNameCombo = buildValueColumnNameCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.valueColumnNameCombo.setLayoutData(gridData);
-		helpSystem.setHelp(this.valueColumnNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_VALUE_COLUMN);
-		
-		getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_pkColumnValue);
-		
-		this.pkColumnValueCombo = buildPkColumnValueCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.pkColumnValueCombo.setLayoutData(gridData);
-		helpSystem.setHelp(this.pkColumnValueCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN_VALUE);
-	}
-
-	private CCombo buildTableNameCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TableGeneratorComposite_default);
-		combo.select(0);
-		combo.addModifyListener(buildTableNameListener());
-		return combo;
-	}
-
-	private CCombo buildPkColumnNameCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TableGeneratorComposite_default);
-		combo.select(0);
-		combo.addModifyListener(buildPkColumnNameListener());
-		return combo;
-	}
-
-	private CCombo buildValueColumnNameCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TableGeneratorComposite_default);
-		combo.select(0);
-		combo.addModifyListener(buildValueColumnNameListener());
-		return combo;
-	}
-
-	private CCombo buildPkColumnValueCombo(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TableGeneratorComposite_default);
-		combo.select(0);
-		combo.addModifyListener(buildPkColumnValueListener());
-		return combo;
-	}
-
-	private ModifyListener buildTableNameListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String text = ((CCombo) e.getSource()).getText();
-				if (text != null && tableNameCombo.getItemCount() > 0 && text.equals(tableNameCombo.getItem(0))) {
-					text = null;
-				}
-				ITableGenerator generator = getGenerator();
-				if (generator == null) {
-					generator = createGenerator();
-				}
-				generator.setSpecifiedTable(text);
-			}
-		};
-	}
-
-	private ModifyListener buildPkColumnNameListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String text = ((CCombo) e.getSource()).getText();
-				if (text != null && pkColumnNameCombo.getItemCount() > 0 && text.equals(pkColumnNameCombo.getItem(0))) {
-					text = null;
-				}
-				ITableGenerator generator = getGenerator();
-				if (generator == null) {
-					generator = createGenerator();
-				}
-				generator.setSpecifiedPkColumnName(text);
-			}
-		};
-	}
-
-	private ModifyListener buildValueColumnNameListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String text = ((CCombo) e.getSource()).getText();
-				if (text != null && valueColumnNameCombo.getItemCount() > 0 && text.equals(valueColumnNameCombo.getItem(0))) {
-					text = null;
-				}
-				ITableGenerator generator = getGenerator();
-				if (generator == null) {
-					generator = createGenerator();
-				}
-				generator.setSpecifiedValueColumnName(text);
-			}
-		};
-	}
-
-	private ModifyListener buildPkColumnValueListener() {
-		return new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String text = ((CCombo) e.getSource()).getText();
-				if (text != null && pkColumnValueCombo.getItemCount() > 0 && text.equals(pkColumnValueCombo.getItem(0))) {
-					text = null;
-				}
-				ITableGenerator generator = getGenerator();
-				if (generator == null) {
-					generator = createGenerator();
-				}
-				generator.setSpecifiedPkColumnValue(text);
-			}
-		};
-	}
-
-	protected void generatorChanged(Notification notification) {
-		super.generatorChanged(notification);
-		if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_TABLE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					String tableName = getGenerator().getSpecifiedTable();
-					if (tableName == null) {
-						tableNameCombo.select(0);
-					}
-					else if (!tableNameCombo.getText().equals(tableName)) {
-						tableNameCombo.setText(tableName);
-					}
-					populatePkColumnNameCombo();
-					populateValueColumnNameCombo();
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_PK_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					populatePkColumnName();
-
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_VALUE_COLUMN_NAME) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					String columnName = getGenerator().getSpecifiedValueColumnName();
-					if (columnName == null) {
-						valueColumnNameCombo.select(0);
-					}
-					else if (!valueColumnNameCombo.getText().equals(columnName)) {
-						valueColumnNameCombo.setText(columnName);
-					}
-				}
-			});
-		}
-		else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_PK_COLUMN_VALUE) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					if (getControl().isDisposed()) {
-						return;
-					}
-					String columnValue = getGenerator().getSpecifiedPkColumnValue();
-					if (columnValue == null) {
-						pkColumnValueCombo.select(0);
-					}
-					else if (!pkColumnValueCombo.getText().equals(columnValue)) {
-						pkColumnValueCombo.setText(columnValue);
-					}
-				}
-			});
-		}
-	}
-
-	@Override
-	protected void doPopulate(EObject obj) {
-		super.doPopulate(obj);
-		if (obj == null) {
-			this.connectionProfile = null;
-			return;
-		}
-		populateTableNameCombo();
-		populatePkColumnNameCombo();
-		populateValueColumnNameCombo();
-		populatePkColumnValueCombo();
-	}
-
-	@Override
-	protected void doPopulate() {
-		super.doPopulate();
-		populateTableNameCombo();
-		populatePkColumnNameCombo();
-		populateValueColumnNameCombo();
-		populatePkColumnValueCombo();
-	}
-	
-	@Override
-	protected void engageListeners() {
-		super.engageListeners();
-		if (getGenerator() != null) {
-			addConnectionListener();
-		}
-	}
-
-	@Override
-	protected void disengageListeners() {
-		if (getGenerator() != null) {
-			removeConnectionListener();
-		}
-		super.disengageListeners();
-	}
-	
-	private ConnectionProfile getConnectionProfile() {
-		if(this.connectionProfile == null) {
-			IJpaProject jpaProject = idMapping().getJpaProject();
-			this.connectionProfile = jpaProject.connectionProfile();
-		}
-		return this.connectionProfile;
-	}
-	
-
-	private void addConnectionListener() {
-		this.getConnectionProfile().addConnectionListener(this.connectionListener);
-	}
-	
-	private void removeConnectionListener() {
-		this.getConnectionProfile().removeConnectionListener(this.connectionListener);
-	}
-
-	protected Schema getSchema() {
-		if (getGenerator() != null) {
-			return this.getConnectionProfile().getDatabase().schemaNamed(getGenerator().getSchema());
-		}
-		return null;
-	}
-	private void populateTableNameCombo() {
-		if (this.getGenerator() == null) {
-			return;
-		}
-		if (this.getConnectionProfile().isConnected()) {
-			this.tableNameCombo.remove(1, this.tableNameCombo.getItemCount()-1);
-			Schema schema = this.getSchema();
-			if (schema != null) {
-				Iterator<String> tables = schema.tableNames();
-				for (Iterator<String> stream = CollectionTools.sort(tables); stream.hasNext(); ) {
-					this.tableNameCombo.add(stream.next());
-				}
-			}
-		}
-		String tableName = this.getGenerator().getSpecifiedTable();
-		if (tableName != null) {
-			if (!this.tableNameCombo.getText().equals(tableName)) {
-				this.tableNameCombo.setText(tableName);
-			}
-		}
-		else {
-			this.tableNameCombo.select(0);
-		}
-	}
-
-	private void populatePkColumnNameCombo() {
-		if (this.getGenerator() == null) {
-			return;
-		}
-		populatePkColumnChoices();
-		populatePkColumnName();
-	}
-	private void populatePkColumnChoices() {
-		this.pkColumnNameCombo.remove(1, this.pkColumnNameCombo.getItemCount() - 1);
-		
-		if (this.getConnectionProfile().isConnected()) {
-			if (!this.tableNameCombo.getText().equals(JptUiMappingsMessages.TableGeneratorComposite_default)) { // hmm,
-				// if
-				// they
-				// actually
-				// set
-				// the
-				// table
-				// to
-				// Default??
-				String tableName = this.tableNameCombo.getText();
-				Schema schema = getSchema();
-				if (schema != null) {
-					Table table = schema.tableNamed(tableName);
-					if (table != null) {
-						for (Iterator<String> stream = CollectionTools.sort(table.columnNames()); stream.hasNext();) {
-							this.pkColumnNameCombo.add(stream.next());
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	private void populatePkColumnName() {
-		String pkColumnName = this.getGenerator().getSpecifiedPkColumnName();
-		if (pkColumnName != null) {
-			if (!this.pkColumnNameCombo.getText().equals(pkColumnName)) {
-				this.pkColumnNameCombo.setText(pkColumnName);
-			}
-		}
-		else {
-			this.pkColumnNameCombo.select(0);
-		}
-	}
-
-	private void populateValueColumnNameCombo() {
-		if (this.getGenerator() == null) {
-			return;
-		}
-		if (this.getConnectionProfile().isConnected()) {
-			this.valueColumnNameCombo.remove(1, this.valueColumnNameCombo.getItemCount() - 1);
-			if (!this.tableNameCombo.getText().equals(JptUiMappingsMessages.TableGeneratorComposite_default)) { // hmm,
-				// if
-				// they
-				// actually
-				// set
-				// the
-				// table
-				// to
-				// Default??
-				String tableName = this.tableNameCombo.getText();
-				Schema schema = getSchema();
-				if (schema != null) {
-					Table table = schema.tableNamed(tableName);
-					if (table != null) {
-						for (Iterator<String> stream = CollectionTools.sort(table.columnNames()); stream.hasNext();) {
-							this.valueColumnNameCombo.add(stream.next());
-						}
-					}
-				}
-			}
-		}
-		String valueColumnName = this.getGenerator().getSpecifiedValueColumnName();
-		if (valueColumnName != null) {
-			if (!this.valueColumnNameCombo.getText().equals(valueColumnName)) {
-				this.valueColumnNameCombo.setText(valueColumnName);
-			}
-		}
-		else {
-			this.valueColumnNameCombo.select(0);
-		}
-	}
-
-	private void populatePkColumnValueCombo() {
-		if (this.getGenerator() == null) {
-			return;
-		}
-		String pkColumnValue = this.getGenerator().getSpecifiedPkColumnValue();
-		if (pkColumnValue != null) {
-			if (!this.pkColumnValueCombo.getText().equals(pkColumnValue)) {
-				this.pkColumnValueCombo.setText(pkColumnValue);
-			}
-		}
-		else {
-			this.pkColumnValueCombo.select(0);
-		}
-	}
-
-	protected void clear() {
-		super.clear();
-		this.tableNameCombo.select(0);
-		this.pkColumnNameCombo.select(0);
-		this.pkColumnValueCombo.select(0);
-		this.valueColumnNameCombo.select(0);
-	}
-	
-	private ConnectionListener buildConnectionListener() {
-		return new ConnectionListener() {
-			public void closed(Connection connection) {
-				populate();
-			}
-			
-			public void modified(Connection connection) {
-				populate();
-			}
-
-			public void opened(Connection connection) {
-				populate();
-			}
-
-			public void databaseChanged(Connection connection, final Database database) {
-				populate();
-			}
-			
-			public void schemaChanged(Connection connection, final Schema schema) {
-				populate();
-			}
-
-			private void populate() {
-				getControl().getDisplay().asyncExec( new Runnable() {
-					public void run() {
-						if (getControl().isDisposed()) {
-							return;
-						}
-						populateTableNameCombo();
-						populatePkColumnChoices();
-						populateValueColumnNameCombo();
-					}
-				});
-			}
-			
-			public void aboutToClose(Connection connection) {
-				// not interested to this event.
-			}
-			
-			public boolean okToClose(Connection connection) {
-				// not interested to this event.
-				return true;
-			}
-			
-			public void tableChanged(Connection connection, final Table table) {
-				// not interested to this event.
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java
deleted file mode 100644
index dd5e76a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java
+++ /dev/null
@@ -1,223 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.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.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TargetEntityChooser extends BaseJpaController
-{
-	private IRelationshipMapping relationshipMapping;
-	private Adapter relationshipMappingListener;
-	
-	protected CCombo targetEntityCombo;
-
-	
-	private Composite composite;
-	
-	public TargetEntityChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildRelationshipMappingListener();
-	}
-	
-	
-	private void buildRelationshipMappingListener() {
-		relationshipMappingListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				relationshipMappingChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.composite = getWidgetFactory().createComposite(parent);
-	    GridLayout gridLayout = new GridLayout();
-	    gridLayout.marginHeight = 0;
-	    gridLayout.marginWidth = 0;
-	    gridLayout.numColumns = 3;
-	    this.composite.setLayout(gridLayout);
-		
-		CommonWidgets.buildTargetEntityLabel(this.composite, getWidgetFactory());
-		
-		this.targetEntityCombo = buildTargetEntityCombo(this.composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		this.targetEntityCombo.setLayoutData(gridData);
-
-		buildTargetEntitySelectionButton(this.composite);
-
-	}
-	
-	protected CCombo buildTargetEntityCombo(Composite parent) {
-		final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
-		combo.add(JptUiMappingsMessages.TargetEntityChooser_defaultEmpty);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(combo, IJpaHelpContextIds.MAPPING_TARGET_ENTITY);
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (isPopulating()) {
-					return;
-				}
-				String targetEntityName = ((CCombo) e.getSource()).getText();
-				if (targetEntityName.equals(combo.getItem(0)) || targetEntityName.equals("")) { //$NON-NLS-1$
-					targetEntityName = null;
-				}
-				else if (!relationshipMapping.targetEntityIsValid(targetEntityName)) {
-					return;
-				}
-				relationshipMapping.setSpecifiedTargetEntity(targetEntityName);
-			}
-		});
-		return combo;
-	}
-
-
-	private void relationshipMappingChanged(Notification notification) {
-		if (notification.getFeatureID(IRelationshipMapping.class) == 
-				JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-		else if (notification.getFeatureID(IRelationshipMapping.class) == 
-			JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY) {
-		Display.getDefault().asyncExec(
-			new Runnable() {
-				public void run() {
-					populate();
-				}
-			});
-	}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (relationshipMapping != null) {
-			relationshipMapping.eAdapters().add(relationshipMappingListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.relationshipMapping != null) {
-			this.relationshipMapping.eAdapters().remove(relationshipMappingListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.relationshipMapping = (IRelationshipMapping) obj;
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		if (relationshipMapping == null) {
-			targetEntityCombo.clearSelection();
-			return;
-		}
-		String targetEntity = this.relationshipMapping.getSpecifiedTargetEntity();
-		this.targetEntityCombo.setItem(0, NLS.bind(JptUiMappingsMessages.TargetEntityChooser_defaultWithOneParam, this.relationshipMapping.getDefaultTargetEntity()));
-		if (targetEntity != null) {
-			if (!this.targetEntityCombo.getText().equals(targetEntity)) {
-				this.targetEntityCombo.setText(targetEntity);
-			}
-		}
-		else {
-			if (this.targetEntityCombo.getSelectionIndex() != 0) {
-				this.targetEntityCombo.select(0);
-			}
-		}
-	}
-	
-	@Override
-	public Control getControl() {
-		return this.composite;
-	}	
-	
-	//see  org.eclipse.pde.internal.ui.editor.plugin.rows.ClassAttributeRow
-	//for example of the hyperlink opening a resource
-	protected Button buildTargetEntitySelectionButton(Composite parent) {
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(JptUiMappingsMessages.TargetEntityChooser_browse);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				browse();
-			}
-		});
-		return button;
-	}
-	
-	protected void browse() {
-		BusyIndicator.showWhile(this.targetEntityCombo.getDisplay(), new Runnable() {
-			public void run() {
-				doOpenSelectionDialog();
-			}
-		});
-	}
-
-	private void doOpenSelectionDialog() {
-		SelectionDialog dialog;
-		try {
-			dialog = JavaUI.createTypeDialog(getControl().getShell(),
-					PlatformUI.getWorkbench().getProgressService(),
-					SearchEngine.createWorkspaceScope(),
-					IJavaElementSearchConstants.CONSIDER_ALL_TYPES, 
-			        false,
-					""); //$NON-NLS-1$
-		}
-		catch (JavaModelException e) {
-			throw new RuntimeException(e);
-		} 
-		dialog.setTitle("Select Type"); //$NON-NLS-1$
-		if (dialog.open() == Window.OK) {
-			IType type = (IType) dialog.getResult()[0];
-			this.targetEntityCombo.setText(type.getFullyQualifiedName('$'));
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TransientComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TransientComposite.java
deleted file mode 100644
index 3871e8a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TransientComposite.java
+++ /dev/null
@@ -1,43 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TransientComposite extends BaseJpaComposite 
-{
-	public TransientComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-
-	}
-	
-	
-	public void doPopulate(EObject obj) {
-	}
-	
-	public void doPopulate() {
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java
deleted file mode 100644
index fe7fb65..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java
+++ /dev/null
@@ -1,165 +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.ui.internal.mappings.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.jpt.core.internal.mappings.IBasic;
-import org.eclipse.jpt.core.internal.mappings.IVersion;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.core.internal.mappings.TemporalType;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumComboViewer.EnumHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class VersionComposite extends BaseJpaComposite 
-{
-	private IVersion version;
-	
-	private ColumnComposite columnComposite;
-
-	private EnumComboViewer temporalTypeViewer;
-	
-
-	public VersionComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, SWT.NULL, commandStack, widgetFactory);
-	}
-	@Override
-	protected void initializeLayout(Composite composite) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		
-		Control generalControl = buildGeneralComposite(composite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		generalControl.setLayoutData(gridData);
-
-	}
-	
-	private Control buildGeneralComposite(Composite composite) {
-//		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		
-		Composite generalComposite = getWidgetFactory().createComposite(composite);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		generalComposite.setLayout(layout);	
-
-		this.columnComposite = new ColumnComposite(generalComposite, this.commandStack, getWidgetFactory());
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.columnComposite.getControl().setLayoutData(gridData);		
-		
-		CommonWidgets.buildTemporalLabel(generalComposite, getWidgetFactory());
-		this.temporalTypeViewer = CommonWidgets.buildEnumComboViewer(generalComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.temporalTypeViewer.getControl().setLayoutData(gridData);
-
-		return generalComposite;
-	}
-	
-	public void doPopulate(EObject obj) {
-		this.version = (IVersion) obj;
-		if (this.version != null) {
-			this.columnComposite.populate(this.version.getColumn());
-		}
-		else {
-			this.columnComposite.populate(null);
-		}
-		this.temporalTypeViewer.populate(new TemporalTypeHolder(this.version));
-	}
-	
-	public void doPopulate() {
-		this.columnComposite.populate();
-		this.temporalTypeViewer.populate();
-	}
-	
-	protected void engageListeners() {
-	}
-	
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void dispose() {
-		this.columnComposite.dispose();
-		this.temporalTypeViewer.dispose();
-		super.dispose();
-	}
-	
-	protected IVersion getVersion() {
-		return this.version;
-	}
-	
-
-
-	
-	private class TemporalTypeHolder extends EObjectImpl implements EnumHolder {
-		
-		private IVersion version;
-		
-		TemporalTypeHolder(IVersion version) {
-			super();
-			this.version = version;
-		}
-		
-		public Object get() {
-			return this.version.getTemporal();
-		}
-		
-		public void set(Object enumSetting) {
-			this.version.setTemporal((TemporalType) enumSetting);
-		}
-		
-		public Class featureClass() {
-			return IBasic.class;
-		}
-		
-		public int featureId() {
-			return JpaCoreMappingsPackage.IVERSION__TEMPORAL;
-		}
-		
-		public EObject wrappedObject() {
-			return this.version;
-		}
-		
-		public Object[] enumValues() {
-			return TemporalType.VALUES.toArray();
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public Object defaultValue() {
-			return null;
-		}
-		
-		/**
-		 * TemporalType has no Default, return null
-		 */
-		public String defaultString() {
-			return null;
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/perspective/JpaPerspectiveFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/perspective/JpaPerspectiveFactory.java
deleted file mode 100644
index fa41ccf..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/perspective/JpaPerspectiveFactory.java
+++ /dev/null
@@ -1,77 +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.ui.internal.perspective;
-
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.progress.IProgressConstants;
-
-public class JpaPerspectiveFactory implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-
-		//Package area
-		IFolderLayout folder = layout.createFolder(
-				"left", IPageLayout.LEFT, (float) 0.25, editorArea); //$NON-NLS-1$
-		folder.addView(JavaUI.ID_PACKAGES);
-		folder.addPlaceholder(JavaUI.ID_TYPE_HIERARCHY);
-		folder.addPlaceholder(IPageLayout.ID_RES_NAV);
-
-		//Database Explorer area
-		layout.addView("org.eclipse.datatools.connectivity.DataSourceExplorerNavigator", //$NON-NLS-1$
-			IPageLayout.BOTTOM, (float) 0.60, JavaUI.ID_PACKAGES);
-
-		//Problems/Console area
-		IFolderLayout outputFolder = layout.createFolder(
-				"bottom", IPageLayout.BOTTOM, (float) 0.60, editorArea); //$NON-NLS-1$
-		outputFolder.addView(IPageLayout.ID_PROBLEM_VIEW);
-		outputFolder.addPlaceholder(IPageLayout.ID_BOOKMARKS);
-		outputFolder.addPlaceholder(IProgressConstants.PROGRESS_VIEW_ID);
-
-		//JPA Details (Split with Problems/Console area)
-		layout.addView("org.eclipse.jpt.ui.jpaDetailsView",
-				IPageLayout.RIGHT, (float) .60, "bottom");
-		
-		//JPA Structure area
-		IFolderLayout outlineFolder = layout.createFolder(
-				"right", IPageLayout.RIGHT, (float) 0.75, editorArea); //$NON-NLS-1$
-		outlineFolder.addView("org.eclipse.jpt.ui.jpaStructureView");
-		outlineFolder.addView(IPageLayout.ID_OUTLINE);
-
-		layout.addActionSet(JavaUI.ID_ACTION_SET);
-		layout.addActionSet(JavaUI.ID_ELEMENT_CREATION_ACTION_SET);
-		layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
-
-		// views - java
-		layout.addShowViewShortcut(JavaUI.ID_PACKAGES);
-		layout.addShowViewShortcut(JavaUI.ID_TYPE_HIERARCHY);
-		layout.addShowViewShortcut(JavaUI.ID_SOURCE_VIEW);
-		layout.addShowViewShortcut(JavaUI.ID_JAVADOC_VIEW);
-
-		// views - standard workbench
-		layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);
-		layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
-		layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);
-
-		// new actions - Java project creation wizard
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewClassCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard"); //$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$
-		layout.addNewWizardShortcut("org.eclipse.ui.editors.wizards.UntitledTextFileWizard");//$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/prefs/JpaPreferencePage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/prefs/JpaPreferencePage.java
deleted file mode 100644
index 77fa10c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/prefs/JpaPreferencePage.java
+++ /dev/null
@@ -1,204 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.prefs;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.ui.preferences.UserLibraryPreferencePage;
-import org.eclipse.jface.preference.IPersistentPreferenceStore;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.core.internal.prefs.JpaPreferenceConstants;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Link;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-
-public class JpaPreferencePage extends PreferencePage 
-	implements IWorkbenchPreferencePage
-{
-	public static final String ID = "org.eclipse.jpt.ui.jpaPreferencePage";
-	
-	
-	private IPersistentPreferenceStore preferences;
-	
-	private IPreferenceStore userLibPreferences;
-	
-	private Label jpaLibLabel;
-		
-	private Combo jpaLibCombo;
-	
-	private Link userLibsLink;
-		
-	
-	public JpaPreferencePage() {
-		super();
-		preferences = 
-			new ScopedPreferenceStore(
-				new InstanceScope(),
-				JptCorePlugin.getPlugin().getBundle().getSymbolicName());
-		userLibPreferences =
-			new ScopedPreferenceStore(
-				new InstanceScope(),
-				JavaCore.getPlugin().getBundle().getSymbolicName());
-	}
-	
-	public void init(IWorkbench workbench) {}
-	
-	public Control createContents(Composite parent) {
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		
-		jpaLibLabel = createLabel(container, 1, JptUiMessages.JpaPreferencePage_defaultJpaLib);
-			
-		jpaLibCombo = createCombo(container, true);
-		
-		userLibsLink =  new Link(container, SWT.NONE);
-		GridData data = new GridData(GridData.END, GridData.CENTER, false, false);
-		data.horizontalSpan = 2;
-		userLibsLink.setLayoutData(data);
-		userLibsLink.setText(JptUiMessages.JpaPreferencePage_userLibsLink);
-		userLibsLink.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					((IWorkbenchPreferenceContainer) getContainer())
-						.openPage(UserLibraryPreferencePage.ID, null);
-				}
-			}
-		);
-			
-		performDefaults();
-		return container;
-	}
-	
-	private Label createLabel(Composite container, int span, String text) {
-		Label label = new Label(container, SWT.NONE);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		label.setLayoutData(gd);
-		return label;
-	}
-	
-	private Combo createCombo(Composite container, boolean fillHorizontal) {
-		Combo combo = new Combo(container, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		if (fillHorizontal) {
-			combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-		else {
-			combo.setLayoutData(new GridData());
-		}
-		return combo;
-	}
-	
-	private void fillJpaLibs() {
-		int index = jpaLibCombo.getSelectionIndex();
-		String selectedJpaLib = null;
-		if (index >= 0) {
-			selectedJpaLib = jpaLibCombo.getItem(jpaLibCombo.getSelectionIndex());
-		}
-		
-		jpaLibCombo.clearSelection();
-		jpaLibCombo.setItems(JavaCore.getUserLibraryNames());
-		
-		if (selectedJpaLib != null) {
-			int newIndex = CollectionTools.indexOf(jpaLibCombo.getItems(), selectedJpaLib);
-			if (newIndex >= 0) {
-				jpaLibCombo.select(newIndex);
-			}
-		}
-	}
-	
-	@Override
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible) {
-			fillJpaLibs();
-		}
-	}
-	
-	public void performDefaults() {
-		fillJpaLibs();
-		String defaultLib = preferences.getString(JpaPreferenceConstants.PREF_DEFAULT_JPA_LIB);
-		int index = -1;
-		if (! StringTools.stringIsEmpty(defaultLib)) {
-			index = CollectionTools.indexOf(jpaLibCombo.getItems(), defaultLib);
-		}
-		if (index >= 0) {
-			jpaLibCombo.select(index);
-		}
-		
-		super.performDefaults();
-	}
-
-	public boolean performOk() {
-		int index = jpaLibCombo.getSelectionIndex();
-		String defaultLib = (index >= 0) ? jpaLibCombo.getItem(index) : null;
-		if (! StringTools.stringIsEmpty(defaultLib)) {
-			preferences.setValue(JpaPreferenceConstants.PREF_DEFAULT_JPA_LIB, defaultLib);
-		}
-		try {
-			preferences.save();
-		}
-		catch (IOException ioe) {
-			JptCorePlugin.log(ioe);
-		}
-		return true;
-	}
-	
-	public void dispose() {
-		// null pointer check - bug 168337
-		if (jpaLibLabel != null) jpaLibLabel.dispose();
-		if (jpaLibCombo != null) jpaLibCombo.dispose();
-		super.dispose();
-	}
-	
-	
-		
-//		private boolean libContainsJpaClasses() {
-//			return true;
-//			String jarLocation = getStringValue();
-//			String errorMessage = JptUiMessages.JpaPreferencePage_invalidJpaLib;
-//			boolean hasError = false;
-//			
-//			try {
-//				JarFile jarFile = new JarFile(jarLocation);
-//				hasError = jarFile.getEntry("javax/persistence/EntityManager.class") == null;
-//			}
-//			catch (IOException ioe) {
-//				hasError = true;
-//			}
-//			
-//			if (hasError) {
-//				showErrorMessage(errorMessage);
-//			}
-//			else {
-//				clearErrorMessage();
-//			}
-//			
-//			return ! hasError;
-//		}
-//	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/DataModelPropertyPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/DataModelPropertyPage.java
deleted file mode 100644
index cc0b64d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/DataModelPropertyPage.java
+++ /dev/null
@@ -1,309 +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.ui.internal.properties;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
-import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper;
-import org.eclipse.wst.common.frameworks.internal.ui.ValidationStatus;
-
-public abstract class DataModelPropertyPage 
-	extends PropertyPage
-	implements Listener, IDataModelListener
-{
-	protected IDataModel model;
-	
-	private ValidationStatus status = new ValidationStatus();
-	private Map validationMap;
-	private String[] validationPropertyNames;
-	private boolean isValidating = false;
-	
-	protected DataModelSynchHelper synchHelper;
-	
-	private String infopopID;
-	
-	
-	protected DataModelPropertyPage(IDataModel model) {
-		super();
-		this.model = model;
-		model.addListener(this);
-		synchHelper = initializeSynchHelper(model);
-	}
-	
-
-	/**
-	 * @return
-	 */
-	public DataModelSynchHelper initializeSynchHelper(IDataModel dm) {
-		return new DataModelSynchHelper(dm);
-	}
-
-	
-	@Override
-	protected Control createContents(Composite parent) {
-		Composite top = createTopLevelComposite(parent);
-		setupInfopop(top);
-		setDefaults();
-		addListeners();
-		initializeValidationProperties();
-		return top;
-	}
-	
-	private void initializeValidationProperties() {
-		validationPropertyNames = getValidationPropertyNames();
-		if (validationPropertyNames == null || validationPropertyNames.length == 0)
-			validationMap = Collections.EMPTY_MAP;
-		else {
-			validationMap = new HashMap(validationPropertyNames.length);
-			for (int i = 0; i < validationPropertyNames.length; i++)
-				validationMap.put(validationPropertyNames[i], new Integer(i));
-		}
-	}
-
-	/**
-	 * Subclass should return the model property names that need to be validated on this page in the
-	 * order that they should present their messages.
-	 * 
-	 * @return
-	 */
-	protected abstract String[] getValidationPropertyNames();
-
-	/**
-	 * Return the top level Composite for this page.
-	 */
-	protected abstract Composite createTopLevelComposite(Composite parent);
-
-	/**
-	 * Set up info pop hooks if set.
-	 */
-	protected void setupInfopop(Control parent) {
-		if (getInfopopID() != null)
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, getInfopopID());
-	}
-
-	/**
-	 * Setup the default values for this page. Subclasses should override to provide appropriate
-	 * defaults.
-	 */
-	protected void setDefaults() {
-		restoreDefaultSettings();
-	}
-
-	/**
-	 * Subclasses should implement this method if they have default settings that have been stored
-	 * and need to be restored.
-	 * 
-	 * @see storeDefaultSettings()
-	 */
-	protected void restoreDefaultSettings() {
-	}
-
-	/**
-	 * Add Listeners to controls at this point to avoid unnecessary events. Subclasses should
-	 * override to add listeners to its controls.
-	 */
-	protected void addListeners() {
-	}
-
-	/**
-	 * Exiting the page. Subclasses may extend.
-	 */
-	protected void exit() {
-	}
-
-	protected boolean getStatus(Integer key) {
-		return status.hasError(key);
-	}
-
-	/**
-	 * Sent when an event that the receiver has registered for occurs. If a subclass overrides this
-	 * method, it must call super.
-	 * 
-	 * @param event
-	 *            the event which occurred
-	 */
-	public void handleEvent(org.eclipse.swt.widgets.Event event) {
-	}
-
-	/**
-	 * Set the error message for this page based on the last error in the ValidationStatus.
-	 */
-	protected void setErrorMessage() {
-		String error = status.getLastErrMsg();
-		if (error == null) {
-			if (getErrorMessage() != null)
-				setErrorMessage((String) null);
-			String warning = status.getLastWarningMsg();
-			if (warning == null) {
-				if (getMessage() != null && getMessageType() == IMessageProvider.WARNING)
-					setMessage(null, IMessageProvider.WARNING);
-				else {
-					String info = status.getLastInfoMsg();
-					if (info == null) {
-						if (getMessage() != null && getMessageType() == IMessageProvider.INFORMATION)
-							setMessage(null, IMessageProvider.INFORMATION);
-					} else if (!info.equals(getMessage())) {
-						setMessage(info, IMessageProvider.INFORMATION);
-					}
-				}
-			} else if (!warning.equals(getMessage()))
-				setMessage(warning, IMessageProvider.WARNING);
-		} else if (!error.equals(getErrorMessage()))
-							setErrorMessage(error);
-						}
-
-	protected void setErrorStatus(Integer key, String errorMessage) {
-		status.setErrorStatus(key, errorMessage);
-	}
-
-	protected void setWarningStatus(Integer key, String warningMessage) {
-		status.setWarningStatus(key, warningMessage);
-	}
-	
-	protected void setInfoStatus(Integer key, String infoMessage) {
-		status.setInfoStatus(key, infoMessage);
-	}
-
-	protected void setOKStatus(Integer key) {
-		status.setOKStatus(key);
-	}
-
-	/**
-	 * This should be called by the Wizard just prior to running the performFinish operation.
-	 * Subclasses should override to store their default settings.
-	 */
-	public void storeDefaultSettings() {
-	}
-
-	/**
-	 * The page is now being validated. At this time, each control is validated and then the
-	 * controls are updated based on the results in the ValidationStatus which was updated during
-	 * <code>validateControls()</code>. Finally, it will display the last error message and it
-	 * will set the page complete. Subclasses will not typically override this method.
-	 */
-	protected void validatePage() {
-		if (!isValidating) {
-			isValidating = true;
-			try {
-				validateControlsBase();
-				updateControls();
-				setErrorMessage();
-				setValid(status.getLastErrMsg() == null);
-			} 
-			finally {
-				isValidating = false;
-			}
-		}
-	}
-
-	/**
-	 * Validate individual controls. Use validation keys to keep track of errors.
-	 * 
-	 * @see setOKStatus(Integer) and setErrorMessage(Integer, String)
-	 */
-	protected final String validateControlsBase() {
-		if (!validationMap.isEmpty()) {
-			String propName;
-			for (int i = 0; i < validationPropertyNames.length; i++) {
-				propName = validationPropertyNames[i];
-				Integer valKey = (Integer) validationMap.get(propName);
-				if (valKey != null)
-					validateProperty(propName, valKey);
-				if (!getStatus(valKey))
-					return propName;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param propertyName
-	 * @param validationkey
-	 */
-	private void validateProperty(String propertyName, Integer validationKey) {
-		setOKStatus(validationKey);
-		IStatus status1 = model.validateProperty(propertyName);
-		if (!status1.isOK()) {
-			String message = status1.isMultiStatus() ? status1.getChildren()[0].getMessage() : status1.getMessage();
-			switch (status1.getSeverity()) {
-				case IStatus.ERROR :
-					setErrorStatus(validationKey, message);
-					break;
-				case IStatus.WARNING :
-					setWarningStatus(validationKey, message);
-					break;
-				case IStatus.INFO :
-					setInfoStatus(validationKey, message);
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Update the enablement of controls after validation. Sublcasses should check the status of
-	 * validation keys to determine enablement.
-	 */
-	protected void updateControls() {
-	}
-	
-	
-	/*
-	 * If a property changes that we want to validate, force validation on this page.
-	 * 
-	 * @see org.eclipse.wst.common.frameworks.internal.operation.WTPOperationDataModelListener#propertyChanged(java.lang.String,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void propertyChanged(DataModelEvent event) {
-		String propertyName = event.getPropertyName();
-		if (validationPropertyNames != null && (event.getFlag() == DataModelEvent.VALUE_CHG || (!isValid() && event.getFlag() == DataModelEvent.VALID_VALUES_CHG))) {
-			for (int i = 0; i < validationPropertyNames.length; i++) {
-				if (validationPropertyNames[i].equals(propertyName)) {
-					validatePage();
-					break;
-				}
-			}
-		}
-	}
-
-	/**
-	 * @return Returns the model.
-	 */
-	protected IDataModel getDataModel() {
-		return model;
-	}
-
-	public void dispose() {
-		super.dispose();
-		if (synchHelper != null) {
-			synchHelper.dispose();
-			synchHelper = null;
-		}
-	}
-
-	protected String getInfopopID() {
-		return infopopID;
-	}
-
-	public void setInfopopID(String infopopID) {
-		this.infopopID = infopopID;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/JpaProjectPropertiesPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/JpaProjectPropertiesPage.java
deleted file mode 100644
index 0089adf..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/properties/JpaProjectPropertiesPage.java
+++ /dev/null
@@ -1,392 +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.ui.internal.properties;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.JpaPlatformRegistry;
-import org.eclipse.jpt.core.internal.JpaProject;
-import org.eclipse.jpt.core.internal.facet.IJpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.internal.facet.JpaFacetUtils;
-import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
-import org.eclipse.jpt.db.ui.internal.DTPUiTools;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-public class JpaProjectPropertiesPage 
-	extends DataModelPropertyPage
-	implements IJpaFacetDataModelProperties
-{
-	private PlatformGroup platformGroup;
-	
-	private ConnectionGroup connectionGroup;
-	
-	private PersistentClassManagementGroup persistentClassManagementGroup;
-	
-	
-	/**
-	 * Constructor for SamplePropertyPage.
-	 */
-	public JpaProjectPropertiesPage() {
-		super(DataModelFactory.createDataModel(new JpaFacetDataModelProvider()));
-	}
-	
-	
-	@Override
-	protected Composite createTopLevelComposite(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		
-		platformGroup = new PlatformGroup(composite);
-		connectionGroup = new ConnectionGroup(composite);
-		persistentClassManagementGroup = new PersistentClassManagementGroup(composite);
-		
-		setRuntime();
-		
-		Dialog.applyDialogFont(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJpaHelpContextIds.PROPERTIES_JAVA_PERSISTENCE);
-		
-		return composite;
-	}
-	
-	private void setRuntime() {
-		IFacetedProject facetedProject = null;
-		try {
-			facetedProject = ProjectFacetsManager.create(getJpaProject().getProject());
-		}
-		catch (CoreException ce) {
-			JptUiPlugin.log(ce);
-			return;
-		}
-		IRuntime runtime = facetedProject.getPrimaryRuntime();
-		model.setProperty(IJpaFacetDataModelProperties.RUNTIME, runtime);
-	}
-	
-	@Override
-	protected String[] getValidationPropertyNames() {
-		return new String[] {
-			IJpaFacetDataModelProperties.PLATFORM_ID,
-			IJpaFacetDataModelProperties.CONNECTION,
-			IJpaFacetDataModelProperties.DISCOVER_ANNOTATED_CLASSES
-		};
-	}
-	
-	protected JpaProject getJpaProject() {
-		return (JpaProject) getElement().getAdapter(IJpaProject.class);
-	}
-	
-	private Combo createCombo(Composite container, boolean fillHorizontal) {
-		Combo combo = new Combo(container, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		if (fillHorizontal) {
-			combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-		else {
-			combo.setLayoutData(new GridData());
-		}
-		return combo;
-	}
-	
-	private Button createButton(Composite container, int span, String text, int style) {
-		Button button = new Button(container, SWT.NONE | style);
-		button.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		button.setLayoutData(gd);
-		return button;
-	}
-	
-	protected void performDefaults() {
-		platformGroup.performDefaults();
-		connectionGroup.performDefaults();
-		persistentClassManagementGroup.performDefaults();
-	}
-	
-	public boolean performOk() {
-		JpaProject jpaProject = getJpaProject();
-		
-		// the facet has been uninstalled during our trip to the properties ...
-		if (jpaProject == null) {
-			return true;
-		}
-		
-		try {
-			JpaFacetUtils.setPlatform(jpaProject.getProject(), model.getStringProperty(IJpaFacetDataModelProperties.PLATFORM_ID));
-			JpaFacetUtils.setConnectionName(jpaProject.getProject(), model.getStringProperty(IJpaFacetDataModelProperties.CONNECTION));
-			JpaFacetUtils.setDiscoverAnnotatedClasses(jpaProject.getProject(), model.getBooleanProperty(IJpaFacetDataModelProperties.DISCOVER_ANNOTATED_CLASSES));
-		}
-		catch (CoreException ce) {
-			return false;
-		}
-		
-		buildProject();
-		
-		return true;
-	}
-	
-	private void buildProject() {
-		IRunnableWithProgress r= new IRunnableWithProgress() {
-			public void run(IProgressMonitor pm) throws InvocationTargetException {
-				try {
-					getJpaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD, pm);
-				} 
-				catch (CoreException ce) {
-					JptUiPlugin.log(ce);
-				}
-			}
-		};
-		try {
-			PlatformUI.getWorkbench().getProgressService().run(true, false, r);
-		}
-		catch (InterruptedException ie) { /* nothing to do */ }
-		catch (InvocationTargetException ie) { /* nothing to do */ }
-	}
-	
-	
-	private final class PlatformGroup
-	{
-		private final ComboViewer platformCombo;
-		
-		
-		public PlatformGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_platformLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			// TODO
-			// PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IDaliHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE);
-			
-			platformCombo = new ComboViewer(createCombo(group, true));
-			platformCombo.setContentProvider(
-					new IStructuredContentProvider() {
-						public Object[] getElements(Object inputElement) {
-							return CollectionTools.array(JpaPlatformRegistry.INSTANCE.allJpaPlatformIds());
-						}
-						
-						public void dispose() {}
-						
-						public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-					}
-				);
-			platformCombo.setLabelProvider(
-					new ILabelProvider() {
-						public Image getImage(Object element) {
-							return null;
-						}
-						
-						public String getText(Object element) {
-							return JpaPlatformRegistry.INSTANCE.getJpaPlatformLabel((String) element);
-						}
-						
-						public void addListener(ILabelProviderListener listener) {}
-						
-						public void removeListener(ILabelProviderListener listener) {}
-						
-						public void dispose() {}
-						
-						public boolean isLabelProperty(Object element, String property) {
-							return true;
-						}
-					}
-				);
-			platformCombo.addSelectionChangedListener(
-					new ISelectionChangedListener() {
-						public void selectionChanged(SelectionChangedEvent event) {
-							model.setProperty(PLATFORM_ID, ((StructuredSelection) platformCombo.getSelection()).getFirstElement());
-						}
-					}
-				);
-			// we need some input here, even if it means absolutely nothing
-			platformCombo.setInput("null input");
-			performDefaults();
-		}
-		
-		private void performDefaults() {
-			String platformId = getJpaProject().getPlatform().getId();
-			model.setProperty(PLATFORM_ID, platformId);
-			platformCombo.setSelection(new StructuredSelection(platformId));
-		}
-	}
-	
-	
-	private final class ConnectionGroup
-	{
-		private final Combo connectionCombo;
-		
-		private Link connectionLink;
-		
-		
-		public ConnectionGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_connectionLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			
-			connectionCombo = createCombo(group, true);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.PROPERTIES_JAVA_PERSISTENCE_CONNECTION);
-			connectionCombo.addSelectionListener(
-					new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setProperty(CONNECTION, connectionCombo.getItem(connectionCombo.getSelectionIndex()));
-						}
-					}
-				);
-			fillConnections();
-			
-			connectionLink = new Link(group, SWT.NONE);
-			GridData data = new GridData(GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			connectionLink.setLayoutData(data);
-			connectionLink.setText(JptUiMessages.JpaFacetWizardPage_connectionLink);
-			connectionLink.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						openNewConnectionWizard();				
-					}
-				}
-			);
-			performDefaults();
-		}
-
-		private void fillConnections() {
-			//clear out connection entries from previous login.
-			connectionCombo.removeAll();
-			
-			for (Iterator<String> stream = ConnectionProfileRepository.instance().profileNames(); stream.hasNext(); ) {
-				connectionCombo.add(stream.next());
-			}
-		}
-		
-		private void performDefaults() {
-			String connectionName = getJpaProject().getDataSource().getConnectionProfileName();
-			model.setProperty(CONNECTION, connectionName);
-			if (connectionName == null) {
-				connectionCombo.clearSelection();
-			}
-			else {
-				connectionCombo.setText(connectionName);
-			}
-		}
-		
-		private void openNewConnectionWizard() {
-			String connectionName = DTPUiTools.createNewProfile();
-			if (connectionName != null) {
-				fillConnections();
-				model.setProperty(CONNECTION, connectionName);
-				connectionCombo.select(connectionCombo.indexOf(connectionName));
-			}
-		}
-	}
-	
-	
-	private final class PersistentClassManagementGroup
-	{
-		private final Button discoverClassesButton;
-		
-		private final Button listClassesButton;
-		
-		
-		public PersistentClassManagementGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_persistentClassManagementLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_CLASSPATH);
-			
-			discoverClassesButton = createButton(group, 1, JptUiMessages.JpaFacetWizardPage_discoverClassesButton, SWT.RADIO);
-			discoverClassesButton.addSelectionListener(
-				new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(DISCOVER_ANNOTATED_CLASSES, true);
-						}
-					}
-				);
-			
-			listClassesButton = createButton(group, 1, JptUiMessages.JpaFacetWizardPage_listClassesButton, SWT.RADIO);
-			listClassesButton.addSelectionListener(
-				new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(DISCOVER_ANNOTATED_CLASSES, false);
-						}
-					}
-				);
-			
-			model.addListener(
-					new IDataModelListener() {
-						public void propertyChanged(DataModelEvent event) {
-							if (DISCOVER_ANNOTATED_CLASSES.equals(event.getPropertyName())) {
-								boolean discoverClasses = (Boolean) event.getProperty();
-								discoverClassesButton.setSelection(discoverClasses);
-								listClassesButton.setSelection(! discoverClasses);
-							}
-						}
-					}
-				);
-			
-			performDefaults();
-		}
-		
-		private void performDefaults() {
-			boolean discoverClasses = getJpaProject().isDiscoverAnnotatedClasses();
-			model.setProperty(DISCOVER_ANNOTATED_CLASSES, discoverClasses);
-			discoverClassesButton.setSelection(discoverClasses);
-			listClassesButton.setSelection(! discoverClasses);
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/AbstractSelectionParticipant.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/AbstractSelectionParticipant.java
deleted file mode 100644
index 52408ef..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/AbstractSelectionParticipant.java
+++ /dev/null
@@ -1,20 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-public abstract class AbstractSelectionParticipant 
-	implements ISelectionParticipant 
-{
-	protected ISelectionManager selectionManager;
-	
-	
-	protected AbstractSelectionParticipant(ISelectionManager theSelectionManager) {
-		selectionManager = theSelectionManager;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionManager.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionManager.java
deleted file mode 100644
index df7fd63..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionManager.java
+++ /dev/null
@@ -1,45 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-public interface ISelectionManager 
-{	
-	/**
-	 * Return the current selection.  
-	 * This will never be null, but it may be <code>Selection.NULL_SELECTION</code>.
-	 */
-	public Selection getCurrentSelection();
-	
-	/**
-	 * Not to be called lightly, this will affect the selection for all interested
-	 * objects in a window.
-	 * The newSelection will be selected.
-	 */
-	public void select(Selection newSelection);
-	
-	/**
-	 * Not to be called lightly, this will affect the selection for all interested
-	 * objects in a window.
-	 * The oldSelection will be deselected, iff it matches the current selection.
-	 */
-	public void deselect(Selection oldSelection);
-	
-	/**
-	 * This may be used to register a part with the selection manager if the part
-	 * is known to need access to the selection manager before it is ever activated
-	 * or in the case it may be activated prior to the selection manager being 
-	 * created.
-	 * 
-	 * It should not be necessary to deregister a part, as that happens when the 
-	 * part is closed.
-	 */
-	public void register(IWorkbenchPart part);	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionParticipant.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionParticipant.java
deleted file mode 100644
index 7657d00..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/ISelectionParticipant.java
+++ /dev/null
@@ -1,38 +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
- *  
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-public interface ISelectionParticipant 
-{
-	/**
-	 * Return the current selection of the participant
-	 */
-	Selection getSelection();
-	
-	/**
-	 * The selection has changed in the central selection manager.
-	 * Update this participant accordingly.
-	 */
-	void selectionChanged(SelectionEvent evt);
-	
-	/**
-	 * Return whether this selection participant should disconnect itself from
-	 * its part when its part is hidden from view.
-	 * <b>Typically</b> editor participants will return true and view participants will
-	 * return false.
-	 */
-	boolean disposeOnHide();
-	
-	/**
-	 * This participant is no longer needed (most likely because its part has 
-	 * closed).  Dispose of it.
-	 */
-	void dispose();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaDetailsSelectionParticipant.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaDetailsSelectionParticipant.java
deleted file mode 100644
index 9e84ab4..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaDetailsSelectionParticipant.java
+++ /dev/null
@@ -1,41 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.jpt.ui.internal.views.JpaDetailsView;
-
-
-public class JpaDetailsSelectionParticipant extends AbstractSelectionParticipant 
-{
-	private JpaDetailsView detailsView;
-	
-	
-	public JpaDetailsSelectionParticipant(
-				ISelectionManager theSelectionManager, JpaDetailsView view) {
-		super(theSelectionManager);
-		detailsView = view;
-	}
-	
-	
-	public Selection getSelection() {
-		return detailsView.getSelection();
-	}
-
-	public void selectionChanged(SelectionEvent evt) {
-		detailsView.select(evt.getSelection());
-	}
-	
-	public boolean disposeOnHide() {
-		return false;
-	}
-	
-	public void dispose() {
-		// no op
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaStructureSelectionParticipant.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaStructureSelectionParticipant.java
deleted file mode 100644
index bfa9499..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/JpaStructureSelectionParticipant.java
+++ /dev/null
@@ -1,56 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jpt.ui.internal.views.JpaStructureView;
-
-public class JpaStructureSelectionParticipant 
-	extends AbstractSelectionParticipant 
-{
-	private JpaStructureView structureView;
-	
-	private ISelectionChangedListener structureViewListener;
-	
-	
-	public JpaStructureSelectionParticipant(
-				ISelectionManager theSelectionManager, JpaStructureView theOutlineView) {
-		super(theSelectionManager);
-		structureView = theOutlineView;
-		structureViewListener = new StructureViewSelectionListener();
-		structureView.addSelectionChangedListener(structureViewListener);
-	}
-	
-	
-	public Selection getSelection() {
-		return structureView.getSelection();
-	}
-	
-	public void selectionChanged(SelectionEvent evt) {
-		structureView.select(evt.getSelection());
-	}
-	
-	public boolean disposeOnHide() {
-		return false;
-	}
-	
-	public void dispose() {
-		// no op
-	}
-	
-	
-	private class StructureViewSelectionListener 
-		implements ISelectionChangedListener
-	{
-		public void selectionChanged(SelectionChangedEvent event) {
-			selectionManager.select(structureView.getSelection());
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/Selection.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/Selection.java
deleted file mode 100644
index c02d684..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/Selection.java
+++ /dev/null
@@ -1,70 +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
- *  
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-
-
-public class Selection 
-{
-	public static Selection NULL_SELECTION = new Selection();
-	
-	private IJpaContentNode selectedNode;
-	
-	
-	/* Used internally - only for NULL_SELECTION */
-	private Selection() {}
-	
-	public Selection(IJpaContentNode node) {
-		if (node == null) {
-			throw new IllegalArgumentException("Must have non-null node.  Use NULL_SELECTION otherwise.");
-		}
-		
-		selectedNode = node;
-	}
-	
-	public IJpaContentNode getSelectedNode() {
-		return selectedNode;
-	}
-	
-	public boolean equals(Object obj) {
-		if (! (obj instanceof Selection)) {
-			return false;
-		}
-		
-		if (this == NULL_SELECTION && obj == NULL_SELECTION) {
-			return true;
-		}
-		
-		if (this == NULL_SELECTION || obj == NULL_SELECTION) {
-			return false;
-		}
-		
-		return this.selectedNode.equals(((Selection) obj).selectedNode);
-	}
-	
-	public int hashCode() {
-		if (this == NULL_SELECTION) {
-			return super.hashCode();
-		}
-		else {
-			return this.selectedNode.hashCode();
-		}
-	}
-	
-	public String toString() {
-		if (this == NULL_SELECTION) {
-			return "NULL_SELECTION";
-		}
-		else {
-			return selectedNode.toString();
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionEvent.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionEvent.java
deleted file mode 100644
index 1020ef3..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionEvent.java
+++ /dev/null
@@ -1,64 +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
- *  
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import java.util.EventObject;
-
-public class SelectionEvent extends EventObject 
-{
-	/**
-	 * Serializable uid
-	 * @since 0.5
-	 */
-	private static final long serialVersionUID = 1L;
-    
-	
-	/**
-	 * Indicates that the selection object is now selected
-	 */
-	public static int SELECTION = 1;
-	
-	/**
-	 * Indicates that the selection object has now been deselected
-	 */
-	public static int DESELECTION = 2;
-	
-	
-	/**
-	 * The selection object whose selection status has changed
-	 */
-	private Selection selection;
-	
-	/**
-	 * The type of the selection event, either a SELECTION or a DESELECTION
-	 */
-	private int type;
-	
-	
-	public SelectionEvent(Selection theSelection, int theType, Object source) {
-		super(source);
-		selection = theSelection;
-		type = theType;
-	}
-	
-	/**
-	 * Return the selection object whose selection status has changed
-	 */
-	public Selection getSelection() {
-		return selection;
-	}
-	
-	/**
-	 * Return the type of selection event, either a SELECTION or a DESELECTION
-	 */
-	public int getType() {
-		return type;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManager.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManager.java
deleted file mode 100644
index e9af08d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManager.java
+++ /dev/null
@@ -1,264 +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
- *  
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * A <code>SelectionManager</code> stores the current <code>Selection</code> and 
- * notifies <code>ISelectionListener</code>s when the selection changes.
- */
-public class SelectionManager
-	implements ISelectionManager
-{
-	/* The set of pages for which this object is managing selections */
-	private Set pages;
-	
-	/* The map of <code>ISelectionParticipant</code>s (keyed by part) this object
-	   is using to manage selections */
-	private Map selectionParticipants;
-	
-	private IPageListener pageListener;
-	
-	private IPartListener2 partListener;
-	
-	/* The window for which this object manages selections */
-	private IWorkbenchWindow window;
-	
-	private Selection currentSelection;
-	
-	
-	public SelectionManager() {
-		super();
-		pages = Collections.synchronizedSet(new HashSet());
-		selectionParticipants = Collections.synchronizedMap(new HashMap());
-		pageListener = new PageListener();
-		partListener = new PartListener();
-		currentSelection = Selection.NULL_SELECTION;
-	}
-	
-	public void init(IWorkbenchWindow aWindow) {
-		window = aWindow;
-		aWindow.addPageListener(pageListener);
-		initPage(aWindow.getActivePage());
-	}
-	
-	private void initPage(IWorkbenchPage page) {
-		if ((page != null) && (! pages.contains(page))) {
-			page.addPartListener(partListener);
-			pages.add(page);
-			IEditorPart activeEditor = page.getActiveEditor();
-			initPart(activeEditor);
-			selectPart(activeEditor);
-		}
-	}
-	
-	private void disposePage(IWorkbenchPage page) {
-		if ((page != null) && (pages.contains(page))) {
-			page.removePartListener(partListener);
-			pages.remove(page);
-		}
-	}
-	
-	private void initPart(IWorkbenchPart part) {
-		if (part != null) {
-			if (selectionParticipants.get(part) == null) {
-				ISelectionParticipant selectionParticipant = 
-					(ISelectionParticipant) part.getAdapter(ISelectionParticipant.class);
-				if (selectionParticipant != null) {
-					selectionParticipants.put(part, selectionParticipant);
-				}
-			}
-		}
-	}
-	
-	private void selectPart(IWorkbenchPart part) {
-		ISelectionParticipant selectionParticipant = getSelectionParticipant(part);
-		if (selectionParticipant != null) {
-			select(selectionParticipant.getSelection());
-		}
-	}
-	
-	private void hidePart(IWorkbenchPart part) {
-		ISelectionParticipant selectionParticipant = getSelectionParticipant(part);
-		if ((selectionParticipant != null) && (selectionParticipant.disposeOnHide())) {
-			closePart(part);
-		}
-	}
-	
-	private void closePart(IWorkbenchPart part) {
-		ISelectionParticipant selectionParticipant = getSelectionParticipant(part);
-		if (selectionParticipant != null) {
-			disposePart(part);
-			checkForNoEditors();
-		}
-	}
-	
-	private void disposePart(IWorkbenchPart part) {
-		if ((part != null) && (selectionParticipants.containsKey(part))) {
-			ISelectionParticipant selectionParticipant = 
-				(ISelectionParticipant) selectionParticipants.remove(part);
-			selectionParticipant.dispose();
-		}
-	}
-	
-	private void checkForNoEditors() {
-		IWorkbenchPage activePage = window.getActivePage();
-		if ((activePage == null)
-				|| (activePage.getActiveEditor() == null)) {
-			select(Selection.NULL_SELECTION);
-		}
-	}
-	
-	/**
-	 * This may be used to register a part with the selection manager if the part
-	 * is known to need access to the selection manager before it is ever activated
-	 * or in the case it may be activated prior to the selection manager being 
-	 * created.
-	 * 
-	 * It should not be necessary to deregister a part, as that happens when the 
-	 * part is closed.
-	 */
-	public void register(IWorkbenchPart part) {
-		initPart(part);
-	}
-	
-	/**
-	 * Not to be called lightly, this will affect the selection for all interested
-	 * objects in a window.
-	 * The newSelection will be selected.
-	 */
-	public void select(Selection newSelection) {
-		if (currentSelection.equals(newSelection)) {
-			return;
-		}
-		
-		currentSelection = newSelection;
-		fireSelectionChange(
-			new SelectionEvent(newSelection, SelectionEvent.SELECTION, this)
-		);
-	}
-	
-	/**
-	 * Not to be called lightly, this will affect the selection for all interested
-	 * objects in a window.
-	 * The oldSelection will be deselected, iff it matches the current selection.
-	 */
-	public void deselect(Selection oldSelection) {
-		if (currentSelection.equals(oldSelection)) {
-			currentSelection = Selection.NULL_SELECTION;
-			fireSelectionChange(
-				new SelectionEvent(oldSelection, SelectionEvent.DESELECTION, this)
-			);
-		}
-	}
-	
-	private void fireSelectionChange(SelectionEvent event) {
-		for (Iterator stream = selectionParticipants.values().iterator(); stream.hasNext(); ) {
-			((ISelectionParticipant) stream.next()).selectionChanged(event);
-		}
-	}
-	
-	private ISelectionParticipant getSelectionParticipant(IWorkbenchPart part) {
-		return (ISelectionParticipant) selectionParticipants.get(part);
-	}
-		
-	public Selection getCurrentSelection() {
-		return currentSelection;
-	}
-	
-	public void dispose() {
-		window.removePageListener(pageListener);
-		selectionParticipants.clear();
-		
-		for (Iterator stream = new CloneIterator(pages); stream.hasNext(); ) {
-			disposePage((IWorkbenchPage) stream.next());
-		}
-		
-		for (Iterator stream = new CloneIterator(selectionParticipants.keySet()); stream.hasNext(); ) {
-			disposePart((IWorkbenchPart) stream.next());
-		}
-	}
-	
-	
-	private class PageListener implements IPageListener
-	{
-		public void pageActivated(IWorkbenchPage page) {}
-		
-		public void pageClosed(IWorkbenchPage page) {
-			disposePage(page);
-		}
-		
-		public void pageOpened(IWorkbenchPage page) {
-			initPage(page);
-		}
-	}
-	
-	
-	private class PartListener implements IPartListener2
-	{
-		public void partActivated(IWorkbenchPartReference partRef) {
-			IWorkbenchPart part = partRef.getPart(false);
-			if (part != null) {
-				initPart(part);
-				selectPart(part);
-			}
-		}
-		
-		public void partBroughtToTop(IWorkbenchPartReference partRef) {}
-		
-		public void partClosed(IWorkbenchPartReference partRef) {
-			IWorkbenchPart part = partRef.getPart(false);
-			if (part != null) {
-				closePart(part);
-				disposePart(part);
-				checkForNoEditors();
-			}
-		}
-		
-		public void partDeactivated(IWorkbenchPartReference partRef) {}
-		
-		public void partHidden(IWorkbenchPartReference partRef) {
-			IWorkbenchPart part = partRef.getPart(false);
-			if (part != null) {
-				hidePart(part);
-			}
-		}
-		
-		public void partInputChanged(IWorkbenchPartReference partRef) {}
-		
-		public void partOpened(IWorkbenchPartReference partRef) {
-			IWorkbenchPart part = partRef.getPart(false);
-			if (part != null) {
-				initPart(part);
-			}
-		}
-		
-		public void partVisible(IWorkbenchPartReference partRef) {
-			IWorkbenchPart part = partRef.getPart(false);
-			if (part != null) {
-				initPart(part);
-			}
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManagerFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManagerFactory.java
deleted file mode 100644
index 1cfe6e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionManagerFactory.java
+++ /dev/null
@@ -1,103 +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
- *  
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public class SelectionManagerFactory 
-{
-	private static SelectionManagerFactory INSTANCE;
-	
-	private static Object MUTEX = new Object();
-	
-	
-	/**
-	 * Each <code>IWorkbenchWindow</code> has its own <code>SelectionManager</code> 
-	 * to track the selection events in the <code>IWorkbenchWindow</code>. All 
-	 * <code>ISelectionListener</code>s in the same <code>IWorkbenchWindow</code> 
-	 * share the same <code>SelectionManager</code>.
-	 * 
-	 * @return The <code>SelectionManager</code> associated with the current 
-	 * <code>IWorkbenchWindow</code>
-	 */
-	public static ISelectionManager getSelectionManager(IWorkbenchWindow window) {
-		if (INSTANCE == null) {
-			// this is thread safe for now. you never know whats comming
-			synchronized (MUTEX) {
-				if(INSTANCE == null) {
-					INSTANCE = new SelectionManagerFactory();
-					// if we do the init inside the constructor we end up in a loop
-					// because the addWindowListener(this) does a callback to us
-					INSTANCE.init();
-				}
-			}
-		}
-		return INSTANCE.internalGetSelectionManager(window);
-	}
-	
-	
-	private Map managers;
-	
-	private WindowListener windowListener;
-	
-	
-	private SelectionManagerFactory() {
-		managers = new HashMap();
-		windowListener = new WindowListener();
-	}
-	
-	private void init() {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		workbench.addWindowListener(windowListener);
-	}
-	
-	/**
-	 * Returns the SelectionManager for the IWorkbenchWindow.
-	 * Creates a new one if none exists yet.
-	 */
-	private SelectionManager internalGetSelectionManager(IWorkbenchWindow window) {
-		if (window == null) {
-			throw new IllegalArgumentException(window.toString());
-		}
-		
-		if (! managers.containsKey(window)) {
-			SelectionManager manager = new SelectionManager();
-			this.managers.put(window, manager);
-			manager.init(window);
-		}
-		
-		return (SelectionManager) managers.get(window);
-	}
-	
-	
-	private class WindowListener implements IWindowListener
-	{
-		/* @see IWindowListener#windowOpened(IWorkbenchWindow) */
-		public void windowOpened(IWorkbenchWindow aWindow) {}
-		
-		/* @see IWindowListener#windowClosed(IWorkbenchWindow) */
-		public void windowClosed(IWorkbenchWindow aWindow) {
-			SelectionManager manager = internalGetSelectionManager(aWindow);
-			manager.dispose();
-			managers.remove(aWindow);
-		}
-		
-		/* @see IWindowListener#windowActivated(IWorkbenchWindow) */
-		public void windowActivated(IWorkbenchWindow aWindow) {}
-		
-		/* @see IWindowListener#windowDeactivated(IWorkbenchWindow) */
-		public void windowDeactivated(IWorkbenchWindow aWindow) {}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionParticipantFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionParticipantFactory.java
deleted file mode 100644
index 2c90739..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/SelectionParticipantFactory.java
+++ /dev/null
@@ -1,50 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jpt.ui.internal.views.JpaDetailsView;
-import org.eclipse.jpt.ui.internal.views.JpaStructureView;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-public class SelectionParticipantFactory 
-	implements IAdapterFactory
-{
-	/* @see IAdapterFactory#getAdapter(Object, Class) */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (! (adaptableObject instanceof IWorkbenchPart)) {
-			return null;
-		}
-		
-		ISelectionManager selectionManager = 
-			SelectionManagerFactory.getSelectionManager(((IWorkbenchPart) adaptableObject).getSite().getWorkbenchWindow());
-		// TODO - turn this into extension point
-		if (adaptableObject instanceof ITextEditor) {
-			return new TextEditorSelectionParticipant(
-							selectionManager, (ITextEditor) adaptableObject);
-		}
-		else if (adaptableObject instanceof JpaStructureView) {
-			return new JpaStructureSelectionParticipant(
-							selectionManager, (JpaStructureView) adaptableObject);
-		}
-		else if (adaptableObject instanceof JpaDetailsView) {
-			return new JpaDetailsSelectionParticipant(
-							selectionManager, (JpaDetailsView) adaptableObject);
-		}
-		else {
-			return null;
-		}
-	}
-	
-	/* @see IAdapterFactory#getAdapterList() */
-	public Class[] getAdapterList() {
-		return new Class[] { ISelectionParticipant.class };
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/TextEditorSelectionParticipant.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/TextEditorSelectionParticipant.java
deleted file mode 100644
index 0c13777..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/selection/TextEditorSelectionParticipant.java
+++ /dev/null
@@ -1,164 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.selection;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.core.internal.ITextRange;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.ui.internal.views.AbstractJpaView;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-public class TextEditorSelectionParticipant 
-	extends AbstractSelectionParticipant 
-{
-	private ITextEditor editor;
-	
-	private IPropertyListener editorInputListener;
-	
-	private ISelectionChangedListener editorSelectionListener;
-	
-	private Selection currentSelection;
-	
-	private boolean suppressNotification = false;
-	
-	
-	public TextEditorSelectionParticipant(ISelectionManager theSelectionManager, ITextEditor theEditor) {
-		super(theSelectionManager);
-		editor = theEditor;
-		editorInputListener = new EditorInputListener();
-		editor.addPropertyListener(editorInputListener);
-		editorSelectionListener = new EditorSelectionListener();
-		((IPostSelectionProvider) editor.getSelectionProvider()).addPostSelectionChangedListener(editorSelectionListener);
-		currentSelection = calculateSelection();
-	}
-	
-	private void editorInputChanged() {
-		Selection newSelection = calculateSelection();
-		
-		if (! newSelection.equals(currentSelection)) {
-			currentSelection = newSelection;
-			
-			if (! suppressNotification) {
-				selectionManager.select(newSelection);
-			}
-		}
-	}
-	
-	private void editorSelectionChanged(SelectionChangedEvent event) {
-		Selection newSelection = calculateSelection();
-		
-		if (! newSelection.equals(currentSelection)) {
-			currentSelection = newSelection;
-			
-			// bug 188344 - won't actively change selection manager selection if 
-			// a "JPA" view is the active (and presumably selecting) view
-			if (editor.getEditorSite().getPage().getActivePart() instanceof AbstractJpaView) {
-				return;
-			}
-			
-			if (! suppressNotification) {
-				selectionManager.select(newSelection);
-			}
-		}
-	}
-	
-	private Selection calculateSelection() {
-		if (editor == null) {
-			return Selection.NULL_SELECTION;
-		}
-		
-		ISelection selection = editor.getSelectionProvider().getSelection();
-		IJpaFile persistenceFile = persistenceFileFor(editor.getEditorInput());
-		
-		if ((persistenceFile == null)
-			|| (! (selection instanceof ITextSelection))) {
-			return Selection.NULL_SELECTION;
-		}
-		
-		IJpaContentNode selectedNode = persistenceFile.getContentNode(((ITextSelection) selection).getOffset());
-		if (selectedNode == null) {
-			return Selection.NULL_SELECTION;
-		}
-		return new Selection(selectedNode);
-	}
-	
-	public Selection getSelection() {
-		return currentSelection;
-	}
-	
-	public IJpaFile persistenceFileFor(IEditorInput input) {
-		IFile file = null;
-		if (input instanceof IFileEditorInput) {
-			IFileEditorInput fileInput = (IFileEditorInput) input;
-			file = fileInput.getFile();
-		}
-		if (file == null) {
-			return null;
-		}
-		return JptCorePlugin.getJpaFile(file);
-	}
-		
-	public void selectionChanged(SelectionEvent evt) {
-		Selection newSelection = evt.getSelection();
-		
-		if ((getSelection().equals(newSelection))
-			|| (newSelection == Selection.NULL_SELECTION)) {
-			return;
-		}
-		
-		suppressNotification = true;
-		IJpaContentNode selectedNode = newSelection.getSelectedNode();
-		
-		ITextRange textRange = selectedNode.selectionTextRange();
-		if (textRange != null) {
-			this.editor.selectAndReveal(textRange.getOffset(), textRange.getLength());
-		}
-		suppressNotification = false;
-	}
-	
-	public boolean disposeOnHide() {
-		return true;
-	}
-	
-	public void dispose() {
-		this.editor.removePropertyListener(this.editorInputListener);
-		((IPostSelectionProvider) this.editor.getSelectionProvider()).removePostSelectionChangedListener(editorSelectionListener);
-	}
-	
-	
-	private class EditorInputListener
-		implements IPropertyListener
-	{
-		public void propertyChanged(Object source, int propId) {
-			if ((editor == source) && (propId == IEditorPart.PROP_INPUT)) {
-				editorInputChanged();
-			}
-		}
-	}
-	
-	
-	private class EditorSelectionListener
-		implements ISelectionChangedListener 
-	{
-		public void selectionChanged(SelectionChangedEvent event) {
-			editorSelectionChanged(event);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/IJpaStructureProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/IJpaStructureProvider.java
deleted file mode 100644
index 90899ca..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/IJpaStructureProvider.java
+++ /dev/null
@@ -1,31 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.structure;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-public interface IJpaStructureProvider 
-{
-
-	String fileContentType();
-	
-	/**
-	 * Build an outline content provider.
-	 */
-	ITreeContentProvider buildContentProvider();
-	
-	/**
-	 * Build an outline label provider.
-	 */
-	ILabelProvider buildLabelProvider();
-	
-	void dispose();
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/SWTUtil.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/SWTUtil.java
deleted file mode 100644
index 1f14002..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/SWTUtil.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jpt.ui.internal.util;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.widgets.Table;
-
-//copied from jdt.internal.ui.util
-public class SWTUtil {
-
-	public static int getTableHeightHint(Table table, int rows) {
-		if (table.getFont().equals(JFaceResources.getDefaultFont()))
-			table.setFont(JFaceResources.getDialogFont());
-		int result= table.getItemHeight() * rows + table.getHeaderHeight();
-		if (table.getLinesVisible())
-			result+= table.getGridLineWidth() * (rows - 1);
-		return result;		
-	}	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/TableLayoutComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/TableLayoutComposite.java
deleted file mode 100644
index cd51349..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/util/TableLayoutComposite.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jpt.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-
-/**
- * A special composite to layout columns inside a table. The composite is needed since we have
- * to layout the columns "before" the actual table gets layouted. Hence we can't use a normal
- * layout manager.
- * 
- * copied from jdt.internal.ui.util
- */
-public class TableLayoutComposite extends Composite {
-
-	/**
-	 * The number of extra pixels taken as horizontal trim by the table column. 
-	 * To ensure there are N pixels available for the content of the column,
-	 * assign N+COLUMN_TRIM for the column width.
-	 * 
-	 * @since 3.1
-	 */
-	private static int COLUMN_TRIM = "carbon".equals(SWT.getPlatform()) ? 24 : 3; //$NON-NLS-1$
-	
-	private List columns= new ArrayList();
-
-	/**
-	 * Creates a new <code>TableLayoutComposite</code>.
-	 */
-	public TableLayoutComposite(Composite parent, int style) {
-		super(parent, style);
-        addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                Rectangle area= getClientArea();
-                Table table= (Table)getChildren()[0];
-                Point preferredSize= computeTableSize(table);
-                int width= area.width - 2 * table.getBorderWidth();
-                if (preferredSize.y > area.height) {
-                    // Subtract the scrollbar width from the total column width
-                    // if a vertical scrollbar will be required
-                    Point vBarSize = table.getVerticalBar().getSize();
-                    width -= vBarSize.x;
-                }
-                layoutTable(table, width, area, table.getSize().x < area.width);
-            }
-        });
-	}
-	
-	/**
-	 * Adds a new column of data to this table layout.
-	 *
-	 * @param data the column layout data
-	 */
-	public void addColumnData(ColumnLayoutData data) {
-		columns.add(data);
-	}
-	
-	//---- Helpers -------------------------------------------------------------------------------------
-	
-	private Point computeTableSize(Table table) {
-		Point result= table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		
-		int width= 0;
-		int size= columns.size();
-		for (int i= 0; i < size; ++i) {
-			ColumnLayoutData layoutData= (ColumnLayoutData) columns.get(i);
-			if (layoutData instanceof ColumnPixelData) {
-				ColumnPixelData col= (ColumnPixelData) layoutData;
-				width += col.width;
-				if (col.addTrim) {
-					width += COLUMN_TRIM;
-				}
-			} else if (layoutData instanceof ColumnWeightData) {
-				ColumnWeightData col= (ColumnWeightData) layoutData;
-				width += col.minimumWidth;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-		if (width > result.x)
-			result.x= width;
-		return result;
-	}
-	
-	private void layoutTable(Table table, int width, Rectangle area, boolean increase) {
-		// XXX: Layout is being called with an invalid value the first time
-		// it is being called on Linux. This method resets the
-		// Layout to null so we make sure we run it only when
-		// the value is OK.
-		if (width <= 1)
-			return;
-
-		TableColumn[] tableColumns= table.getColumns();
-		int size= Math.min(columns.size(), tableColumns.length);
-		int[] widths= new int[size];
-		int fixedWidth= 0;
-		int numberOfWeightColumns= 0;
-		int totalWeight= 0;
-
-		// First calc space occupied by fixed columns
-		for (int i= 0; i < size; i++) {
-			ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-			if (col instanceof ColumnPixelData) {
-				ColumnPixelData cpd= (ColumnPixelData) col;
-				int pixels= cpd.width;
-				if (cpd.addTrim) {
-					pixels += COLUMN_TRIM;
-				}
-				widths[i]= pixels;
-				fixedWidth += pixels;
-			} else if (col instanceof ColumnWeightData) {
-				ColumnWeightData cw= (ColumnWeightData) col;
-				numberOfWeightColumns++;
-				// first time, use the weight specified by the column data, otherwise use the actual width as the weight
-				// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-				int weight= cw.weight;
-				totalWeight += weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-
-		// Do we have columns that have a weight
-		if (numberOfWeightColumns > 0) {
-			// Now distribute the rest to the columns with weight.
-			int rest= width - fixedWidth;
-			int totalDistributed= 0;
-			for (int i= 0; i < size; ++i) {
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					ColumnWeightData cw= (ColumnWeightData) col;
-					// calculate weight as above
-					// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-					int weight= cw.weight;
-					int pixels= totalWeight == 0 ? 0 : weight * rest / totalWeight;
-					if (pixels < cw.minimumWidth)
-						pixels= cw.minimumWidth;
-					totalDistributed += pixels;
-					widths[i]= pixels;
-				}
-			}
-
-			// Distribute any remaining pixels to columns with weight.
-			int diff= rest - totalDistributed;
-			for (int i= 0; diff > 0; ++i) {
-				if (i == size)
-					i= 0;
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					++widths[i];
-					--diff;
-				}
-			}
-		}
-		
-		if (increase) {
-			table.setSize(area.width, area.height);
-		}
-		for (int i= 0; i < size; i++) {
-			tableColumns[i].setWidth(widths[i]);
-		}
-		if (!increase) {
-			table.setSize(area.width, area.height);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/AbstractJpaView.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/AbstractJpaView.java
deleted file mode 100644
index e5d7cfc..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/AbstractJpaView.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/********************************************************************************
- * Copyright (c) 2006, 2007 Versant. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Versant and Others. - initial API and implementation
- ********************************************************************************/
-package org.eclipse.jpt.ui.internal.views;
-
-import org.eclipse.jpt.ui.internal.selection.ISelectionManager;
-import org.eclipse.jpt.ui.internal.selection.Selection;
-import org.eclipse.jpt.ui.internal.selection.SelectionManagerFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class AbstractJpaView extends ViewPart 
-{	
-	protected PageBook pageBook;
-	
-	protected Composite defaultComposite;
-	
-	
-	/**
-	 * The string to display when there is no view content
-	 */
-	private String defaultLabel;
-	
-	private TabbedPropertySheetWidgetFactory widgetFactory;
-	
-	
-	public AbstractJpaView(String aDefaultLabel) {
-		super();
-		defaultLabel = aDefaultLabel;
-		this.widgetFactory = new TabbedPropertySheetWidgetFactory();
-	}
-	
-	/* @see IWorkbenchPart#createPartControl(Composite) */
-	public final void createPartControl(Composite parent) {
-		pageBook = new PageBook(parent, SWT.NONE);
-		defaultComposite = buildDefaultComposite();
-		pageBook.showPage(defaultComposite);
-		
-		subcreatePartControl(parent);
-		
-		ISelectionManager selectionManager = 
-			SelectionManagerFactory.getSelectionManager(getViewSite().getWorkbenchWindow());
-		selectionManager.register(this);
-		select(selectionManager.getCurrentSelection());
-	}
-	
-	protected void subcreatePartControl(Composite parent) {
-		// no op - for subclasses to override if wished
-	}
-	
-	private Composite buildDefaultComposite() {
-		Composite composite = getWidgetFactory().createComposite(pageBook, SWT.NONE);
-		composite.setLayout(new FillLayout(SWT.VERTICAL));
-		Label label = getWidgetFactory().createLabel(composite, defaultLabel);
-		return composite;
-	}
-	
-	public abstract void select(Selection aSelection);
-	
-	protected void showDefaultPage() {
-		pageBook.showPage(defaultComposite);
-	}
-	
-	/* @see IWorkbenchPart#setFocus() */
-	public void setFocus() {
-		pageBook.setFocus();
-	}
-	
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return this.widgetFactory;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java
deleted file mode 100644
index d4654f0..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java
+++ /dev/null
@@ -1,167 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.views;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.ui.internal.IJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.PlatformRegistry;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsPage;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.jpt.ui.internal.selection.Selection;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-
-public class JpaDetailsView extends AbstractJpaView 
-{	
-	private Selection currentSelection;
-	
-	private IJpaDetailsPage currentPage;
-	
-	/* key: String file content id,  value: IJpaDetailsProvider */
-	private Map<String, IJpaDetailsProvider> detailsProviders;
-	
-	/* key: Object content node id,  value: Composite page */
-	private Map<Object, IJpaDetailsPage> detailsPages;
-	
-	public JpaDetailsView() {
-		super(JptUiMessages.JpaDetailsView_viewNotAvailable);
-		this.currentSelection = Selection.NULL_SELECTION;
-		this.detailsProviders = new HashMap<String, IJpaDetailsProvider>();
-		this.detailsPages = new HashMap<Object, IJpaDetailsPage>();
-	}
-	
-	
-	public Selection getSelection() {
-		return currentSelection;
-	}
-	
-	public void select(Selection newSelection) {
-		if (newSelection.equals(currentSelection)) {
-			return;
-		}
-		
-		currentSelection = newSelection;
-		
-		if (newSelection != Selection.NULL_SELECTION) {
-			IJpaContentNode newNode = newSelection.getSelectedNode();
-			IJpaDetailsPage newPage = getDetailsPage(newNode);
-			setCurrentPage(newPage);
-		}
-		else if (currentSelection != Selection.NULL_SELECTION) {
-			setCurrentPage(null);
-		}
-	}
-	
-	private IJpaDetailsPage getDetailsPage(IJpaContentNode contentNode) {
-		if (detailsPages.containsKey(contentNode.getId())) {
-			IJpaDetailsPage page =  detailsPages.get(contentNode.getId());
-			
-			if ((page != null) &&
-					(page.getControl().isDisposed())) {
-				detailsPages.remove(contentNode.getId());
-			}
-			else {
-				return page;
-			}
-		}
-		
-		return buildDetailsPage(contentNode);
-	}
-	
-	private IJpaDetailsPage buildDetailsPage(IJpaContentNode contentNode) {
-		IJpaDetailsProvider detailsProvider =
-					getDetailsProvider(contentNode);
-			
-		if (detailsProvider == null) {
-			return null;
-		}
-		Composite parentComposite = getWidgetFactory().createComposite(pageBook, SWT.NONE);
-		parentComposite.setLayout(new FillLayout(SWT.VERTICAL));
-		IJpaDetailsPage page = 
-			detailsProvider.buildDetailsPage(parentComposite, contentNode.getId(), getWidgetFactory());
-		
-		if (page != null) {
-			detailsPages.put(contentNode.getId(), page);
-		}
-		
-		return page;
-	}
-	
-	private IJpaDetailsProvider getDetailsProvider(IJpaContentNode contentNode) {
-		String contentId = contentNode.getJpaFile().getContentId();
-		IJpaDetailsProvider provider = detailsProviders.get(contentId);
-		
-		if (provider == null) {
-			String platformId = contentNode.getJpaProject().getPlatform().getId();
-			IJpaPlatformUi jpaPlatformUI = PlatformRegistry.INSTANCE.getJpaPlatform(platformId);
-			for (IJpaDetailsProvider p : jpaPlatformUI.detailsProviders()) {
-				if (p.fileContentType().equals(contentId)) {
-					provider = p;
-					break;
-				}
-			}
-			
-			//TODO this view and the detailsProviders Map is not created on a per project basis.
-			//the detailsProviders and their fileContentTypes could overlap across project, this would cause problems with storing this map.
-			
-			if (provider != null) {
-				detailsProviders.put(contentId, provider);
-			}
-		}
-		
-		return provider;	
-	}
-	
-	private void setCurrentPage(IJpaDetailsPage newPage) {
-		// depopulate old page
-		if ((currentPage != null) && (currentPage != newPage)) {
-			currentPage.populate(null);
-		}
-		
-		// populate new page
-		if (newPage != null) {
-			newPage.populate(currentSelection.getSelectedNode());
-		}
-		
-		currentPage = newPage;
-		
-		// show new page
-		if (newPage == null) {
-			showDefaultPage();
-		}
-		else {
-			pageBook.showPage(newPage.getControl().getParent());
-		}
-	}
-	
-	public void dispose() {
-		for (Iterator<String> stream = new CloneIterator<String>(detailsProviders.keySet()); stream.hasNext(); ) {
-			String key = stream.next();
-			IJpaDetailsProvider provider = detailsProviders.remove(key);
-			provider.dispose();
-		}
-		
-		for (Iterator<Object> stream = new CloneIterator<Object>(detailsPages.keySet()); stream.hasNext(); ) {
-			Object key = stream.next();
-			IJpaDetailsPage detailsPage = detailsPages.remove(key);
-			detailsPage.dispose();
-		}
-		
-		currentSelection = Selection.NULL_SELECTION;
-		currentPage = null;
-
-		super.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java
deleted file mode 100644
index 154ada0..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java
+++ /dev/null
@@ -1,223 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.views;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.ui.internal.IJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.PlatformRegistry;
-import org.eclipse.jpt.ui.internal.jface.NullLabelProvider;
-import org.eclipse.jpt.ui.internal.jface.NullTreeContentProvider;
-import org.eclipse.jpt.ui.internal.selection.Selection;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-public class JpaStructureView extends AbstractJpaView 
-{
-	private StructureComposite structureComposite;
-	
-	
-	public JpaStructureView() {
-		super(JptUiMessages.JpaStructureView_viewNotAvailable);
-	}
-	
-	
-	@Override
-	public void subcreatePartControl(Composite parent) {
-		structureComposite = 
-			new StructureComposite(pageBook, SWT.NULL);
-	}
-		
-	public Selection getSelection() {
-		if (structureComposite.isVisible()) {
-			return structureComposite.getSelection(); 
-		}
-		else {
-			return Selection.NULL_SELECTION;
-		}
-	}
-	
-	@Override
-	public void select(Selection newSelection) {
-		Selection currentSelection = getSelection();
-		
-		if (newSelection.equals(currentSelection)) {
-			return;
-		}
-		
-		if (newSelection == Selection.NULL_SELECTION) {
-			showDefaultPage();
-		}
-		else {
-			pageBook.showPage(structureComposite);
-		}
-		
-		structureComposite.select(newSelection);
-	}
-	
-	
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		structureComposite.viewer.addSelectionChangedListener(listener);
-	}
-	
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		structureComposite.viewer.removeSelectionChangedListener(listener);
-	}
-	
-	
-	private class StructureComposite extends Composite 
-	{
-		/* key: String file content id,  value: IJpaStructureProvider */
-		private Map structureProviders;
-		
-		private TreeViewer viewer;
-		
-		private StructureComposite(Composite parent, int style) {
-			super(parent, style);
-			
-			structureProviders = new HashMap();
-			
-			this.setLayout(new FillLayout());
-			
-			viewer = new TreeViewer(this, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-			viewer.setAutoExpandLevel(2);
-			initContextMenu();
-		}
-		
-	    protected void initContextMenu() {
-	        // Create dynamic menu mgr.  Dynamic is currently required to
-	        // support action contributions.
-	        MenuManager mgr = new MenuManager();
-	        mgr.setRemoveAllWhenShown(true);
-	        mgr.addMenuListener(new IMenuListener() {
-	            public void menuAboutToShow(IMenuManager mgr) {
-	                fillContextMenu(mgr);
-	            }
-	        });
-	        Menu menu = mgr.createContextMenu(viewer.getControl());
-	        viewer.getControl().setMenu(menu);
-	        getSite().registerContextMenu(mgr, viewer);
-	       	        
-	    }	
-	    
-	    /**
-	     * Called when the context menu is about to open.
-	     * Delegates to the action group using the viewer's selection as the action context.
-	     * @since 2.0
-	     */
-	    protected void fillContextMenu(IMenuManager manager) {
-	        manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	    }
-	    
-		private Selection getSelection() {
-			ITreeSelection viewerSelection = (ITreeSelection) viewer.getSelection();
-			
-			if (viewerSelection.isEmpty() || viewerSelection.size() > 1) {
-				if (viewer.getInput() == null) {
-					return Selection.NULL_SELECTION;
-				}
-				else {
-					return new Selection((IJpaContentNode) viewer.getInput());
-				}
-			}
-			
-			else {
-				return new Selection((IJpaContentNode) viewerSelection.getFirstElement());
-			}
-			
-		}
-		
-		private void select(Selection selection) {
-			// note: checks for null and equals() selection have already been performed
-			
-			if (selection.equals(Selection.NULL_SELECTION)) {
-				clearViewer();
-				return;
-			}
-			
-			Selection currentSelection = getSelection();
-			IJpaContentNode newNode = selection.getSelectedNode();
-			IJpaFile newFile = newNode.getJpaFile();
-			IJpaContentNode currentNode = 
-				(currentSelection == Selection.NULL_SELECTION) ?
-						null : getSelection().getSelectedNode();
-			IJpaFile currentFile = 
-				(currentNode == null) ? 
-						null : currentNode.getJpaFile();
-			
-			if (newFile.equals(currentFile)) {
-				viewer.setSelection(new StructuredSelection(newNode), true);
-			}
-			else if (currentFile != null &&  newFile.getContentId().equals(currentFile.getContentId())) {
-				viewer.setInput(newFile.getContent());
-				viewer.setSelection(new StructuredSelection(newNode), true);
-			}
-			else {
-				// new content type
-				// replace composite and set selection of tree
-				IJpaStructureProvider provider = getStructureProvider(newNode);
-				
-				if (provider == null) {
-					clearViewer();
-				}
-				else {
-					viewer.setContentProvider(provider.buildContentProvider());
-					viewer.setLabelProvider(provider.buildLabelProvider());
-					viewer.setInput(newFile.getContent());
-				}
-			}
-		}
-		
-		private void clearViewer() {
-			viewer.setContentProvider(NullTreeContentProvider.INSTANCE);
-			viewer.setLabelProvider(NullLabelProvider.INSTANCE);
-			viewer.setInput(null);
-		}
-		
-		private IJpaStructureProvider getStructureProvider(IJpaContentNode contentNode) {
-			String contentId = contentNode.getJpaFile().getContentId();
-			IJpaStructureProvider provider = 
-				(IJpaStructureProvider) structureProviders.get(contentId);
-			
-			if (provider == null) {
-				String vendorId = contentNode.getJpaProject().getPlatform().getId();
-				IJpaPlatformUi jpaPlatformUI = PlatformRegistry.INSTANCE.getJpaPlatform(vendorId);
-				for (IJpaStructureProvider p : jpaPlatformUI.structureProviders()) {
-					if (p.fileContentType().equals(contentId)) {
-						provider = p;
-						break;
-					}
-				}
-				
-				//TODO this view and the detailsProviders Map is not created on a per project basis.
-				//the detailsProviders and their fileContentTypes could overlap across project, this would cause problems with storing this map.				
-				if (provider != null) {
-					structureProviders.put(contentId, provider);
-				}
-			}
-			
-			return provider;	
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/CComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/CComboViewer.java
deleted file mode 100644
index f4dadd0..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/CComboViewer.java
+++ /dev/null
@@ -1,151 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.widgets;
-import org.eclipse.jface.viewers.AbstractListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-//bug #69254 is why i created this class, it is a copy of ComboViwer but using a CCombo
-
-/**
- * A concrete viewer based on an SWT <code>Combo</code> control. This class is intended
- * as an alternative to the JFace <code>ListViewer</code>, which displays its content
- * in a combo box rather than a list. Wherever possible, this class attempts to behave
- * like ListViewer. <p>
- * 
- * This class is designed to be instantiated with a pre-existing SWT combo control 
- * and configured with a domain-specific content provider, label provider, element
- * filter (optional), and element sorter (optional).
- * </p>
- * 
- * @see org.eclipse.jface.viewers.ListViewer
- * @since 3.0
- */
-public final class CComboViewer extends AbstractListViewer {
-
-    /**
-     * This viewer's list control.
-     */
-    private CCombo combo;
-
-    /**
-     * Creates a combo viewer on a newly-created combo control under the given parent.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     */
-    public CComboViewer(Composite parent) {
-        this(parent, SWT.READ_ONLY | SWT.BORDER);
-    }
-
-    /**
-     * Creates a combo viewer on a newly-created combo control under the given parent.
-     * The combo control is created using the given SWT style bits.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     * @param style the SWT style bits
-     */
-    public CComboViewer(Composite parent, int style) {
-        this(new CCombo(parent, style));
-    }
-
-    /**
-     * Creates a combo viewer on the given combo control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param list the combo control
-     */
-    public CComboViewer(CCombo list) {
-        this.combo = list;
-        hookControl(list);
-    }
-
-    protected void listAdd(String string, int index) {
-        combo.add(string, index);
-    }
-
-    protected void listSetItem(int index, String string) {
-        combo.setItem(index, string);
-    }
-
-    protected int[] listGetSelectionIndices() {
-        return new int[] { combo.getSelectionIndex() };
-    }
-
-    protected int listGetItemCount() {
-        return combo.getItemCount();
-    }
-
-    protected void listSetItems(String[] labels) {
-        combo.setItems(labels);
-    }
-
-    protected void listRemoveAll() {
-        combo.removeAll();
-    }
-
-    protected void listRemove(int index) {
-        combo.remove(index);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public Control getControl() {
-        return combo;
-    }
-
-    /**
-     * Returns this list viewer's list control.
-     *
-     * @return the list control
-     */
-    public CCombo getCombo() {
-        return combo;
-    }
-
-    /*
-     * Do nothing -- combos only display the selected element, so there is no way
-     * we can ensure that the given element is visible without changing the selection.
-     * Method defined on StructuredViewer.
-     */
-    public void reveal(Object element) {
-        return;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSelectAndShow(int[])
-     */
-    protected void listSetSelection(int[] ixs) {
-        for (int idx = 0; idx < ixs.length; idx++) {
-            combo.select(ixs[idx]);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listDeselectAll()
-     */
-    protected void listDeselectAll() {
-        combo.deselectAll();
-        combo.clearSelection();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listShowSelection()
-     */
-    protected void listShowSelection() {
-
-    }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ScrolledPageContent.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ScrolledPageContent.java
deleted file mode 100644
index ce6d25d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/ScrolledPageContent.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.ui.internal.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.SharedScrolledComposite;
-
-//copied from package org.eclipse.jdt.internal.ui.preferences;
-public class ScrolledPageContent extends SharedScrolledComposite {
-
-	private FormToolkit fToolkit;
-	
-	public ScrolledPageContent(Composite parent) {
-		this(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-	}
-	
-	public ScrolledPageContent(Composite parent, int style) {
-		super(parent, style);
-		
-		setFont(parent.getFont());
-		
-		FormColors colors= new FormColors(parent.getDisplay());
-		colors.setBackground(null);
-		colors.setForeground(null);
-		
-		fToolkit= new FormToolkit(colors);
-		
-		setExpandHorizontal(true);
-		setExpandVertical(true);
-		
-		Composite body= new Composite(this, SWT.NONE);
-		body.setFont(parent.getFont());
-		setContent(body);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		fToolkit.dispose();
-		super.dispose();
-	}
-	
-	public void adaptChild(Control childControl) {
-		fToolkit.adapt(childControl, true, true);
-	}
-	
-	public Composite getBody() {
-		return (Composite) getContent();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/DatabaseReconnectWizardPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/DatabaseReconnectWizardPage.java
deleted file mode 100644
index 1e7b0d6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/DatabaseReconnectWizardPage.java
+++ /dev/null
@@ -1,361 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.wizards;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionListener;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.JptDbPlugin;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.db.ui.internal.DTPUiTools;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.PlatformUI;
-
-public class DatabaseReconnectWizardPage extends WizardPage {
-	private IJpaProject jpaProject;
-
-	private Connection connection;
-	private ConnectionListener connectionListener;
-	private DatabaseGroup databaseGroup;
-
-	public DatabaseReconnectWizardPage( IJpaProject jpaProject) {
-		super( "Database Settings"); //$NON-NLS-1$
-		this.jpaProject = jpaProject;
-		setTitle( JptUiMessages.DatabaseReconnectWizardPage_databaseConnection);
-		setMessage( JptUiMessages.DatabaseReconnectWizardPage_reconnectToDatabase);
-	}
-
-	public void createControl( Composite parent) {
-		this.setPageComplete( false);
-		Composite top = this.createTopLevelComposite( parent);
-		this.setControl( top);
-	}
-
-	protected Composite createTopLevelComposite( Composite parent) {
-		Composite composite = new Composite( parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		composite.setLayout( layout);
-		this.databaseGroup = new DatabaseGroup( composite);
-		Dialog.applyDialogFont( parent);
-		// TODO Add Help - testing
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJpaHelpContextIds.PROPERTIES_JAVA_PERSISTENCE_CONNECTION);
-		return composite;
-	}
-
-	private Label createLabel( Composite container, int span, String text) {
-		Label label = new Label( container, SWT.NONE);
-		label.setText( text);
-		GridData gd = new GridData();
-		gd.horizontalIndent = 30;
-		gd.horizontalSpan = span;
-		label.setLayoutData( gd);
-		return label;
-	}
-
-	private Combo createCombo( Composite container, boolean fillHorizontal) {
-		Combo combo = new Combo( container, SWT.BORDER | SWT.SINGLE);
-		if ( fillHorizontal) {
-			combo.setLayoutData( new GridData( GridData.FILL_HORIZONTAL));
-		}
-		else {
-			combo.setLayoutData( new GridData());
-		}
-		return combo;
-	}
-
-	/**
-	 * Initialize a grid layout with the default Dialog settings.
-	 */
-	protected GridLayout initGridLayout( GridLayout layout, boolean margins) {
-		layout.horizontalSpacing = this.convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_SPACING);
-		layout.verticalSpacing = this.convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_SPACING);
-		if ( margins) {
-			layout.marginWidth = this.convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_MARGIN);
-			layout.marginHeight = this.convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_MARGIN);
-		}
-		else {
-			layout.marginWidth = 0;
-			layout.marginHeight = 0;
-		}
-		return layout;
-	}
-
-	public Collection<Table> getTables() {
-		Schema schema = this.getDefaultSchema();
-		if ( schema != null && schema.getName() != null) {
-			return CollectionTools.collection( schema.tables());
-		}
-		return Collections.<Table>emptyList();
-	}
-
-	private void updateGenerateEntitiesPage( Schema schema) {
-		GenerateEntitiesWizard generateEntitiesWizard = (( GenerateEntitiesWizard) this.getWizard());
-		generateEntitiesWizard.updatePossibleTables( CollectionTools.collection( schema.tables()));
-	}
-
-	public void dispose() {
-		this.removeConnectionListener();
-		super.dispose();
-	}
-
-	private void removeConnectionListener() {
-		if ( this.connectionListener != null) {
-			if ( this.connection != null) {
-				this.connection.removeConnectionListener( this.connectionListener);
-			}
-			this.connectionListener = null;
-		}
-	}
-	
-
-	ConnectionProfile getProjectConnectionProfile() {
-		String profileName = this.jpaProject.getDataSource().getConnectionProfileName();
-		return JptDbPlugin.getDefault().getConnectionProfileRepository().profileNamed( profileName);
-	}
-
-	Schema getDefaultSchema() {
-		ConnectionProfile profile = getProjectConnectionProfile();
-		return profile.getDatabase().schemaNamed( profile.getDefaultSchema());
-	}
-
-	// ********** member classes **********
-
-	private final class DatabaseGroup {
-		private final Group group;
-		private final Label connectionLabel;
-		private final Combo connectionCombo;
-		private final Label schemaLabel;
-		private final Combo schemaCombo;
-		private final Label schemaInfoLabel;
-		
-		private Link addConnectionLink;
-		private Link reconnectLink;
-
-		public DatabaseGroup( Composite composite) {
-			this.group = new Group( composite, SWT.NONE);
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 2;
-			this.group.setLayout( layout);
-			this.group.setLayoutData( new GridData( GridData.FILL_HORIZONTAL));
-			this.group.setText( JptUiMessages.DatabaseReconnectWizardPage_database);
-			//TODO Add Help
-//			PlatformUI.getWorkbench().getHelpSystem().setHelp( this.group, IDaliHelpContextIds.XXX);
-			this.connectionLabel = createLabel( this.group, 1, JptUiMessages.DatabaseReconnectWizardPage_connection);
-			this.connectionCombo = createCombo( this.group, true);
-			this.connectionCombo.addSelectionListener( new SelectionAdapter() {
-				public void widgetDefaultSelected( SelectionEvent e) {
-					widgetSelected( e);
-				}
-
-				public void widgetSelected( SelectionEvent e) {
-					handleConnectionChange();
-				}
-			});
-			this.schemaLabel = createLabel( this.group, 1, JptUiMessages.DatabaseReconnectWizardPage_schema);
-			this.schemaCombo = createCombo( this.group, true);
-			this.schemaCombo.addSelectionListener( new SelectionAdapter() {
-				public void widgetDefaultSelected( SelectionEvent e) {
-					widgetSelected( e);
-				}
-
-				public void widgetSelected( SelectionEvent e) {
-					handleSchemaChange();
-				}
-			});
-			schemaInfoLabel = createLabel( this.group, 2, JptUiMessages.DatabaseReconnectWizardPage_schemaInfo);
-			this.addConnectionLink = new Link( this.group, SWT.NONE);
-			GridData data = new GridData( GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			this.addConnectionLink.setLayoutData( data);
-			this.addConnectionLink.setText( JptUiMessages.DatabaseReconnectWizardPage_addConnectionLink);
-			this.addConnectionLink.addSelectionListener( new SelectionAdapter() {
-				public void widgetSelected( SelectionEvent e) {
-					openNewConnectionWizard();
-				}
-			});
-			this.reconnectLink = new Link( this.group, SWT.NONE);
-			data = new GridData( GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			this.reconnectLink.setLayoutData( data);
-			this.reconnectLink.setText( JptUiMessages.DatabaseReconnectWizardPage_reconnectLink);
-			this.reconnectLink.setEnabled( false);
-			this.reconnectLink.addSelectionListener( new SelectionAdapter() {
-				public void widgetSelected( SelectionEvent e) {
-					openConnectionProfileNamed( connectionCombo.getText());
-				}
-			});
-			this.populateConnectionCombo();
-			this.populateSchemaCombo();
-		}
-
-		private ConnectionProfile getConnectionProfileNamed( String profileName) {
-			return JptDbPlugin.getDefault().getConnectionProfileRepository().profileNamed( profileName);
-		}
-		
-		private Iterator<String> dtpConnectionProfileNames() {
-			return JptDbPlugin.getDefault().getConnectionProfileRepository().profileNames();
-		}
-
-		private String getProjectConnectionProfileName() {
-			return jpaProject.getDataSource().getConnectionProfileName();
-		}
-
-		Schema getDefaultSchema() {
-			ConnectionProfile profile = getProjectConnectionProfile();
-			return profile.getDatabase().schemaNamed( profile.getDefaultSchema());
-		}
-
-		private void openConnectionProfileNamed( String connectionProfileName) {
-			if( DatabaseReconnectWizardPage.this.connection != null) {
-				DatabaseReconnectWizardPage.this.removeConnectionListener();
-			}
-			ConnectionProfile profile = JptDbPlugin.getDefault().getConnectionProfileRepository().profileNamed( connectionProfileName);
-			profile.connect();
-			DatabaseReconnectWizardPage.this.connection = profile.getConnection();
-			if( DatabaseReconnectWizardPage.this.connection != null) {
-				this.populateSchemaCombo();
-				DatabaseReconnectWizardPage.this.connectionListener = this.buildConnectionListener();
-				DatabaseReconnectWizardPage.this.connection.addConnectionListener( DatabaseReconnectWizardPage.this.connectionListener);
-			}
-			return;
-		}
-		
-		private void populateConnectionCombo() {
-			// clear out connection entries from previous login.
-			this.connectionCombo.removeAll();
-			for ( Iterator<String> i = CollectionTools.sort( this.dtpConnectionProfileNames()); i.hasNext();) {
-				this.connectionCombo.add( ( String) i.next());
-			}
-
-			String connectionName = getProjectConnectionProfileName();
-			if ( !StringTools.stringIsEmpty( connectionName)) {
-				this.connectionCombo.select( connectionCombo.indexOf( connectionName));
-				this.reconnectLink.setEnabled( true);
-			}
-		}
-
-		private void handleConnectionChange() {
-			this.reconnectLink.setEnabled( true);
-			this.populateSchemaCombo();
-		}
-
-		private void handleSchemaChange() {
-			ConnectionProfile connectionProfile = this.getConnectionProfileNamed( getConnectionProfileName());
-			Schema schema =  connectionProfile.getDatabase().schemaNamed( this.getSchemaName());
-			DatabaseReconnectWizardPage.this.updateGenerateEntitiesPage( schema);
-			DatabaseReconnectWizardPage.this.setPageComplete( true);
-		}
-
-		private void populateSchemaCombo() {
-			// clear out schema entries from previous connection selection
-			this.schemaCombo.removeAll();
-			ConnectionProfile connectionProfile = this.getConnectionProfileNamed( getConnectionProfileName());
-			for ( Iterator<String> stream = CollectionTools.sort( connectionProfile.getDatabase().schemaNames()); stream.hasNext();) {
-				this.schemaCombo.add( ( String) stream.next());
-			}
-			// set login user name as default schema
-			Schema schema = this.getDefaultSchema();
-			if ( schema != null && schema.getName() != null) {
-				schema =  connectionProfile.getDatabase().schemaNamed( schema.getName()); // verify schema exist
-				if ( schema != null) {
-					this.schemaCombo.select( this.schemaCombo.indexOf( schema.getName()));
-					updateGenerateEntitiesPage( schema);
-					setPageComplete( true);
-				}
-			}
-		}
-
-		private String getConnectionProfileName() {
-			return this.connectionCombo.getText();
-		}
-
-		private String getSchemaName() {
-			return this.schemaCombo.getText();
-		}
-
-		private void openNewConnectionWizard() {
-			String addedProfileName = DTPUiTools.createNewProfile();
-			  
-			ConnectionProfile addedProfile = ConnectionProfileRepository.instance().profileNamed( addedProfileName);
-		
-			if( !addedProfile.isNull()) {
-				this.populateConnectionCombo();
-				this.connectionCombo.select( connectionCombo.indexOf( addedProfile.getName()));
-				this.handleConnectionChange();
-			}
-		}
-
-		private ConnectionListener buildConnectionListener() {
-			return new ConnectionListener() {
-
-				public void modified( Connection connection) {
-				// not interested to this event.
-				}
-
-				public boolean okToClose( Connection connection) {
-				// not interested to this event.
-					return true;
-				}
-
-				public void opened( Connection connection) {
-					if( DatabaseReconnectWizardPage.this.connection.equals( connection)) {
-						DatabaseGroup.this.populateSchemaCombo();
-					}
-				}
-
-				public void aboutToClose( Connection connection) {
-					if( DatabaseReconnectWizardPage.this.connection.equals( connection)) {
-						DatabaseReconnectWizardPage.this.removeConnectionListener();
-					}
-				}
-
-				public void closed( Connection connection) {
-				// not interested to this event.
-				}
-
-				public void databaseChanged(Connection connection, final Database database) {
-				// not interested to this event.
-				}
-
-				public void schemaChanged(Connection connection, final Schema schema) {
-				// not interested to this event.
-				}
-
-				public void tableChanged(Connection connection, final Table table) {
-				// not interested to this event.
-				}
-			};
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java
deleted file mode 100644
index b0ba166..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java
+++ /dev/null
@@ -1,167 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.wizards;
-
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.gen.internal.EntityGenerator;
-import org.eclipse.jpt.gen.internal.PackageGenerator;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-public class GenerateEntitiesWizard extends Wizard {	
-
-	private IJpaProject jpaProject;
-
-	private IStructuredSelection selection;
-
-	/** this page is only built when the project is not connected to the db */
-	private DatabaseReconnectWizardPage dbSettingsPage;
-
-	private GenerateEntitiesWizardPage generateEntitiesPage;
-
-	private PackageGenerator.Config packageGeneratorConfig;
-
-	private EntityGenerator.Config entityGeneratorConfig;
-
-	private boolean synchronizePersistenceXml;
-	
-	private Collection<Table> selectedTables;
-
-	public GenerateEntitiesWizard( IJpaProject jpaProject, IStructuredSelection selection) {
-		super();
-		this.jpaProject = jpaProject;
-		this.selection = selection;
-		this.packageGeneratorConfig = new PackageGenerator.Config();
-		this.entityGeneratorConfig = new EntityGenerator.Config();
-		this.setWindowTitle( JptUiMessages.GenerateEntitiesWizard_generateEntities);
-	}
-	
-	public void addPages() {
-		super.addPages();
-		this.dbSettingsPage = new DatabaseReconnectWizardPage( this.jpaProject);
-		this.addPage(this.dbSettingsPage);
-		this.generateEntitiesPage = new GenerateEntitiesWizardPage();
-		this.addPage( this.generateEntitiesPage);
-		this.generateEntitiesPage.init( this.selection);
-	}
-	
-	public boolean performFinish() {
-		this.packageGeneratorConfig.setPackageFragment( this.buildPackageFragment());
-
-		this.entityGeneratorConfig.setConvertToCamelCase( this.generateEntitiesPage.convertToCamelCase());
-		this.entityGeneratorConfig.setFieldAccessType( this.generateEntitiesPage.fieldAccessType());
-		this.entityGeneratorConfig.setCollectionTypeName( this.generateEntitiesPage.getCollectionTypeName());
-		this.entityGeneratorConfig.setFieldVisibility( this.generateEntitiesPage.getFieldVisibility());
-		this.entityGeneratorConfig.setMethodVisibility( this.generateEntitiesPage.getMethodVisibility());
-		this.entityGeneratorConfig.setGenerateGettersAndSetters( this.generateEntitiesPage.generateGettersAndSetters());
-		this.entityGeneratorConfig.setGenerateDefaultConstructor( this.generateEntitiesPage.generateDefaultConstructor());
-		this.entityGeneratorConfig.setSerializable( this.generateEntitiesPage.serializable());
-		this.entityGeneratorConfig.setGenerateSerialVersionUID( this.generateEntitiesPage.generateSerialVersionUID());
-		this.entityGeneratorConfig.setGenerateEmbeddedIdForCompoundPK( this.generateEntitiesPage.generateEmbeddedIdForCompoundPK());
-		this.entityGeneratorConfig.setOverrideEntityNames( this.generateEntitiesPage.getOverrideEntityNames());
-
-		this.synchronizePersistenceXml = this.generateEntitiesPage.synchronizePersistenceXml();
-		
-		this.selectedTables = this.generateEntitiesPage.getSelectedTables();
-		return true;
-	}
-	
-	private IPackageFragment buildPackageFragment() {
-		IPackageFragmentRoot packageFragmentRoot = this.generateEntitiesPage.getPackageFragmentRoot();
-		IPackageFragment packageFragment = this.generateEntitiesPage.getPackageFragment();
-		
-		if ( packageFragment == null) {
-			packageFragment= packageFragmentRoot.getPackageFragment( ""); //$NON-NLS-1$
-		}
-		
-		if ( packageFragment.exists()) {
-			return packageFragment;
-		}
-
-		try {
-			return packageFragmentRoot.createPackageFragment( packageFragment.getElementName(), true, null);
-		} 
-		catch ( JavaModelException ex) {
-			throw new RuntimeException( ex);
-		}
-	}
-	
-	Collection<Table> getPossibleTables() {
-		if ( this.dbSettingsPage != null) {
-			return this.dbSettingsPage.getTables();
-		}
-		return ( this.projectDefaultSchemaExists()) ? CollectionTools.collection( this.getDefaultSchema().tables()) : Collections.<Table>emptyList();
-	}
-	
-	ConnectionProfile getProjectConnectionProfile() {
-		return this.jpaProject.connectionProfile();
-	}
-	
-	IJpaProject getJpaProject(){
-		return this.jpaProject;
-	}
-
-	Schema getDefaultSchema() {
-		ConnectionProfile profile = getProjectConnectionProfile();
-		return profile.getDatabase().schemaNamed( profile.getDefaultSchema());
-	}
-	
-	public PackageGenerator.Config getPackageGeneratorConfig() {
-		return this.packageGeneratorConfig;
-	}
-
-	public EntityGenerator.Config getEntityGeneratorConfig() {
-		return this.entityGeneratorConfig;
-	}
-
-	public Collection<Table> getSelectedTables() {
-		return this.selectedTables;
-	}
-	
-	public boolean synchronizePersistenceXml(){
-		return this.synchronizePersistenceXml;
-	}
-	
-    public boolean canFinish() {
-        boolean canFinish = true;
-        if ( ! this.generateEntitiesPage.isPageComplete()) {
-        	canFinish = false;
-        }
-        return canFinish;
-    }
-    
-	private boolean jpaProjectIsConnected() {
-		return this.getProjectConnectionProfile().isConnected();
-	}
-
-	private boolean projectDefaultSchemaExists() {
-		return ( this.getDefaultSchema() != null);
-	}
-	
-	/**
-	 * updatePossibleTables is called when schemaÂ’s PossibleTables changed.
-	 * The dbSettingsPage is mainly the source of changes, 
-	 * and the generateEntitiesPage needs to be kept in sync.
-	 */
-	void updatePossibleTables( Collection<Table> possibleTables) {
-		this.generateEntitiesPage.updateTablesListViewer( possibleTables);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizardPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizardPage.java
deleted file mode 100644
index 2a00d5c..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizardPage.java
+++ /dev/null
@@ -1,539 +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
- ******************************************************************************/   
-package org.eclipse.jpt.ui.internal.wizards;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.util.TableLayoutComposite;
-import org.eclipse.jdt.ui.wizards.NewTypeWizardPage;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.gen.internal.EntityGenerator;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-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.Group;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.PlatformUI;
-
-// TODO determine name collisions
-class GenerateEntitiesWizardPage extends NewTypeWizardPage {
-
-	CheckboxTableViewer tableTable;
-
-	private boolean convertToCamelCase = true;
-	private boolean fieldAccessType = true;
-	private String collectionTypeName = Set.class.getName();
-	private int fieldVisibility = EntityGenerator.Config.PRIVATE;
-	private int methodVisibility = EntityGenerator.Config.PUBLIC;
-	private boolean generateGettersAndSetters = true;
-	private boolean generateDefaultConstructor = true;
-	private boolean serializable = true;
-	private boolean generateSerialVersionUID = true;
-	private boolean generateEmbeddedIdForCompoundPK = true;
-	private boolean synchronizePersistenceXml = false;
-	private Map<Table, String> overrideEntityNames;
-	
-	static final String[] TABLE_TABLE_COLUMN_PROPERTIES = { "table", "entityName" };
-	private static final int TABLE_COLUMN_INDEX = 0;
-	private static final int ENTITY_NAME_COLUMN_INDEX = 1;
-	
-
-	GenerateEntitiesWizardPage() {
-		super(true, "Generate Entities"); //$NON-NLS-1$
-		setTitle(JptUiMessages.GenerateEntitiesWizardPage_generateEntities);
-		setMessage(JptUiMessages.GenerateEntitiesWizardPage_chooseEntityTable);
-	}
-	
-	// -------- Initialization ---------
-	/**
-	 * The wizard owning this page is responsible for calling this method with the
-	 * current selection. The selection is used to initialize the fields of the wizard 
-	 * page.
-	 * 
-	 * @param selection used to initialize the fields
-	 */
-	void init(IStructuredSelection selection) {
-		IJavaElement jelem= getInitialJavaElement(selection);
-		initContainerPage(jelem);
-		initTypePage(jelem);
-		doStatusUpdate();
-	}
-
-	public void createControl(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		int nColumns= 4;
-		GridLayout layout = new GridLayout();
-		layout.numColumns = nColumns;
-		composite.setLayout(layout);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJpaHelpContextIds.DIALOG_GENERATE_ENTITIES);
-		
-		createContainerControls(composite, nColumns);	
-		createPackageControls(composite, nColumns);	
-		
-		final Button synchronizeClassesCheckBox = new Button(composite, SWT.CHECK);
-		synchronizeClassesCheckBox.setText(JptUiMessages.GenerateEntitiesWizardPage_synchronizeClasses);
-		synchronizeClassesCheckBox.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				setSynchronizePersistenceXml(synchronizeClassesCheckBox.getSelection());
-			}
-		});
-		
-		Group tablesGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
-		tablesGroup.setLayout(new GridLayout(2, false));
-		tablesGroup.setText(JptUiMessages.GenerateEntitiesWizardPage_tables);
-		GridData data = new GridData();
-		data.horizontalSpan = 4;
-		data.verticalAlignment = SWT.FILL;
-		data.horizontalAlignment = SWT.FILL;
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		tablesGroup.setLayoutData(data);
-		
-		createTablesSelectionControl(tablesGroup);
-		createButtonComposite(tablesGroup);
-		
-		GenerateEntitiesWizard generateEntitiesWizard = ((GenerateEntitiesWizard)this.getWizard());
-		Collection<Table> possibleTables = generateEntitiesWizard.getPossibleTables();
-		initTablesSelectionControl(possibleTables);
-		
-		//set initial selection state of the synchronize classes checkbox
-		synchronizeClassesCheckBox.setSelection(!generateEntitiesWizard.getJpaProject().isDiscoverAnnotatedClasses());
-		setSynchronizePersistenceXml(synchronizeClassesCheckBox.getSelection());
-		
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.tableTable.getControl(), IJpaHelpContextIds.DIALOG_GENERATE_ENTITIES_TABLES);
-		
-		setControl(composite);
-		this.setPageComplete( false);
-	}
-
-	private void selectAllTables(){
-		this.tableTable.setAllChecked(true);
-		doStatusUpdate();
-	}
-	
-	private void deselectAllTables(){
-		this.tableTable.setAllChecked(false);
-		doStatusUpdate();
-	}
-	
-	private void initTablesSelectionControl(Collection<Table> possibleTables) {
-		this.overrideEntityNames = new HashMap<Table, String>(possibleTables.size());
-		this.tableTable.setInput(possibleTables);
-	}
-
-	private void createTablesSelectionControl(Composite parent) {
-		TableLayoutComposite layout= new TableLayoutComposite(parent, SWT.NONE);
-		addColumnLayoutData(layout);
-		
-		final org.eclipse.swt.widgets.Table table = new org.eclipse.swt.widgets.Table(layout, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		
-		TableColumn tableNameColumn = new TableColumn(table, SWT.NONE, TABLE_COLUMN_INDEX);
-		tableNameColumn.setText(JptUiMessages.GenerateEntitiesWizardPage_tableColumn);
-		tableNameColumn.setResizable(true);
-
-		TableColumn entityNameColumn = new TableColumn(table, SWT.NONE, ENTITY_NAME_COLUMN_INDEX);
-		entityNameColumn.setText(JptUiMessages.GenerateEntitiesWizardPage_entityNameColumn);
-		entityNameColumn.setResizable(true);
-		
-		GridData gd= new GridData(GridData.FILL_BOTH);
-		gd.heightHint= SWTUtil.getTableHeightHint(table, 20);
-		gd.widthHint = 600;
-		layout.setLayoutData(gd);
-
-		this.tableTable = new CheckboxTableViewer(table);
-		this.tableTable.setUseHashlookup(true);
-		this.tableTable.setLabelProvider(this.buildTableTableLabelProvider());
-		this.tableTable.setContentProvider(this.buildTableTableContentProvider());
-		this.tableTable.setSorter(new ViewerSorter() {
-			public int compare(Viewer viewer, Object e1, Object e2) {
-				return ((Table) e1).getName().compareTo(((Table) e2).getName());
-			}
-		});
-		
-		this.tableTable.addPostSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleTablesListSelectionChanged(event);
-			}
-		});
-		
-		table.addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				if (e.keyCode == SWT.F2 && e.stateMask == SWT.NONE) {
-					editEntityNameIfPossible();
-					e.doit= false;
-				}
-			}
-		});
-		
-		this.addCellEditors();
-	}
-	
-	private void createButtonComposite(Group tablesGroup){
-		
-		Composite buttonComposite = new Composite(tablesGroup, SWT.NULL);
-		GridLayout buttonLayout = new GridLayout(1, false);
-		buttonComposite.setLayout(buttonLayout);
-		GridData data =  new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.verticalAlignment = GridData.BEGINNING;
-		buttonComposite.setLayoutData(data);
-		
-		Button selectAllButton = new Button(buttonComposite, SWT.PUSH);
-		selectAllButton.setText(JptUiMessages.General_selectAll);
-		GridData gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		selectAllButton.setLayoutData(gridData);
-		selectAllButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				selectAllTables();
-				
-			}
-		});
-		
-		Button deselectAllButton = new Button(buttonComposite, SWT.PUSH);
-		deselectAllButton.setText(JptUiMessages.General_deselectAll);
-		gridData =  new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		deselectAllButton.setLayoutData(gridData);
-		deselectAllButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-		
-			public void widgetSelected(SelectionEvent e) {
-				deselectAllTables();
-			}
-		});
-	}
-	
-	
-	private void addColumnLayoutData(TableLayoutComposite layout) {
-		layout.addColumnData(new ColumnWeightData(50, true));
-		layout.addColumnData(new ColumnWeightData(50, true));
-	}
-
-	void editEntityNameIfPossible(){
-		Object[] selected = ((IStructuredSelection) this.tableTable.getSelection()).toArray();
-		if (selected.length != 1) {
-			return;
-		}
-		this.tableTable.editElement(selected[0], ENTITY_NAME_COLUMN_INDEX);
-	}
-	
-	private void addCellEditors() {
-		this.tableTable.setColumnProperties(TABLE_TABLE_COLUMN_PROPERTIES);
-		
-		TextCellEditor[] editors = new TextCellEditor[TABLE_TABLE_COLUMN_PROPERTIES.length];
-		editors[ENTITY_NAME_COLUMN_INDEX]= new TextCellEditor(this.tableTable.getTable(), SWT.SINGLE);
-		
-		this.tableTable.setCellEditors(editors);
-		this.tableTable.setCellModifier(this.buildTableTableCellModifier());
-	}
-
-	void handleTablesListSelectionChanged(SelectionChangedEvent event) {
-		this.setPageComplete(true);
-		if ( ! this.hasTablesSelected()) {
-			this.setPageComplete(false);
-		}
-	}
-	
-	private IBaseLabelProvider buildTableTableLabelProvider() {
-		return new TableTableLabelProvider();
-	}
-	
-	private IContentProvider buildTableTableContentProvider() {
-		return new TableTableContentProvider();
-	}
-	
-	private ICellModifier buildTableTableCellModifier() {
-		return new TableTableCellModifier();
-	}
-	
-	Collection<Table> getSelectedTables() {
-		ArrayList<Table> selectedTables = new ArrayList<Table>();
-		for (Object selectedTable : this.tableTable.getCheckedElements())
-			selectedTables.add((Table) selectedTable);
-		return selectedTables;
-	}
-	
-	private boolean hasTablesSelected() {
-		return (this.tableTable != null) ? (this.getSelectedTables().size() > 0) : false;
-	}
-	
-	void updateTablesListViewer(Collection<Table> possibleTables) {
-		if (this.tableTable != null) {
-			this.initTablesSelectionControl(possibleTables);
-		}
-	}
-
-	private void doStatusUpdate() {
-		// status of all used components
-		IStatus[] status= new IStatus[] {
-			fContainerStatus,
-			fPackageStatus
-		};
-		// the mode severe status will be displayed and the OK button enabled/disabled.
-		this.updateStatus(status);
-	}
-	
-	/**
-	 * Update the status line and the OK button according to the given status
-	 */
-	protected void updateStatus(IStatus status) {
-		super.updateStatus(status);
-		if (this.isPageComplete() && ! this.hasTablesSelected()) {
-			this.setPageComplete(false);
-		}
-	}
-
-	String entityName(Table table) {
-		String overrideEntityName = (String) this.overrideEntityNames.get(table);
-		return (overrideEntityName != null) ? overrideEntityName : this.defaultEntityName(table);
-	}
-
-	private String defaultEntityName(Table table) {
-		String entityName = table.shortJavaClassName();
-		if (this.convertToCamelCase) {
-			entityName = StringTools.convertUnderscoresToCamelCase(entityName);
-		}
-		return entityName;
-	}
-
-	void setOverrideEntityName(Table table, String name) {
-		if (table.shortJavaClassName().equals(name)) {
-			this.overrideEntityNames.remove(table);
-		} else {
-			this.overrideEntityNames.put(table, name);
-		}
-	}
-
-	boolean convertToCamelCase() {
-		return this.convertToCamelCase;
-	}
-	private void setConvertToCamelCase(boolean convertToCamelCase) {
-		// TODO re-calculate the default entity names if this changes
-		this.convertToCamelCase = convertToCamelCase;
-	}
-
-	boolean fieldAccessType() {
-		return this.fieldAccessType;
-	}
-	private void setFieldAccessType(boolean fieldAccessType) {
-		this.fieldAccessType = fieldAccessType;
-	}
-
-	String getCollectionTypeName() {
-		return this.collectionTypeName;
-	}
-	private void setCollectionTypeName(String collectionTypeName) {
-		this.collectionTypeName = collectionTypeName;
-	}
-
-	int getFieldVisibility() {
-		return this.fieldVisibility;
-	}
-	private void setFieldVisibility(int fieldVisibility) {
-		this.fieldVisibility = fieldVisibility;
-	}
-
-	int getMethodVisibility() {
-		return this.methodVisibility;
-	}
-	private void setMethodVisibility(int methodVisibility) {
-		this.methodVisibility = methodVisibility;
-	}
-
-	boolean generateGettersAndSetters() {
-		return this.generateGettersAndSetters;
-	}
-	private void setGenerateGettersAndSetters(boolean generateGettersAndSetters) {
-		this.generateGettersAndSetters = generateGettersAndSetters;
-	}
-
-	boolean generateDefaultConstructor() {
-		return this.generateDefaultConstructor;
-	}
-	private void setGenerateDefaultConstructor(boolean generateDefaultConstructor) {
-		this.generateDefaultConstructor = generateDefaultConstructor;
-	}
-
-	boolean serializable() {
-		return this.serializable;
-	}
-	private void setSerializable(boolean serializable) {
-		this.serializable = serializable;
-	}
-
-	boolean generateSerialVersionUID() {
-		return this.generateSerialVersionUID;
-	}
-	private void setGenerateSerialVersionUID(boolean generateSerialVersionUID) {
-		this.generateSerialVersionUID = generateSerialVersionUID;
-	}
-
-	boolean generateEmbeddedIdForCompoundPK() {
-		return this.generateEmbeddedIdForCompoundPK;
-	}
-	private void setGenerateEmbeddedIdForCompoundPK(boolean generateEmbeddedIdForCompoundPK) {
-		this.generateEmbeddedIdForCompoundPK = generateEmbeddedIdForCompoundPK;
-	}
-
-	boolean synchronizePersistenceXml() {
-		return this.synchronizePersistenceXml;
-	}
-	
-	private void setSynchronizePersistenceXml(boolean synchronizePersistenceXml){
-		this.synchronizePersistenceXml = synchronizePersistenceXml;
-	}
-	
-	/**
-	 * key = table
-	 * value = override entity name
-	 */
-	Map<Table, String> getOverrideEntityNames() {
-		return this.overrideEntityNames;
-	}
-
-
-	// ********** inner classes **********
-
-	private class TableTableLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		TableTableLabelProvider() {
-			super();
-		}
-
-		public String getText(Object element) {
-			return ((Table) element).getName();
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (element == null) {
-				return null;
-			}
-			switch (columnIndex) {
-				case TABLE_COLUMN_INDEX:
-					return ((Table) element).getName();
-
-				case ENTITY_NAME_COLUMN_INDEX:
-					return GenerateEntitiesWizardPage.this.entityName((Table) element);
-			}
-			throw new IllegalArgumentException("invalid column index: " + columnIndex);
-		}
-
-	}
-
-
-	private class TableTableContentProvider implements IStructuredContentProvider {
-
-		TableTableContentProvider() {
-			super();
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// do nothing
-		}
-	
-		public void dispose() {
-			// do nothing
-		}
-	
-		public Object[] getElements(Object inputElement) {
-			return ((Collection) inputElement).toArray();
-		}
-
-	}
-
-
-	private class TableTableCellModifier implements ICellModifier {
-
-		TableTableCellModifier() {
-			super();
-		}
-
-		public boolean canModify(Object element, String property) {
-			return property.equals(TABLE_TABLE_COLUMN_PROPERTIES[ENTITY_NAME_COLUMN_INDEX]);
-		}
-
-		public Object getValue(Object element, String property) {
-			if (property.equals(TABLE_TABLE_COLUMN_PROPERTIES[ENTITY_NAME_COLUMN_INDEX])) {
-				return GenerateEntitiesWizardPage.this.entityName((Table) element);
-			}
-			return null;
-		}
-
-		public void modify(Object element, String property, Object value) {
-			if (element instanceof TableItem) {
-				element= ((TableItem) element).getData();
-			}
-			if ( ! (element instanceof Table)) {
-				return;
-			}
-
-			boolean unchanged = false;
-			Table table = (Table) element;
-			if (property.equals(TABLE_TABLE_COLUMN_PROPERTIES[ENTITY_NAME_COLUMN_INDEX])) {
-				unchanged = GenerateEntitiesWizardPage.this.entityName(table).equals(value);
-				GenerateEntitiesWizardPage.this.setOverrideEntityName(table, (String) value);
-			}
-			if (! unchanged) {
-				GenerateEntitiesWizardPage.this.tableTable.update(table, new String[] { property });
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetWizardPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetWizardPage.java
deleted file mode 100644
index 16e1933..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/JpaFacetWizardPage.java
+++ /dev/null
@@ -1,536 +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.ui.internal.wizards;
-
-import java.util.Iterator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.internal.ui.preferences.UserLibraryPreferencePage;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jpt.core.internal.JpaPlatformRegistry;
-import org.eclipse.jpt.core.internal.facet.IJpaFacetDataModelProperties;
-import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
-import org.eclipse.jpt.db.ui.internal.DTPUiTools;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.prefs.JpaPreferencePage;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.FacetsSelectionPage;
-import org.eclipse.wst.web.ui.internal.wizards.DataModelFacetInstallPage;
-
-public class JpaFacetWizardPage 
-	extends DataModelFacetInstallPage
-	implements IJpaFacetDataModelProperties
-{
-	private PlatformGroup platformGroup;
-	
-	private ConnectionGroup connectionGroup;
-	
-	private ClasspathConfigGroup classpathConfigGroup;
-	
-	private PersistentClassManagementGroup persistentClassManagementGroup;
-	
-	private OrmXmlGroup ormXmlGroup;
-	
-	
-	public JpaFacetWizardPage() {
-		super("jpt.jpa.facet.install.page"); //$NON-NLS-1$
-		setTitle(JptUiMessages.JpaFacetWizardPage_title);
-		setDescription(JptUiMessages.JpaFacetWizardPage_description);
-		setImageDescriptor(JptUiPlugin.getPlugin().getImageDescriptor(JptUiIcons.JPA_WIZ_BANNER));
-	}
-	
-	
-	@Override
-	protected Composite createTopLevelComposite(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		
-		platformGroup = new PlatformGroup(composite);
-		connectionGroup = new ConnectionGroup(composite);
-		classpathConfigGroup = new ClasspathConfigGroup(composite);
-		persistentClassManagementGroup = new PersistentClassManagementGroup(composite);
-		ormXmlGroup = new OrmXmlGroup(composite);
-		
-		setUpRuntimeListener();
-		
-		Dialog.applyDialogFont(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IJpaHelpContextIds.DIALOG_JPA_FACET);
-		
-		return composite;
-	}
-	
-	private void setUpRuntimeListener() {
-		final ChangeTargetedRuntimesDataModel runtimeDataModel = getRuntimeDataModel();
-		// must do it manually the first time
-		model.setProperty(RUNTIME, runtimeDataModel.getPrimaryRuntime());
-		runtimeDataModel.addListener(
-			ChangeTargetedRuntimesDataModel.EVENT_PRIMARY_RUNTIME_CHANGED,
-			new AbstractDataModel.IDataModelListener() {
-				public void handleEvent() {
-					model.setProperty(RUNTIME, runtimeDataModel.getPrimaryRuntime());
-				}
-			}
-		);
-	}
-	
-	private ChangeTargetedRuntimesDataModel getRuntimeDataModel() {
-		// This is hacky, but unfortunately the only current way to do this
-		// see bug 138074
-		FacetsSelectionPage facetPage = null;
-		for (IWizardPage page : getWizard().getPages()) {
-			if (page instanceof FacetsSelectionPage) {
-				facetPage = (FacetsSelectionPage) page;
-				break;
-			}
-		}
-		return (facetPage == null) ?
-			null :
-			facetPage.panel.getDataModel().getTargetedRuntimesDataModel();
-	}
-	
-	
-	
-	private Label createLabel(Composite container, int span, String text) {
-		Label label = new Label(container, SWT.NONE);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		label.setLayoutData(gd);
-		return label;
-	}
-	
-	private Button createButton(Composite container, int span, String text, int style) {
-		Button button = new Button(container, SWT.NONE | style);
-		button.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		button.setLayoutData(gd);
-		return button;
-	}
-	
-	private Combo createCombo(Composite container, int span, boolean fillHorizontal) {
-		Combo combo = new Combo(container, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		GridData gd;
-		if (fillHorizontal) {
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-		}
-		else {
-			gd = new GridData();
-		}
-		gd.horizontalSpan = span;
-		combo.setLayoutData(gd);
-		return combo;
-	}
-	
-	@Override
-	protected String[] getValidationPropertyNames() {
-		return new String[] {
-			PLATFORM_ID,
-			CONNECTION,
-			USE_SERVER_JPA_IMPLEMENTATION,
-			JPA_LIBRARY,
-			DISCOVER_ANNOTATED_CLASSES
-		};
-	}
-	
-	@Override
-	public boolean isPageComplete() {
-		if (! super.isPageComplete()) {
-			return false;
-		}
-		else {
-			return (model.validate().getSeverity() != IStatus.ERROR);
-		}
-	}
-	
-	@Override
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible) {
-			setErrorMessage();
-		}
-	}
-	
-	
-	private final class PlatformGroup
-	{
-		private final ComboViewer platformCombo;
-		
-		
-		public PlatformGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_platformLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.DIALOG_JPA_PLATFORM);
-			
-			platformCombo = new ComboViewer(createCombo(group, 1, true));
-			platformCombo.setContentProvider(
-					new IStructuredContentProvider() {
-						public Object[] getElements(Object inputElement) {
-							return CollectionTools.array(JpaPlatformRegistry.INSTANCE.allJpaPlatformIds());
-						}
-						
-						public void dispose() {}
-						
-						public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
-					}
-				);
-			platformCombo.setLabelProvider(
-					new ILabelProvider() {
-						public Image getImage(Object element) {
-							return null;
-						}
-						
-						public String getText(Object element) {
-							return JpaPlatformRegistry.INSTANCE.getJpaPlatformLabel((String) element);
-						}
-						
-						public void addListener(ILabelProviderListener listener) {}
-						
-						public void removeListener(ILabelProviderListener listener) {}
-						
-						public void dispose() {}
-						
-						public boolean isLabelProperty(Object element, String property) {
-							return true;
-						}
-					}
-				);
-			platformCombo.addSelectionChangedListener(
-					new ISelectionChangedListener() {
-						public void selectionChanged(SelectionChangedEvent event) {
-							model.setProperty(PLATFORM_ID, ((StructuredSelection) event.getSelection()).getFirstElement());
-						}
-					}
-				);
-			// we need some input here, even if it means absolutely nothing
-			platformCombo.setInput("null input");
-			if (platformCombo.getElementAt(0) != null) {
-				platformCombo.setSelection(new StructuredSelection(platformCombo.getElementAt(0)));
-			}
-		}
-	}
-	
-	
-	private final class ConnectionGroup
-	{
-		private final Combo connectionCombo;
-		
-		private Link connectionLink;
-		
-		
-		public ConnectionGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_connectionLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_DATABASE);
-			
-			connectionCombo = createCombo(group, 1, true);
-			connectionCombo.addSelectionListener(
-					new SelectionListener() {
-						public void widgetSelected(SelectionEvent e) {
-							model.setProperty(CONNECTION, connectionCombo.getItem(connectionCombo.getSelectionIndex()));
-						}
-						
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-					}
-				);
-			fillConnections();
-			if (connectionCombo.getItemCount() > 0) {
-				connectionCombo.select(0);
-				model.setProperty(CONNECTION, connectionCombo.getItem(0));
-			}
-			else {
-				connectionCombo.clearSelection();
-				model.setProperty(CONNECTION, null);
-			}
-			
-			connectionLink = new Link(group, SWT.NONE);
-			GridData data = new GridData(GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			connectionLink.setLayoutData(data);
-			connectionLink.setText(JptUiMessages.JpaFacetWizardPage_connectionLink);
-			connectionLink.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						openNewConnectionWizard();				
-					}
-				}
-			);
-		}
-
-		private void fillConnections() {
-			//clear out connection entries from previous login.
-			connectionCombo.removeAll();
-			
-			for (Iterator stream = ConnectionProfileRepository.instance().profileNames(); stream.hasNext(); ) {
-				connectionCombo.add((String) stream.next());
-			}
-		}
-		
-		private String getConnectionName() {
-			return connectionCombo.getText();
-		}
-		
-		private void openNewConnectionWizard() {
-			String connectionName = DTPUiTools.createNewProfile();
-			if (connectionName != null) {
-				fillConnections();
-				model.setProperty(CONNECTION, connectionName);
-				connectionCombo.select(connectionCombo.indexOf(connectionName));
-			}
-		}
-	}
-	
-	
-	private final class ClasspathConfigGroup
-	{
-		private final Button useServerLibButton;
-		
-		private final Button specifyLibButton;
-		
-		private final Combo jpaLibCombo;
-		
-		private final Link jpaPrefsLink;
-		
-		private final Link userLibsLink;
-		
-		
-		
-		public ClasspathConfigGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_jpaImplementationLabel);
-			group.setLayout(new GridLayout(2, false));
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_CLASSPATH);
-			
-			boolean useServerLib = model.getBooleanProperty(USE_SERVER_JPA_IMPLEMENTATION);
-			
-			useServerLibButton = createButton(group, 2, JptUiMessages.JpaFacetWizardPage_userServerLibLabel, SWT.RADIO);
-			useServerLibButton.setSelection(useServerLib);
-			useServerLibButton.addSelectionListener(
-					new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(USE_SERVER_JPA_IMPLEMENTATION, true);
-						}
-					}
-				);
-			
-			specifyLibButton = createButton(group, 1, JptUiMessages.JpaFacetWizardPage_specifyLibLabel, SWT.RADIO);
-			specifyLibButton.setSelection(! useServerLib);
-			specifyLibButton.addSelectionListener(
-					new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(USE_SERVER_JPA_IMPLEMENTATION, false);
-						}
-					}
-				);
-			
-			jpaLibCombo = createCombo(group, 1, true);
-			synchHelper.synchCombo(jpaLibCombo, JPA_LIBRARY, null);
-			
-			model.addListener(
-					new IDataModelListener() {
-						public void propertyChanged(DataModelEvent event) {
-							if (USE_SERVER_JPA_IMPLEMENTATION.equals(event.getPropertyName())) {
-								boolean useServerLib = (Boolean) event.getProperty();
-								useServerLibButton.setSelection(useServerLib);
-								specifyLibButton.setSelection(! useServerLib);
-								jpaLibCombo.setEnabled(! useServerLib);
-							}
-						}
-					}
-				);
-			
-			jpaPrefsLink = new Link(group, SWT.NONE);
-			GridData data = new GridData(GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			jpaPrefsLink.setLayoutData(data);
-			jpaPrefsLink.setText(JptUiMessages.JpaFacetWizardPage_jpaPrefsLink);
-			jpaPrefsLink.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						promptToConfigJpaPrefs();				
-					}
-				}
-			);
-			
-			userLibsLink = new Link(group, SWT.NONE);
-			data = new GridData(GridData.END, GridData.CENTER, false, false);
-			data.horizontalSpan = 2;
-			userLibsLink.setLayoutData(data);
-			userLibsLink.setText(JptUiMessages.JpaFacetWizardPage_userLibsLink);
-			userLibsLink.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						promptToConfigUserLibraries();				
-					}
-				}
-			);
-		}
-		
-		private void promptToConfigJpaPrefs() {
-			PreferenceDialog dlg = 
-				PreferencesUtil.createPreferenceDialogOn(
-					getShell(), 
-					JpaPreferencePage.ID,
-					new String[] {JpaPreferencePage.ID},
-					null);
-			dlg.open();
-			model.notifyPropertyChange(JPA_LIBRARY, IDataModel.VALID_VALUES_CHG);
-			model.notifyPropertyChange(JPA_LIBRARY, IDataModel.DEFAULT_CHG);
-		}
-		
-		private void promptToConfigUserLibraries() {
-			PreferenceDialog dlg = 
-				PreferencesUtil.createPreferenceDialogOn(
-					getShell(), 
-					UserLibraryPreferencePage.ID,
-					new String[] {UserLibraryPreferencePage.ID},
-					null);
-			dlg.open();
-			model.notifyPropertyChange(JPA_LIBRARY, IDataModel.VALID_VALUES_CHG);
-		}
-	}
-	
-	
-	private final class PersistentClassManagementGroup
-	{
-		private final Button discoverClassesButton;
-		
-		private final Button listClassesButton;
-		
-		
-		public PersistentClassManagementGroup(Composite composite) {
-			Group group = new Group(composite, SWT.NONE);
-			group.setText(JptUiMessages.JpaFacetWizardPage_persistentClassManagementLabel);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.NEW_JPA_PROJECT_CONTENT_PAGE_CLASSPATH);
-			
-			boolean discoverClasses = model.getBooleanProperty(DISCOVER_ANNOTATED_CLASSES);
-			
-			discoverClassesButton = createButton(group, 1, JptUiMessages.JpaFacetWizardPage_discoverClassesButton, SWT.RADIO);
-			discoverClassesButton.setSelection(discoverClasses);
-			discoverClassesButton.addSelectionListener(
-				new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(DISCOVER_ANNOTATED_CLASSES, true);
-						}
-					}
-				);
-			
-			listClassesButton = createButton(group, 1, JptUiMessages.JpaFacetWizardPage_listClassesButton, SWT.RADIO);
-			listClassesButton.setSelection(! discoverClasses);
-			listClassesButton.addSelectionListener(
-				new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(DISCOVER_ANNOTATED_CLASSES, false);
-						}
-					}
-				);
-			
-			model.addListener(
-					new IDataModelListener() {
-						public void propertyChanged(DataModelEvent event) {
-							if (DISCOVER_ANNOTATED_CLASSES.equals(event.getPropertyName())) {
-								boolean discoverClasses = (Boolean) event.getProperty();
-								discoverClassesButton.setSelection(discoverClasses);
-								listClassesButton.setSelection(! discoverClasses);
-							}
-						}
-					}
-				);
-		}
-	}
-	
-	
-	private final class OrmXmlGroup
-	{
-		private final Button createOrmXmlButton;
-		
-		
-		public OrmXmlGroup(Composite composite) {
-			Composite group = new Composite(composite, SWT.NONE);
-			group.setLayout(new GridLayout());
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(group, IJpaHelpContextIds.DIALOG_CREATE_ORM);
-			
-			createOrmXmlButton = new Button(group, SWT.CHECK);
-			createOrmXmlButton.setText(JptUiMessages.JpaFacetWizardPage_createOrmXmlButton);
-			createOrmXmlButton.setSelection(model.getBooleanProperty(CREATE_ORM_XML));
-			createOrmXmlButton.addSelectionListener(
-					new SelectionListener() {
-						public void widgetDefaultSelected(SelectionEvent e) {
-							widgetSelected(e);
-						}
-						
-						public void widgetSelected(SelectionEvent e) {
-							model.setBooleanProperty(CREATE_ORM_XML, createOrmXmlButton.getSelection());
-						}
-					}
-				);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectFirstPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectFirstPage.java
deleted file mode 100644
index 299d2eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectFirstPage.java
+++ /dev/null
@@ -1,24 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.wizards;
-
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jst.j2ee.ui.project.facet.UtilityProjectFirstPage;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class NewJpaProjectFirstPage extends UtilityProjectFirstPage 
-{
-	public NewJpaProjectFirstPage(IDataModel dataModel, String pageName) {
-		super(dataModel, pageName);
-		setTitle(JptUiMessages.NewJpaProjectWizard_firstPage_title);
-		setDescription(JptUiMessages.NewJpaProjectWizard_firstPage_description);
-		setInfopopID(IJpaHelpContextIds.NEW_JPA_PROJECT);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectWizard.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectWizard.java
deleted file mode 100644
index d5f83a3..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/NewJpaProjectWizard.java
+++ /dev/null
@@ -1,53 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.wizards;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jst.j2ee.ui.project.facet.UtilityProjectWizard;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public class NewJpaProjectWizard extends UtilityProjectWizard {
-
-	public NewJpaProjectWizard() {
-		super();
-		setWindowTitle(JptUiMessages.NewJpaProjectWizard_title);
-	}
-
-	public NewJpaProjectWizard(IDataModel model) {
-		super(model);
-		setWindowTitle(JptUiMessages.NewJpaProjectWizard_title);
-	}
-	
-	// TODO - when we have a data model to add
-//	protected IDataModel createDataModel() {
-//		return DataModelFactory.createDataModel(new UtilityProjectCreationDataModelProvider());
-//	}
-	
-	protected ImageDescriptor getDefaultPageImageDescriptor() {
-		return JptUiPlugin.getPlugin().getImageDescriptor(JptUiIcons.JPA_WIZ_BANNER);
-	}
-	
-	protected IFacetedProjectTemplate getTemplate() {
-		return ProjectFacetsManager.getTemplate("jpt.jpa.template");
-	}
-	
-	protected IWizardPage createFirstPage() {
-		return new NewJpaProjectFirstPage(model, "first.page"); //$NON-NLS-1$ 
-	}
-	
-	protected String getFinalPerspectiveID() {
-		return "org.eclipse.jpt.ui.jpaPerspective";
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/JptUiXmlMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/JptUiXmlMessages.java
deleted file mode 100644
index c6804dd..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/JptUiXmlMessages.java
+++ /dev/null
@@ -1,51 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml;
-
-import org.eclipse.osgi.util.NLS;
-
-public class JptUiXmlMessages 
-{
-	private static final String BUNDLE_NAME = "jpt_ui_xml"; //$NON-NLS-1$
-	
-	public static String PersistentTypePage_javaClassLabel;
-	public static String PersistentTypePage_MetadataCompleteLabel;
-	public static String PersistentTypePage_AccessLabel;
-	
-	public static String PersistenceUnitMetadataSection_SchemaDefault;
-	public static String PersistenceUnitMetadataSection_CatalogDefault;
-	
-	public static String PersistentAttributePage_javaAttributeLabel;
-	
-	public static String XMLEntityMappingsPage_XmlMappingMetadataCompleteCheckBox;
-	public static String XMLEntityMappingsPage_CascadePersistCheckBox;
-	public static String XMLEntityMappingsPage_PersistenceUnitSection;
-	public static String XMLEntityMappingsPage_SchemaDefault;
-	public static String XMLEntityMappingsPage_SchemaNoDefaultSpecified;
-	public static String XMLEntityMappingsPage_CatalogDefault;
-	public static String XMLEntityMappingsPage_CatalogNoDefaultSpecified;
-	
-	public static String XmlSchemaChooser_SchemaChooser;
-	public static String XmlCatalogChooser_CatalogChooser;
-
-	public static String XmlJavaClassChooser_XmlJavaClassDialog_title;
-	public static String XmlJavaClassChooser_XmlJavaClassDialog_message;
-	public static String XmlPackageChooser_PackageDialog_title;
-	public static String XmlPackageChooser_PackageDialog_message; 
-	
-	
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, JptUiXmlMessages.class);
-	}
-	
-	private JptUiXmlMessages() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java
deleted file mode 100644
index 55afba9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java
+++ /dev/null
@@ -1,186 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.AccessType;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class AccessTypeComboViewer extends BaseJpaController
-{
-	private AccessHolder accessHolder;
-	private Adapter accessHolderListener;
-	
-	private CComboViewer comboViewer;
-
-
-	public AccessTypeComboViewer(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildAccessHolderListener();
-	}
-	
-	
-	private void buildAccessHolderListener() {
-		this.accessHolderListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				accessHolderChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		this.comboViewer = new CComboViewer(combo);
-		this.comboViewer.setLabelProvider(buildAccessTypeLabelProvider());
-		this.comboViewer.add(AccessType.VALUES.toArray());
-		
-		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				AccessTypeComboViewer.this.accessTypeSelectionChanged(event.getSelection());
-			}
-		});
-	}
-	
-	private IBaseLabelProvider buildAccessTypeLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == AccessType.DEFAULT) {
-					return JptUiMappingsMessages.AccessTypeCombo_default;
-				}
-				return super.getText(element);
-			}
-		};
-	}
-	
-	void accessTypeSelectionChanged(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			AccessType access = (AccessType) ((IStructuredSelection) selection).getFirstElement();
-			if ( ! this.accessHolder.getAccess().equals(access)) {
-				this.accessHolder.setAccess(access);
-			}
-		}
-	}
-
-	private void accessHolderChanged(Notification notification) {
-		if (notification.getFeatureID(accessHolder.featureClass()) == 
-				this.accessHolder.featureId()) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.accessHolder != null && this.accessHolder.wrappedObject() != null) {
-			this.accessHolder.wrappedObject().eAdapters().add(this.accessHolderListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.accessHolder != null && this.accessHolder.wrappedObject() != null) {
-			this.accessHolder.wrappedObject().eAdapters().remove(this.accessHolderListener);
-		}
-	}
-	
-	public final void populate(AccessHolder accessHolder) {
-		super.populate(accessHolder);
-	}
-
-	@Override
-	public void doPopulate(EObject obj) {
-		this.accessHolder = (AccessHolder) obj;
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		if (this.accessHolder.wrappedObject() == null) {
-			return;
-		}
-		
-		AccessType access = this.accessHolder.getAccess();
-		
-		if (((IStructuredSelection) this.comboViewer.getSelection()).getFirstElement() != access) {
-			this.comboViewer.setSelection(new StructuredSelection(access));
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.comboViewer.getCombo();
-	}
-	
-	/**
-	 * An interface to wrap an object that supports accessType
-	 * An object of this type must be passed in to populate(EObject)
-	 */
-	public static interface AccessHolder extends EObject {
-		/**
-		 * Return the AccessType from the wrapped object
-		 * @return
-		 */
-		AccessType getAccess();
-		
-		/**
-		 * Set the AccessType on the wrapped object
-		 * @param accessType
-		 */
-		void setAccess(AccessType accessType);
-		
-		/**
-		 * Return the Class of the wrapped object
-		 * @return
-		 */
-		Class featureClass();
-		
-		/**
-		 * Return the feature id of accessType on the wrapped object
-		 * @return
-		 */
-		int featureId();
-		
-		/**
-		 * The wrapped EObject that the accessType is stored on
-		 * @return
-		 */
-		EObject wrappedObject();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CascadePersistCheckBox.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CascadePersistCheckBox.java
deleted file mode 100644
index 332079a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CascadePersistCheckBox.java
+++ /dev/null
@@ -1,128 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.PersistenceUnitDefaults;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class CascadePersistCheckBox extends BaseJpaController
-{
-	private PersistenceUnitDefaults persistenceUnitDefaults;
-	private Adapter persistenceUnitDefaultsListener;
-	
-	private Button button;
-
-
-	public CascadePersistCheckBox(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildPeristenceUnitDefaultsListener();
-	}
-	
-	private void buildPeristenceUnitDefaultsListener() {
-		this.persistenceUnitDefaultsListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				persistenceUnitDefaultsChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.button = getWidgetFactory().createButton(
-						parent, 
-						JptUiXmlMessages.XMLEntityMappingsPage_CascadePersistCheckBox,
-						SWT.CHECK);
-		
-		this.button.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				CascadePersistCheckBox.this.cascadePersistSelectionChanged();
-			}
-		
-			public void widgetDefaultSelected(SelectionEvent e) {
-				CascadePersistCheckBox.this.cascadePersistSelectionChanged();
-			}
-		});
-	}
-	
-	void cascadePersistSelectionChanged() {
-		boolean cascadePersist = this.button.getSelection();
-		if (this.persistenceUnitDefaults.isCascadePersist() != cascadePersist) {
-			this.persistenceUnitDefaults.setCascadePersist(cascadePersist);
-		}
-	}
-
-	private void persistenceUnitDefaultsChanged(Notification notification) {
-		if (notification.getFeatureID(PersistenceUnitDefaults.class) == 
-				OrmPackage.PERSISTENCE_UNIT_DEFAULTS__CASCADE_PERSIST) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.persistenceUnitDefaults != null) {
-			this.persistenceUnitDefaults.eAdapters().add(this.persistenceUnitDefaultsListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.persistenceUnitDefaults != null) {
-			this.persistenceUnitDefaults.eAdapters().remove(this.persistenceUnitDefaultsListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.persistenceUnitDefaults = (PersistenceUnitDefaults) obj;
-		populateButton();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateButton();
-	}
-	
-	private void populateButton() {
-		boolean cascadePersist = false;
-		if (this.persistenceUnitDefaults != null) {
-			cascadePersist  = this.persistenceUnitDefaults.isCascadePersist();
-		}
-		
-		if (this.button.getSelection() != cascadePersist) {
-			this.button.setSelection(cascadePersist);
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.button;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CommonWidgets.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CommonWidgets.java
deleted file mode 100644
index 01e5c21..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/CommonWidgets.java
+++ /dev/null
@@ -1,80 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class CommonWidgets 
-{
-	public static Label buildJavaClassLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		Label label = widgetFactory.createLabel(parent, JptUiXmlMessages.PersistentTypePage_javaClassLabel);
-		return label;
-	}
-	
-	public static XmlJavaClassChooser buildJavaClassChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new XmlJavaClassChooser(parent, commandStack, widgetFactory);
-	}
-	
-	public static Label buildJavaAttributeNameLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		Label label = widgetFactory.createLabel(parent, JptUiXmlMessages.PersistentAttributePage_javaAttributeLabel);
-		return label;
-	}
-	
-	public static XmlJavaAttributeChooser buildJavaAttributeChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new XmlJavaAttributeChooser(parent, commandStack, widgetFactory);
-	}
-	
-	
-	public static Label buildAccessLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiXmlMessages.PersistentTypePage_AccessLabel);
-	}
-	
-	public static AccessTypeComboViewer buildAccessTypeComboViewer(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new AccessTypeComboViewer(parent, commandStack, widgetFactory);
-	}
-
-	
-	public static Label buildCatalogLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiXmlMessages.XmlCatalogChooser_CatalogChooser);
-	}
-	
-	public static StringWithDefaultChooser buildCatalogChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new StringWithDefaultChooser(parent, commandStack, widgetFactory);
-	}
-
-	
-	public static Label buildSchemaLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, JptUiXmlMessages.XmlSchemaChooser_SchemaChooser);
-	}
-	
-	public static StringWithDefaultChooser buildSchemaChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new StringWithDefaultChooser(parent, commandStack, widgetFactory);
-	}
-
-	
-	public static Label buildPackageLabel(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return widgetFactory.createLabel(parent, "Package:");
-	}
-	
-	public static XmlPackageChooser buildXmlPackageChooser(
-			Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		return new XmlPackageChooser(parent, commandStack, widgetFactory);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java
deleted file mode 100644
index 4d98719..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java
+++ /dev/null
@@ -1,155 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
-import org.eclipse.jpt.core.internal.mappings.DefaultFalseBoolean;
-import org.eclipse.jpt.core.internal.mappings.InheritanceType;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class MetaDataCompleteComboViewer extends BaseJpaController
-{
-	private XmlTypeMapping mapping;
-	private Adapter typeMappingListener;
-	
-	private CComboViewer comboViewer;
-
-
-	public MetaDataCompleteComboViewer(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildTypeMappingListener();
-	}
-	
-	
-	private void buildTypeMappingListener() {
-		this.typeMappingListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				typeMappingChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		CCombo combo = getWidgetFactory().createCCombo(parent);
-		this.comboViewer = new CComboViewer(combo);
-		this.comboViewer.setLabelProvider(buildLabelProvider());
-		this.comboViewer.add(DefaultFalseBoolean.VALUES.toArray());
-		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				MetaDataCompleteComboViewer.this.metadataCompleteSelectionChanged(event.getSelection());
-			}
-		});
-	}
-	private IBaseLabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				if (element == DefaultFalseBoolean.DEFAULT) {
-					//TODO need to move this to the model, don't want hardcoded String
-					return NLS.bind(JptUiMappingsMessages.MetaDataCompleteCombo_Default, "False");
-				}
-				return super.getText(element);
-			}
-		};
-	}
-
-	void metadataCompleteSelectionChanged(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			DefaultFalseBoolean metadataComplete = (DefaultFalseBoolean) ((IStructuredSelection) selection).getFirstElement();
-			if ( ! this.mapping.getMetadataComplete().equals(metadataComplete)) {
-				this.mapping.setMetadataComplete(metadataComplete);
-//				this.editingDomain.getCommandStack().execute(
-//					SetCommand.create(
-//						this.editingDomain,
-//						this.basicMapping,
-//						OrmPackage.eINSTANCE.getBasicMapping_Optional(),
-//						optional
-//					)
-//				);
-			}
-		}
-	}
-
-	private void typeMappingChanged(Notification notification) {
-		if (notification.getFeatureID(XmlTypeMapping.class) == 
-				OrmPackage.XML_TYPE_MAPPING__METADATA_COMPLETE) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.mapping != null) {
-			this.mapping.eAdapters().add(this.typeMappingListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.mapping != null) {
-			this.mapping.eAdapters().remove(this.typeMappingListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.mapping = (XmlTypeMapping) obj;
-		populateCombo();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateCombo();
-	}
-	
-	private void populateCombo() {
-		if (this.mapping == null) {
-			return;
-		}
-		
-		DefaultFalseBoolean metadataComplete = mapping.getMetadataComplete();
-		
-		if (((IStructuredSelection) this.comboViewer.getSelection()).getFirstElement() != metadataComplete) {
-			this.comboViewer.setSelection(new StructuredSelection(metadataComplete));
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.comboViewer.getCombo();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/PersistenceUnitMetadataSection.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/PersistenceUnitMetadataSection.java
deleted file mode 100644
index 253d9c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/PersistenceUnitMetadataSection.java
+++ /dev/null
@@ -1,285 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.AccessType;
-import org.eclipse.jpt.core.internal.XmlEObject;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.PersistenceUnitDefaults;
-import org.eclipse.jpt.core.internal.content.orm.PersistenceUnitDefaultsInternal;
-import org.eclipse.jpt.core.internal.content.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser.StringHolder;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.jpt.ui.internal.xml.details.AccessTypeComboViewer.AccessHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class PersistenceUnitMetadataSection extends BaseJpaController
-{
-	
-	private Section section;
-	private XmlMappingMetadataCompleteCheckBox xmlMappingMetadataCompleteCheckBox;
-	private StringWithDefaultChooser xmlSchemaChooser;
-	private StringWithDefaultChooser xmlCatalogChooser;
-	private AccessTypeComboViewer accessComboViewer;
-	private CascadePersistCheckBox cascadePersistCheckBox;
-	
-	public PersistenceUnitMetadataSection(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, commandStack, widgetFactory);
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-	    this.section = getWidgetFactory().createSection(parent, SWT.FLAT | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
-	    this.section.setText(JptUiXmlMessages.XMLEntityMappingsPage_PersistenceUnitSection);
-
-		Composite persistenceUnitComposite = getWidgetFactory().createComposite(this.section);
-		this.section.setClient(persistenceUnitComposite);
-		
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 1;
-		persistenceUnitComposite.setLayout(layout);
-
-	    
-	    this.xmlMappingMetadataCompleteCheckBox = buildXmlMappingMetadataCompleteCheckBox(persistenceUnitComposite);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.xmlMappingMetadataCompleteCheckBox.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(xmlMappingMetadataCompleteCheckBox.getControl(), IJpaHelpContextIds.ENTITY_ORM_XML);
-		
-		CommonWidgets.buildSchemaLabel(persistenceUnitComposite, getWidgetFactory());
-		
-		this.xmlSchemaChooser = CommonWidgets.buildSchemaChooser(persistenceUnitComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.xmlSchemaChooser.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(xmlSchemaChooser.getControl(), IJpaHelpContextIds.ENTITY_ORM_SCHEMA);
-
-		CommonWidgets.buildCatalogLabel(persistenceUnitComposite, getWidgetFactory());
-		
-		this.xmlCatalogChooser = CommonWidgets.buildCatalogChooser(persistenceUnitComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.xmlCatalogChooser.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(xmlCatalogChooser.getControl(), IJpaHelpContextIds.ENTITY_ORM_CATALOG);
-		
-		CommonWidgets.buildAccessLabel(persistenceUnitComposite, getWidgetFactory());
-		
-		this.accessComboViewer = CommonWidgets.buildAccessTypeComboViewer(persistenceUnitComposite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.accessComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(accessComboViewer.getControl(), IJpaHelpContextIds.ENTITY_ORM_ACCESS);
-
-	
-	    this.cascadePersistCheckBox = buildCascadePersistCheckBox(persistenceUnitComposite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.cascadePersistCheckBox.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(cascadePersistCheckBox.getControl(), IJpaHelpContextIds.ENTITY_ORM_CASCADE);
-
-	}
-	
-	private XmlMappingMetadataCompleteCheckBox buildXmlMappingMetadataCompleteCheckBox(Composite parent) {
-		return new XmlMappingMetadataCompleteCheckBox(parent, this.commandStack, getWidgetFactory());
-	}
-	
-	private CascadePersistCheckBox buildCascadePersistCheckBox(Composite parent) {
-		return new CascadePersistCheckBox(parent, this.commandStack, getWidgetFactory());
-	}
-
-	@Override
-	protected void engageListeners() {
-	}
-	
-	@Override
-	protected void disengageListeners() {
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		PersistenceUnitMetadata persistenceUnitMetadata = (PersistenceUnitMetadata) obj;
-		this.xmlMappingMetadataCompleteCheckBox.populate(persistenceUnitMetadata);
-		if (persistenceUnitMetadata != null) {
-			this.accessComboViewer.populate(new MyAccessHolder(persistenceUnitMetadata.getPersistenceUnitDefaults()));
-			this.xmlSchemaChooser.populate(new SchemaHolder(persistenceUnitMetadata.getPersistenceUnitDefaults()));
-			this.xmlCatalogChooser.populate(new CatalogHolder(persistenceUnitMetadata.getPersistenceUnitDefaults()));
-			this.cascadePersistCheckBox.populate(persistenceUnitMetadata.getPersistenceUnitDefaults());
-		}
-		else {
-			this.accessComboViewer.populate(new MyAccessHolder(null));			
-			this.xmlSchemaChooser.populate(new SchemaHolder(null));			
-			this.xmlCatalogChooser.populate(new CatalogHolder(null));			
-			this.cascadePersistCheckBox.populate(null);			
-		}
-	}
-	private class MyAccessHolder extends XmlEObject implements AccessHolder{
-		
-		private PersistenceUnitDefaultsInternal persistenceUnitDefaults;
-		MyAccessHolder(PersistenceUnitDefaults persistenceUnitDefaultsInternal) {
-			super();
-			this.persistenceUnitDefaults = (PersistenceUnitDefaultsInternal) persistenceUnitDefaultsInternal;
-		}
-		public void setAccess(AccessType accessType) {
-			persistenceUnitDefaults.setAccess(accessType);
-		}
-	
-		public AccessType getAccess() {
-			return persistenceUnitDefaults.getAccess();
-		}
-		
-		public Class featureClass() {
-			return PersistenceUnitDefaults.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.PERSISTENCE_UNIT_DEFAULTS__ACCESS;
-		}
-		
-		public EObject wrappedObject() {
-			return this.persistenceUnitDefaults;
-		}
-	}
-	
-	private class SchemaHolder extends XmlEObject implements StringHolder {
-		private PersistenceUnitDefaults persistenceUnitDefaults;
-		SchemaHolder(PersistenceUnitDefaults persistenceUnitDefaults) {
-			super();
-			this.persistenceUnitDefaults = persistenceUnitDefaults;
-		}
-		
-		public Class featureClass() {
-			return PersistenceUnitDefaults.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.PERSISTENCE_UNIT_DEFAULTS__SCHEMA;
-		}
-		
-		public boolean supportsDefault() {
-			return false;
-		}
-		
-		public int defaultFeatureId() {
-			throw new UnsupportedOperationException();
-		}
-		
-		public String defaultItem() {
-			return JptUiXmlMessages.PersistenceUnitMetadataSection_SchemaDefault;
-		}
-		
-		public String getString() {
-			return this.persistenceUnitDefaults.getSchema();
-		}
-		
-		public void setString(String newSchema) {
-			this.persistenceUnitDefaults.setSchema(newSchema);
-		}
-		
-		public EObject wrappedObject() {
-			return this.persistenceUnitDefaults;
-		}
-	}
-	
-	private class CatalogHolder extends XmlEObject implements StringHolder {
-		private PersistenceUnitDefaults persistenceUnitDefaults;
-		CatalogHolder(PersistenceUnitDefaults persistenceUnitDefaults) {
-			super();
-			this.persistenceUnitDefaults = persistenceUnitDefaults;
-		}
-		
-		public Class featureClass() {
-			return PersistenceUnitDefaults.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.PERSISTENCE_UNIT_DEFAULTS__CATALOG;
-		}
-		
-		public boolean supportsDefault() {
-			return false;
-		}
-		
-		public int defaultFeatureId() {
-			throw new UnsupportedOperationException();
-		}
-		
-		public String defaultItem() {
-			return JptUiXmlMessages.PersistenceUnitMetadataSection_CatalogDefault;
-		}
-		
-		public String getString() {
-			return this.persistenceUnitDefaults.getCatalog();
-		}
-		
-		public void setString(String string) {
-			this.persistenceUnitDefaults.setCatalog(string);
-		}
-		
-		public EObject wrappedObject() {
-			return this.persistenceUnitDefaults;
-		}
-		
-	}
-
-	@Override
-	protected void doPopulate() {
-		this.xmlMappingMetadataCompleteCheckBox.populate();
-		this.xmlSchemaChooser.populate();
-		this.xmlCatalogChooser.populate();
-		this.accessComboViewer.populate();
-		this.cascadePersistCheckBox.populate();
-	}
-	
-	@Override
-	public void dispose() {
-		this.xmlMappingMetadataCompleteCheckBox.dispose();
-		this.xmlSchemaChooser.dispose();
-		this.xmlCatalogChooser.dispose();
-		this.accessComboViewer.dispose();
-		this.cascadePersistCheckBox.dispose();
-		super.dispose();
-	}	
-	
-	public Section getSection() {
-		return this.section;
-	}
-	
-	@Override
-	public Control getControl() {
-		return getSection();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlDetailsProvider.java
deleted file mode 100644
index 0bcd70d..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlDetailsProvider.java
+++ /dev/null
@@ -1,47 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.core.internal.content.orm.IXmlContentNodes;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsPage;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlDetailsProvider 
-	implements IJpaDetailsProvider 
-{
-	public XmlDetailsProvider() {
-		super();
-	}
-	
-	public String fileContentType() {
-		return JptCorePlugin.ORM_XML_CONTENT_TYPE;
-	}
-	
-	public IJpaDetailsPage buildDetailsPage(
-			Composite parentComposite, Object contentNodeId, TabbedPropertySheetWidgetFactory widgetFactory) {
-		if (contentNodeId.equals(IXmlContentNodes.ENTITY_MAPPINGS_ID)) {
-			return new XmlEntityMappingsDetailsPage(parentComposite, widgetFactory);
-		}
-		else if (contentNodeId.equals(IXmlContentNodes.PERSISTENT_TYPE_ID)) {
-			return new XmlPersistentTypeDetailsPage(parentComposite, widgetFactory);
-		}
-		else if (contentNodeId.equals(IXmlContentNodes.PERSISTENT_ATTRIBUTE_ID)) {
-			return new XmlPersistentAttributeDetailsPage(parentComposite, widgetFactory);
-		}
-		
-		return null;
-	}
-	
-	public void dispose() {
-		// no op ... for now
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlEntityMappingsDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlEntityMappingsDetailsPage.java
deleted file mode 100644
index b70bde8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlEntityMappingsDetailsPage.java
+++ /dev/null
@@ -1,274 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.AccessType;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.XmlEObject;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappings;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaDetailsPage;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser;
-import org.eclipse.jpt.ui.internal.mappings.details.StringWithDefaultChooser.StringHolder;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.jpt.ui.internal.xml.details.AccessTypeComboViewer.AccessHolder;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlEntityMappingsDetailsPage extends BaseJpaDetailsPage
-{
-	private EntityMappings entityMappings;
-
-	private XmlPackageChooser xmlPackageChooser;
-	
-	private StringWithDefaultChooser xmlSchemaChooser;
-	
-	private StringWithDefaultChooser xmlCatalogChooser;
-	
-	private AccessTypeComboViewer accessComboViewer;
-	
-	private PersistenceUnitMetadataSection persistenceUnitMetadataSection;
-	
-	public XmlEntityMappingsDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, new BasicCommandStack(), widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite composite) {
-		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-		GridLayout layout = new GridLayout(2, false);
-		layout.horizontalSpacing = 6;
-		composite.setLayout(layout);
-		
-		GridData gridData;
-
-		CommonWidgets.buildPackageLabel(composite, getWidgetFactory());
-		
-		this.xmlPackageChooser = CommonWidgets.buildXmlPackageChooser(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.xmlPackageChooser.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(xmlPackageChooser.getControl(), IJpaHelpContextIds.ENTITY_ORM_PACKAGE);
-
-		
-		CommonWidgets.buildSchemaLabel(composite, getWidgetFactory());
-		
-		this.xmlSchemaChooser = CommonWidgets.buildSchemaChooser(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.xmlSchemaChooser.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(xmlSchemaChooser.getControl(), IJpaHelpContextIds.ENTITY_ORM_SCHEMA);
-
-		
-		CommonWidgets.buildCatalogLabel(composite, getWidgetFactory());
-		
-		this.xmlCatalogChooser = CommonWidgets.buildCatalogChooser(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.xmlCatalogChooser.getCombo().setLayoutData(gridData);
-		helpSystem.setHelp(xmlCatalogChooser.getControl(), IJpaHelpContextIds.ENTITY_ORM_CATALOG);
-		
-		
-		CommonWidgets.buildAccessLabel(composite, getWidgetFactory());
-		
-		this.accessComboViewer = CommonWidgets.buildAccessTypeComboViewer(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.accessComboViewer.getControl().setLayoutData(gridData);
-		helpSystem.setHelp(accessComboViewer.getControl(), IJpaHelpContextIds.ENTITY_ORM_ACCESS);
-		
-		this.persistenceUnitMetadataSection = new PersistenceUnitMetadataSection(composite, this.commandStack, getWidgetFactory());
-		
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.horizontalSpan = 2;
-		this.persistenceUnitMetadataSection.getSection().setLayoutData(gridData);
-	}
-
-	
-	@Override
-	protected void doPopulate(IJpaContentNode contentNode) {
-		this.entityMappings = (EntityMappings) contentNode;
-		this.xmlPackageChooser.populate(this.entityMappings);
-		this.xmlSchemaChooser.populate(new SchemaHolder(this.entityMappings));
-		this.xmlCatalogChooser.populate(new CatalogHolder(this.entityMappings));
-		this.accessComboViewer.populate(new MyAccessHolder(this.entityMappings));	
-		if (this.entityMappings != null) {
-			this.persistenceUnitMetadataSection.populate(this.entityMappings.getPersistenceUnitMetadata());
-		}
-		else {
-			this.persistenceUnitMetadataSection.populate(null);
-		}
-	}
-
-	@Override
-	protected void doPopulate() {
-		this.xmlPackageChooser.populate();
-		this.xmlSchemaChooser.populate();
-		this.xmlCatalogChooser.populate();
-		this.accessComboViewer.populate();
-		this.persistenceUnitMetadataSection.populate();
-	}
-	
-	@Override
-	public void dispose() {
-		this.xmlPackageChooser.dispose();
-		this.xmlSchemaChooser.dispose();
-		this.xmlCatalogChooser.dispose();
-		this.accessComboViewer.dispose();
-		this.persistenceUnitMetadataSection.dispose();
-		super.dispose();
-	}
-	
-	@Override
-	protected void engageListeners() {
-	}
-	
-	@Override
-	protected void disengageListeners() {
-	}
-
-	
-	private class MyAccessHolder extends XmlEObject implements AccessHolder{
-		
-		private EntityMappingsInternal entityMappings;
-		MyAccessHolder(EntityMappings entityMappings) {
-			super();
-			this.entityMappings = (EntityMappingsInternal) entityMappings;
-		}
-		public void setAccess(AccessType accessType) {
-			entityMappings.setSpecifiedAccess(accessType);
-		}
-	
-		public AccessType getAccess() {
-			return entityMappings.getSpecifiedAccess();
-		}
-		
-		public Class featureClass() {
-			return EntityMappingsInternal.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.ENTITY_MAPPINGS_INTERNAL__SPECIFIED_ACCESS;
-		}
-		
-		public EObject wrappedObject() {
-			return this.entityMappings;
-		}
-		
-	}
-	
-	private class SchemaHolder extends XmlEObject implements StringHolder {
-		private EntityMappingsInternal entityMappings;
-		SchemaHolder(EntityMappings entityMappings) {
-			super();
-			this.entityMappings = (EntityMappingsInternal) entityMappings;
-		}
-		
-		public Class featureClass() {
-			return EntityMappingsInternal.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.ENTITY_MAPPINGS_INTERNAL__SPECIFIED_SCHEMA;
-		}
-		
-		public boolean supportsDefault() {
-			return true;
-		}
-		
-		public int defaultFeatureId() {
-			return OrmPackage.ENTITY_MAPPINGS_INTERNAL__DEFAULT_SCHEMA;
-		}
-		
-		public String defaultItem() {
-			String defaultSchema = this.entityMappings.getDefaultSchema();
-			if (defaultSchema != null) {
-				return NLS.bind(JptUiXmlMessages.XMLEntityMappingsPage_SchemaDefault, defaultSchema);
-			}
-			return JptUiXmlMessages.XMLEntityMappingsPage_SchemaNoDefaultSpecified;
-		}
-		
-		public String getString() {
-			return this.entityMappings.getSpecifiedSchema();
-		}
-		
-		public void setString(String newSchema) {
-			this.entityMappings.setSpecifiedSchema(newSchema);
-		}
-		
-		public EObject wrappedObject() {
-			return this.entityMappings;
-		}
-	}
-	
-	private class CatalogHolder extends XmlEObject implements StringHolder {
-		private EntityMappingsInternal entityMappings;
-		CatalogHolder(EntityMappings entityMappings) {
-			super();
-			this.entityMappings = (EntityMappingsInternal) entityMappings;
-		}
-		
-		public Class featureClass() {
-			return EntityMappingsInternal.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.ENTITY_MAPPINGS_INTERNAL__SPECIFIED_CATALOG;
-		}
-		
-		public boolean supportsDefault() {
-			return true;
-		}
-		
-		public int defaultFeatureId() {
-			return OrmPackage.ENTITY_MAPPINGS_INTERNAL__DEFAULT_CATALOG;
-		}
-		
-		public String defaultItem() {
-			String defaultCatalog = this.entityMappings.getDefaultCatalog();
-			if (defaultCatalog != null) {
-				return NLS.bind(JptUiXmlMessages.XMLEntityMappingsPage_CatalogDefault, defaultCatalog);
-			}
-			return JptUiXmlMessages.XMLEntityMappingsPage_CatalogNoDefaultSpecified;
-		}
-		
-		public String getString() {
-			return this.entityMappings.getSpecifiedCatalog();
-		}
-		
-		public void setString(String newCatalog) {
-			this.entityMappings.setSpecifiedCatalog(newCatalog);
-		}
-		
-		public EObject wrappedObject() {
-			return this.entityMappings;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaAttributeChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaAttributeChooser.java
deleted file mode 100644
index 8f58be6..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaAttributeChooser.java
+++ /dev/null
@@ -1,133 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlJavaAttributeChooser extends BaseJpaController
-{
-	private XmlPersistentAttribute attribute;
-	private Adapter persistentAttributeListener;
-	
-	private Text text;
-	
-	
-	public XmlJavaAttributeChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildPersistentAttributeListener();
-	}
-	
-	
-	private void buildPersistentAttributeListener() {
-		this.persistentAttributeListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				persistentAttributeChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		text = getWidgetFactory().createText(parent, "");
-		text.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					textModified(e);
-				}
-			});
-	}
-	
-	private void textModified(ModifyEvent e) {
-		if (isPopulating()) {
-			return;
-		}
-		
-		String text = ((Text) e.getSource()).getText();
-		attribute.setName(text);
-		
-		// TODO Does this need to be done?
-		//this.editingDomain.getCommandStack().execute(SetCommand.create(this.editingDomain, this.entity, MappingsPackage.eINSTANCE.getEntity_SpecifiedName(), text));
-	}
-	
-	private void persistentAttributeChanged(Notification notification) {
-		if (notification.getFeatureID(XmlAttributeMapping.class) == 
-				OrmPackage.XML_PERSISTENT_ATTRIBUTE__NAME) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (attribute != null) {
-			attribute.eAdapters().add(persistentAttributeListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (attribute != null) {
-			attribute.eAdapters().remove(persistentAttributeListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		attribute = (obj == null) ? null : ((XmlAttributeMapping) obj).getPersistentAttribute();
-		populateText();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateText();
-	}
-	
-	private void populateText() {
-		if (attribute == null) {
-			text.clearSelection();
-			return;
-		}
-		
-		String name = attribute.getName();
-		
-		if (name == null) {
-			name = "";
-		}
-		setTextData(name);
-	}
-	
-	private void setTextData(String textData) {
-		if (! textData.equals(text.getText())) {
-			text.setText(textData);
-		}
-	}
-	
-	public Control getControl() {
-		return text;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaClassChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaClassChooser.java
deleted file mode 100644
index 43fead2..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlJavaClassChooser.java
+++ /dev/null
@@ -1,249 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaTypeCompletionProcessor;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-//TODO possibly help the user and if they have chosen a package at the entity-mappings level
-//only insert the class name in the xml file if they choose a class from the package.  
-//Not sure if this should be driven by the UI or by ui api in the model
-public class XmlJavaClassChooser extends BaseJpaController
-{
-	private XmlPersistentType persistentType;
-	private Adapter persistentTypeListener;
-	
-	private Composite composite;
-	private Text text;
-	private JavaTypeCompletionProcessor javaTypeCompletionProcessor;
-	
-	public XmlJavaClassChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildPersistentTypeListener();
-	}
-	
-	
-	private void buildPersistentTypeListener() {
-		persistentTypeListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				persistentTypeChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.composite = getWidgetFactory().createComposite(parent);
-	    GridLayout gridLayout = new GridLayout();
-	    gridLayout.marginHeight = 0;
-	    gridLayout.marginWidth = 1;
-	    gridLayout.numColumns = 2;
-	    this.composite.setLayout(gridLayout);
-	    
-		text = getWidgetFactory().createText(this.composite, "");
-		GridData data = new GridData();
-	    data.grabExcessHorizontalSpace = true;
-	    data.horizontalAlignment = GridData.FILL;
-	    this.text.setLayoutData(data);
-		text.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					textModified(e);
-				}
-			});
-
-		//TODO bug 156185 - when this is fixed there should be api for this
-		this.javaTypeCompletionProcessor = new JavaTypeCompletionProcessor(false, false);
-		ControlContentAssistHelper.createTextContentAssistant(this.text,  this.javaTypeCompletionProcessor);
-
-		
-		Button browseButton = getWidgetFactory().createButton(this.composite, "Browse...", SWT.FLAT);
-		data = new GridData();
-		browseButton.setLayoutData(data);
-		browseButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				IType type = chooseType();
-				if (type != null) {
-					text.setText(type.getFullyQualifiedName());
-				}
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				IType type = chooseType();
-				if (type != null) {
-					text.setText(type.getFullyQualifiedName());
-				}
-			}
-		});
-
-	}
-
-	private void textModified(ModifyEvent e) {
-		if (isPopulating()) {
-			return;
-		}
-		
-		String text = ((Text) e.getSource()).getText();
-		persistentType.setClass(text);
-		
-		// TODO Does this need to be done?
-		//this.editingDomain.getCommandStack().execute(SetCommand.create(this.editingDomain, this.entity, MappingsPackage.eINSTANCE.getEntity_SpecifiedName(), text));
-	}
-	
-	
-	protected IType chooseType() {
-		IPackageFragmentRoot root= getPackageFragmentRoot();
-		if (root == null) {
-			return null;
-		}	
-		
-		IJavaElement[] elements= new IJavaElement[] { root.getJavaProject() };
-		IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements);
-		IProgressService service = PlatformUI.getWorkbench().getProgressService();
-		
-		SelectionDialog typeSelectionDialog;
-		try {
-			typeSelectionDialog = JavaUI.createTypeDialog(this.text.getShell(), service, scope, IJavaElementSearchConstants.CONSIDER_CLASSES, false, getType());
-		}
-		catch (JavaModelException e) {
-			JptUiPlugin.log(e);
-			throw new RuntimeException(e);
-		}
-		typeSelectionDialog.setTitle(JptUiXmlMessages.XmlJavaClassChooser_XmlJavaClassDialog_title); 
-		typeSelectionDialog.setMessage(JptUiXmlMessages.XmlJavaClassChooser_XmlJavaClassDialog_message); 
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-		return null;
-	}
-	
-	private String getType() {
-		return this.text.getText();
-	}
-	
-	private IPackageFragmentRoot getPackageFragmentRoot() {
-		IProject project = this.persistentType.getJpaProject().getProject();
-		IJavaProject root = JavaCore.create(project);
-		try {
-			return root.getAllPackageFragmentRoots()[0];
-		}
-		catch (JavaModelException e) {
-			JptUiPlugin.log(e);
-		}
-		return null;
-	}
-
-	private void persistentTypeChanged(Notification notification) {
-		if (notification.getFeatureID(XmlPersistentType.class) == 
-				OrmPackage.XML_PERSISTENT_TYPE__CLASS) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (persistentType != null) {
-			persistentType.eAdapters().add(persistentTypeListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (persistentType != null) {
-			persistentType.eAdapters().remove(persistentTypeListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		persistentType = (obj == null) ? null : ((XmlTypeMapping) obj).getPersistentType();
-		populateText();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateText();
-	}
-	
-	private void populateText() {
-		if (persistentType == null) {
-			text.clearSelection();
-			return;
-		}
-		
-		IPackageFragmentRoot root = getPackageFragmentRoot();
-		if (root != null) {
-			 this.javaTypeCompletionProcessor.setPackageFragment(root.getPackageFragment(""));
-		}
-		
-
-		String javaClass = persistentType.getClass_();
-		
-		if (javaClass == null) {
-			setTextData("");
-		}
-		else {
-			setTextData(javaClass);
-		}
-	}
-	
-	private void setTextData(String textData) {
-		if (! textData.equals(text.getText())) {
-			text.setText(textData);
-		}
-	}
-	
-	public Control getControl() {
-		return this.composite;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlMappingMetadataCompleteCheckBox.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlMappingMetadataCompleteCheckBox.java
deleted file mode 100644
index 5cdd038..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlMappingMetadataCompleteCheckBox.java
+++ /dev/null
@@ -1,128 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlMappingMetadataCompleteCheckBox extends BaseJpaController
-{
-	private PersistenceUnitMetadata persistenceUnitMetadata;
-	private Adapter persistenceUnitMetadataListener;
-	
-	private Button button;
-
-
-	public XmlMappingMetadataCompleteCheckBox(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildPeristenceUnitMetadataListener();
-	}
-	
-	private void buildPeristenceUnitMetadataListener() {
-		this.persistenceUnitMetadataListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				persistenceUnitMetadataChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.button = getWidgetFactory().createButton(
-						parent, 
-						JptUiXmlMessages.XMLEntityMappingsPage_XmlMappingMetadataCompleteCheckBox,
-						SWT.CHECK);
-		
-		this.button.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				XmlMappingMetadataCompleteCheckBox.this.xmlMappingMetadataCompleteSelectionChanged();
-			}
-		
-			public void widgetDefaultSelected(SelectionEvent e) {
-				XmlMappingMetadataCompleteCheckBox.this.xmlMappingMetadataCompleteSelectionChanged();
-			}
-		});
-	}
-	
-	void xmlMappingMetadataCompleteSelectionChanged() {
-		boolean xmlMappingMetadataComplete = this.button.getSelection();
-		if (this.persistenceUnitMetadata.isXmlMappingMetadataComplete() != xmlMappingMetadataComplete) {
-			this.persistenceUnitMetadata.setXmlMappingMetadataComplete(xmlMappingMetadataComplete);
-		}
-	}
-
-	private void persistenceUnitMetadataChanged(Notification notification) {
-		if (notification.getFeatureID(PersistenceUnitMetadata.class) == 
-				OrmPackage.PERSISTENCE_UNIT_METADATA__XML_MAPPING_METADATA_COMPLETE) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.persistenceUnitMetadata != null) {
-			this.persistenceUnitMetadata.eAdapters().add(this.persistenceUnitMetadataListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.persistenceUnitMetadata != null) {
-			this.persistenceUnitMetadata.eAdapters().remove(this.persistenceUnitMetadataListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.persistenceUnitMetadata = (PersistenceUnitMetadata) obj;
-		populateButton();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateButton();
-	}
-	
-	private void populateButton() {
-		boolean xmlMappingMetadataComplete = false;
-		if (this.persistenceUnitMetadata != null) {
-			xmlMappingMetadataComplete  = this.persistenceUnitMetadata.isXmlMappingMetadataComplete();
-		}
-		
-		if (this.button.getSelection() != xmlMappingMetadataComplete) {
-			this.button.setSelection(xmlMappingMetadataComplete);
-		}
-	}
-
-	
-	@Override
-	public Control getControl() {
-		return this.button;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java
deleted file mode 100644
index fbaf451..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java
+++ /dev/null
@@ -1,255 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
-import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaPackageCompletionProcessor;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.XmlEObject;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappings;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.ui.internal.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Text;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlPackageChooser extends BaseJpaController
-{
-	private EntityMappingsInternal entityMappings;
-	private Adapter entityMappingsListener;
-    private IContentAssistProcessor contentAssistProcessor;
-	
-    private Composite composite;
-	private Text text;
-	
-	
-	public XmlPackageChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, theCommandStack, widgetFactory);
-		buildSchemaHolderListener();
-	}
-	
-	
-	private void buildSchemaHolderListener() {
-		this.entityMappingsListener = new AdapterImpl() {
-			public void notifyChanged(Notification notification) {
-				entityMappingsChanged(notification);
-			}
-		};
-	}
-	
-	@Override
-	protected void buildWidget(Composite parent) {
-		this.composite = getWidgetFactory().createComposite(parent);
-	    GridLayout gridLayout = new GridLayout();
-	    gridLayout.marginHeight = 0;
-	    gridLayout.marginWidth = 1;
-	    gridLayout.numColumns = 2;
-	    this.composite.setLayout(gridLayout);
-		this.text = getWidgetFactory().createText(this.composite, "");
-		GridData data = new GridData();
-	    data.grabExcessHorizontalSpace = true;
-	    data.horizontalAlignment = GridData.FILL;
-	    this.text.setLayoutData(data);
-		this.contentAssistProcessor = new JavaPackageCompletionProcessor(new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_ROOT));
-		ControlContentAssistHelper.createTextContentAssistant(this.text, this.contentAssistProcessor);
-
-	    this.text.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					textModified(e);
-				}
-			});
-	    
-		Button browseButton = getWidgetFactory().createButton(this.composite, "Browse...", SWT.FLAT);
-		data = new GridData();
-		browseButton.setLayoutData(data);
-		browseButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				IPackageFragment packageFragment = choosePackage();
-				if (packageFragment != null) {
-					text.setText(packageFragment.getElementName());
-				}
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				IPackageFragment packageFragment = choosePackage();
-				if (packageFragment != null) {
-					text.setText(packageFragment.getElementName());
-				}
-			}
-		});
-	}
-	
-	private void textModified(ModifyEvent e) {
-		if (isPopulating()) {
-			return;
-		}
-		
-		String text = ((Text) e.getSource()).getText();
-		this.entityMappings.setPackage(text);
-		//TODO set a JEM Package??
-		//.setJavaClass(JavaRefFactory.eINSTANCE.createClassRef(text));
-		
-		// TODO Does this need to be done?
-		//this.editingDomain.getCommandStack().execute(SetCommand.create(this.editingDomain, this.entity, MappingsPackage.eINSTANCE.getEntity_SpecifiedName(), text));
-	}
-	
-	private void entityMappingsChanged(Notification notification) {
-		if (notification.getFeatureID(EntityMappings.class) == 
-				OrmPackage.ENTITY_MAPPINGS__PACKAGE) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						populate();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void engageListeners() {
-		if (this.entityMappings != null) {
-			entityMappings.eAdapters().add(this.entityMappingsListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.entityMappings != null) {
-			this.entityMappings.eAdapters().remove(this.entityMappingsListener);
-		}
-	}
-	
-	@Override
-	public void doPopulate(EObject obj) {
-		this.entityMappings = (EntityMappingsInternal) obj;
-		populateText();
-	}
-	
-	@Override
-	protected void doPopulate() {
-		populateText();
-	}
-	
-	private void populateText() {
-		if (entityMappings == null) {
-			text.clearSelection();
-			return;
-		}
-
-		IPackageFragmentRoot root = getPackageFragmentRoot();
-		if (root != null) {
-			((JavaPackageCompletionProcessor)this.contentAssistProcessor).setPackageFragmentRoot(root);
-		}
-		
-		String package_ = this.entityMappings.getPackage();
-		
-		if (package_ == null) {
-			setTextData("");
-		}
-		else {
-			setTextData(package_);
-		}
-	}
-	
-	private IPackageFragmentRoot getPackageFragmentRoot() {
-		IProject project = ((XmlEObject) this.entityMappings).getJpaProject().getProject();
-		IJavaProject root = JavaCore.create(project);
-		try {
-			return root.getAllPackageFragmentRoots()[0];
-		}
-		catch (JavaModelException e) {
-			JptUiPlugin.log(e);
-		}
-		return null;
-	}
-	
-	private void setTextData(String textData) {
-		if (! textData.equals(text.getText())) {
-			text.setText(textData);
-		}
-	}
-	
-	@Override
-	public Control getControl() {
-		return this.composite;
-	}
-	
-	/**
-	 * Opens a selection dialog that allows to select a package. 
-	 * 
-	 * @return returns the selected package or <code>null</code> if the dialog has been canceled.
-	 * The caller typically sets the result to the package input field.
-	 * <p>
-	 * Clients can override this method if they want to offer a different dialog.
-	 * </p>
-	 * 
-	 * @since 3.2
-	 */
-	protected IPackageFragment choosePackage() {		
-		SelectionDialog selectionDialog;
-		try {
-			selectionDialog = JavaUI.createPackageDialog(text.getShell(), getPackageFragmentRoot());
-		}
-		catch (JavaModelException e) {
-			JptUiPlugin.log(e);
-			throw new RuntimeException(e);
-		}
-		selectionDialog.setTitle(JptUiXmlMessages.XmlPackageChooser_PackageDialog_title); 
-		selectionDialog.setMessage(JptUiXmlMessages.XmlPackageChooser_PackageDialog_message); 
-		selectionDialog.setHelpAvailable(false);
-		IPackageFragment pack= getPackageFragment();
-		if (pack != null) {
-			selectionDialog.setInitialSelections(new Object[] { pack });
-		}
-
-		if (selectionDialog.open() == Window.OK) {
-			return (IPackageFragment) selectionDialog.getResult()[0];
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the package fragment corresponding to the current input.
-	 * 
-	 * @return a package fragment or <code>null</code> if the input 
-	 * could not be resolved.
-	 */
-	public IPackageFragment getPackageFragment() {
-		String packageString = this.text.getText();
-		return getPackageFragmentRoot().getPackageFragment(packageString);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentAttributeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentAttributeDetailsPage.java
deleted file mode 100644
index 7940f55..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentAttributeDetailsPage.java
+++ /dev/null
@@ -1,173 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IPersistentAttribute;
-import org.eclipse.jpt.core.internal.IPersistentType;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.ui.internal.details.PersistentAttributeDetailsPage;
-import org.eclipse.jpt.ui.internal.java.details.IAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlPersistentAttributeDetailsPage
-	extends PersistentAttributeDetailsPage 
-{
-	private XmlJavaAttributeChooser javaAttributeChooser;
-	
-	private Adapter persistentTypeListener;
-	
-	private IPersistentType persistentType;
-	
-	public XmlPersistentAttributeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, widgetFactory);
-		buildPersistentTypeListener();
-	}
-	
-	private void buildPersistentTypeListener() {
-		this.persistentTypeListener = new AdapterImpl() {
-			@Override
-			public void notifyChanged(Notification notification) {
-				persistentTypeChanged(notification);
-			}
-		};
-	}
-	
-	void persistentTypeChanged(Notification notification) {
-		if (notification.getFeatureID(XmlPersistentType.class) == 
-			OrmPackage.XML_PERSISTENT_TYPE__SPECIFIED_ATTRIBUTE_MAPPINGS) {
-			Display.getDefault().asyncExec(
-				new Runnable() {
-					public void run() {
-						updateEnbabledState();
-					}
-				});
-		}
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new GridLayout(2, false));
-		
-		GridData gridData;
-		
-		CommonWidgets.buildJavaAttributeNameLabel(composite, getWidgetFactory());
-		
-		this.javaAttributeChooser = CommonWidgets.buildJavaAttributeChooser(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.javaAttributeChooser.getControl().setLayoutData(gridData);
-
-		
-		buildMappingLabel(composite);
-		
-		CComboViewer mappingCombo = buildMappingCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		mappingCombo.getCombo().setLayoutData(gridData);
-		
-		PageBook book = buildMappingPageBook(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		book.setLayoutData(gridData);
-	}
-	
-	@Override
-	protected void engageListeners() {
-		super.engageListeners();
-		if (getAttribute() != null) {
-			this.persistentType = getAttribute().typeMapping().getPersistentType();
-			this.persistentType.eAdapters().add(this.persistentTypeListener);
-		}
-	}
-	
-	@Override
-	protected void disengageListeners() {
-		if (this.persistentType != null) {
-			this.persistentType.eAdapters().remove(this.persistentTypeListener);
-			this.persistentType = null;
-		}
-		super.disengageListeners();
-	}
-	
-	@Override
-	protected void doPopulate(IJpaContentNode persistentAttributeNode) {
-		super.doPopulate(persistentAttributeNode);
-		if (persistentAttributeNode == null) {
-			this.javaAttributeChooser.populate(null);
-		}
-		else {
-			XmlAttributeMapping mapping = ((XmlPersistentAttribute) persistentAttributeNode).getMapping();
-			this.javaAttributeChooser.populate(mapping);
-			updateEnbabledState();
-		}
-	}
-	
-	@Override
-	protected void doPopulate() {
-		super.doPopulate();
-		this.javaAttributeChooser.populate();
-		updateEnbabledState();
-	}
-	
-	@Override
-	public void dispose() {
-		this.javaAttributeChooser.dispose();
-		super.dispose();
-	}
-	
-	public void updateEnbabledState() {
-		if (getAttribute() == null || getAttribute().eContainer() == null) {
-			return;
-		}
-		boolean enabled = !((XmlPersistentAttribute) getAttribute()).isVirtual();
-		updateEnabledState(enabled, getControl());
-	}
-	
-	public void updateEnabledState(boolean enabled, Control control) {
-		control.setEnabled(enabled);
-		if (control instanceof Composite) {
-			for (Iterator<Control> i = new ArrayIterator<Control>(((Composite) control).getChildren()); i.hasNext(); ) {
-				updateEnabledState(enabled, i.next());
-			}
-		}
-	}
-	
-	@Override
-	//TODO Not really how I would want to implement this, but it is low risk fix for bug 192035 for 1.0RC3
-	protected IAttributeMappingUiProvider[] uiProvidersFor(IPersistentAttribute persistentAttribute) {
-		return attributeMappingUiProviders().toArray(new IAttributeMappingUiProvider[attributeMappingUiProviders().size()]);
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java
deleted file mode 100644
index 3c61547..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPersistentTypeDetailsPage.java
+++ /dev/null
@@ -1,171 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.details;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.core.internal.AccessType;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.XmlEObject;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
-import org.eclipse.jpt.ui.internal.details.PersistentTypeDetailsPage;
-import org.eclipse.jpt.ui.internal.java.details.ITypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EmbeddableUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.EntityUiProvider;
-import org.eclipse.jpt.ui.internal.java.mappings.properties.MappedSuperclassUiProvider;
-import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
-import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages;
-import org.eclipse.jpt.ui.internal.xml.details.AccessTypeComboViewer.AccessHolder;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class XmlPersistentTypeDetailsPage extends PersistentTypeDetailsPage 
-{
-	private XmlJavaClassChooser javaClassChooser;
-	
-	private MetaDataCompleteComboViewer metadataCompleteComboViewer;
-	
-	private AccessTypeComboViewer accessComboViewer;
-	
-	public XmlPersistentTypeDetailsPage(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) {
-		super(parent, widgetFactory);
-	}
-	
-	protected Collection<ITypeMappingUiProvider> buildTypeMappingUiProviders() {
-		Collection<ITypeMappingUiProvider> typeMappingUiProviders = new ArrayList<ITypeMappingUiProvider>();
-		typeMappingUiProviders.add(new EntityUiProvider());
-		typeMappingUiProviders.add(new MappedSuperclassUiProvider());			
-		typeMappingUiProviders.add(new EmbeddableUiProvider());			
-		return typeMappingUiProviders;
-	}
-	
-	@Override
-	protected void initializeLayout(Composite composite) {
-		composite.setLayout(new GridLayout(2, false));
-		
-		GridData gridData;
-		
-		CommonWidgets.buildJavaClassLabel(composite, getWidgetFactory());
-		
-		this.javaClassChooser = CommonWidgets.buildJavaClassChooser(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.javaClassChooser.getControl().setLayoutData(gridData);
-		
-		buildTypeMappingLabel(composite);
-		
-		CComboViewer typeMappingCombo = buildTypeMappingCombo(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		typeMappingCombo.getCombo().setLayoutData(gridData);
-		
-		buildMetadataCompleteLabel(composite);
-		this.metadataCompleteComboViewer = new MetaDataCompleteComboViewer(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.metadataCompleteComboViewer.getControl().setLayoutData(gridData);
-		
-		CommonWidgets.buildAccessLabel(composite, getWidgetFactory());
-		this.accessComboViewer = CommonWidgets.buildAccessTypeComboViewer(composite, this.commandStack, getWidgetFactory());
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.BEGINNING;
-		gridData.grabExcessHorizontalSpace = true;
-		this.accessComboViewer.getControl().setLayoutData(gridData);
-
-		PageBook typeMappingPageBook = buildTypeMappingPageBook(composite);
-		gridData = new GridData();
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalSpan = 2;
-		typeMappingPageBook.setLayoutData(gridData);
-	}
-		
-	private Label buildMetadataCompleteLabel(Composite parent ) {
-		return getWidgetFactory().createLabel(parent, JptUiXmlMessages.PersistentTypePage_MetadataCompleteLabel);
-	}
-	
-	@Override
-	protected void doPopulate(IJpaContentNode persistentTypeNode) {
-		super.doPopulate(persistentTypeNode);
-		if (persistentTypeNode == null) {
-			this.javaClassChooser.populate(null);
-			this.metadataCompleteComboViewer.populate(null);
-			this.accessComboViewer.populate(new MyAccessHolder(null));
-		}
-		else {
-			XmlTypeMapping mapping = ((XmlPersistentType) persistentTypeNode).getMapping();
-			this.javaClassChooser.populate(mapping);
-			this.metadataCompleteComboViewer.populate(mapping);
-			this.accessComboViewer.populate(new MyAccessHolder(mapping));
-		}
-	}
-	
-	@Override
-	protected void doPopulate() {
-		super.doPopulate();
-		this.javaClassChooser.populate();
-		this.metadataCompleteComboViewer.populate();
-		this.accessComboViewer.populate();
-	}
-
-	@Override
-	public void dispose() {
-		this.javaClassChooser.dispose();
-		this.metadataCompleteComboViewer.dispose();
-		this.accessComboViewer.dispose();
-		super.dispose();
-	}
-	
-		
-	private class MyAccessHolder extends XmlEObject implements AccessHolder{
-		
-		private XmlTypeMapping xmlTypeMapping;
-		MyAccessHolder(XmlTypeMapping xmlTypeMapping) {
-			super();
-			this.xmlTypeMapping = xmlTypeMapping;
-		}
-		public void setAccess(AccessType accessType) {
-			xmlTypeMapping.setSpecifiedAccess(accessType);
-		}
-	
-		public AccessType getAccess() {
-			return xmlTypeMapping.getSpecifiedAccess();
-		}
-		
-		public Class featureClass() {
-			return XmlTypeMapping.class;
-		}
-		
-		public int featureId() {
-			return OrmPackage.XML_TYPE_MAPPING__SPECIFIED_ACCESS;
-		}
-		
-		public EObject wrappedObject() {
-			return this.xmlTypeMapping;
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/EntityMappingsItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/EntityMappingsItemProvider.java
deleted file mode 100644
index 171664b..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/EntityMappingsItemProvider.java
+++ /dev/null
@@ -1,73 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsImages;
-
-public class EntityMappingsItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-			IStructuredItemContentProvider,
-			ITreeItemContentProvider, 
-			IItemLabelProvider
-{
-	public EntityMappingsItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	@Override
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(OrmPackage.Literals.ENTITY_MAPPINGS_INTERNAL__PERSISTENT_TYPES);
-		}
-		return childrenFeatures;
-	}
-	
-	@Override
-	public Object getParent(Object object) {
-		return null;
-	}
-	
-	@Override
-	public Object getImage(Object object) {
-		return JptUiMappingsImages.getImage(JptUiMappingsImages.ENTITY_MAPPINGS);
-	}
-	
-	@Override
-	public String getText(Object object) {
-		// TODO
-		return "EntityMappings";
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EntityMappingsInternal.class)) {
-			case OrmPackage.ENTITY_MAPPINGS_INTERNAL__PERSISTENT_TYPES:
-			case OrmPackage.ENTITY_MAPPINGS_INTERNAL__TYPE_MAPPINGS:
-			fireNotifyChanged(
-				new ViewerNotification(
-					notification, notification.getNotifier(), true, false));
-			return;
-		}
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/JpaCoreXmlItemProviderAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/JpaCoreXmlItemProviderAdapterFactory.java
deleted file mode 100644
index a79c0ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/JpaCoreXmlItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,197 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.jpt.core.internal.content.orm.util.OrmAdapterFactory;
-import org.eclipse.ui.services.IDisposable;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- */
-public class JpaCoreXmlItemProviderAdapterFactory 
-	extends OrmAdapterFactory 
-	implements ComposeableAdapterFactory,
-		IChangeNotifier, 
-		IDisposable 
-{
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 */
-	protected Collection supportedTypes = new ArrayList();
-
-	public JpaCoreXmlItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-	}
-	
-	
-	protected XmlRootContentNodeItemProvider xmlRootContentNodeItemProvider;
-	
-	public Adapter createXmlRootContentNodeAdapter() {
-		if (xmlRootContentNodeItemProvider == null) {
-			xmlRootContentNodeItemProvider = new XmlRootContentNodeItemProvider(this);
-		}
-
-		return xmlRootContentNodeItemProvider;
-	}
-	
-	protected EntityMappingsItemProvider entityMappingsItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.jpt.core.internal.content.orm.EntityMappingsImpl}.
-	 */
-	public Adapter createEntityMappingsAdapter() {
-		if (entityMappingsItemProvider == null) {
-			entityMappingsItemProvider = new EntityMappingsItemProvider(this);
-		}
-
-		return entityMappingsItemProvider;
-	}
-	
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.jpt.core.internal.content.orm.XmlPersistentType} instances.
-	 */
-	protected XmlPersistentTypeItemProvider xmlPersistentTypeItemProvider;
-	
-	/**
-	 * This creates an adapter for a {@link org.eclipse.jpt.core.internal.content.orm.XmlPersistentType}.
-	 */
-	public Adapter createXmlPersistentTypeAdapter() {
-		if (xmlPersistentTypeItemProvider == null) {
-			xmlPersistentTypeItemProvider = new XmlPersistentTypeItemProvider(
-					this);
-		}
-		
-		return xmlPersistentTypeItemProvider;
-	}
-	
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute} instances.
-	 */
-	protected XmlPersistentAttributeItemProvider xmlPersistentAttributeItemProvider;
-	
-	/**
-	 * This creates an adapter for a {@link org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute}.
-	 */
-	public Adapter createXmlPersistentAttributeAdapter() {
-		if (xmlPersistentAttributeItemProvider == null) {
-			xmlPersistentAttributeItemProvider = new XmlPersistentAttributeItemProvider(
-					this);
-		}
-		
-		return xmlPersistentAttributeItemProvider;
-	}
-	
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory
-				.getRootAdapterFactory();
-	}
-	
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 */
-	public void setParentAdapterFactory(
-			ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-	
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-	
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 */
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-	
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class)
-					|| (((Class) type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-		
-		return null;
-	}
-	
-	/**
-	 * This adds a listener.
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-	
-	/**
-	 * This removes a listener.
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-	
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-		
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-	
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 */
-	public void dispose() {
-		if (xmlRootContentNodeItemProvider != null)
-			xmlRootContentNodeItemProvider.dispose();
-		if (entityMappingsItemProvider != null)
-			entityMappingsItemProvider.dispose();
-		if (xmlPersistentTypeItemProvider != null)
-			xmlPersistentTypeItemProvider.dispose();
-		if (xmlPersistentAttributeItemProvider != null)
-			xmlPersistentAttributeItemProvider.dispose();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentAttributeItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentAttributeItemProvider.java
deleted file mode 100644
index e9f4260..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentAttributeItemProvider.java
+++ /dev/null
@@ -1,116 +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
- ******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import org.eclipse.draw2d.ImageUtilities;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentAttribute;
-import org.eclipse.jpt.core.internal.mappings.IBasic;
-import org.eclipse.jpt.core.internal.mappings.IEmbedded;
-import org.eclipse.jpt.core.internal.mappings.IEmbeddedId;
-import org.eclipse.jpt.core.internal.mappings.IId;
-import org.eclipse.jpt.core.internal.mappings.IManyToMany;
-import org.eclipse.jpt.core.internal.mappings.IManyToOne;
-import org.eclipse.jpt.core.internal.mappings.IOneToMany;
-import org.eclipse.jpt.core.internal.mappings.IOneToOne;
-import org.eclipse.jpt.core.internal.mappings.ITransient;
-import org.eclipse.jpt.core.internal.mappings.IVersion;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsImages;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-public class XmlPersistentAttributeItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider, 
-		IItemLabelProvider
-{
-	public XmlPersistentAttributeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	@Override
-	public Object getImage(Object object) {
-		XmlAttributeMapping mapping = ((XmlPersistentAttribute) object).getMapping();
-		
-		Image image;
-		if (mapping instanceof IBasic) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.BASIC);
-		}
-		else if (mapping instanceof IId) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.ID);
-		}
-		else if (mapping instanceof IVersion) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.VERSION);
-		}
-		else if (mapping instanceof IEmbedded) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDED);
-		}
-		else if (mapping instanceof IEmbeddedId) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDED_ID);
-		}
-		else if (mapping instanceof IOneToOne) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.ONE_TO_ONE);
-		}
-		else if (mapping instanceof IOneToMany) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.ONE_TO_MANY);
-		}
-		else if (mapping instanceof IManyToOne) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.MANY_TO_ONE);
-		}
-		else if (mapping instanceof IManyToMany) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.MANY_TO_MANY);
-		}
-		else if (mapping instanceof ITransient) {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.TRANSIENT);
-		}
-		else {
-			image = JptUiMappingsImages.getImage(JptUiMappingsImages.NULL_ATTRIBUTE_MAPPING);
-		}
-		
-		// apply "ghosting"
-		if (mapping.isVirtual()) {
-			Color offwhite = new Color(image.getDevice(), 250, 250, 250);
-			ImageData imageData = ImageUtilities.createShadedImage(image, offwhite);
-			image = new Image(image.getDevice(), imageData);
-		}
-		
-		return image;
-	}
-	
-	@Override
-	public String getText(Object object) {
-		return ((XmlPersistentAttribute) object).getName();
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(XmlPersistentAttribute.class)) {
-		case OrmPackage.XML_PERSISTENT_ATTRIBUTE__MAPPING:
-		case OrmPackage.XML_PERSISTENT_ATTRIBUTE__NAME:
-			fireNotifyChanged(new ViewerNotification(notification, notification
-					.getNotifier(), false, true));
-			return;
-		}
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentTypeItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentTypeItemProvider.java
deleted file mode 100644
index f87750a..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlPersistentTypeItemProvider.java
+++ /dev/null
@@ -1,96 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.IPersistentType;
-import org.eclipse.jpt.core.internal.ITypeMapping;
-import org.eclipse.jpt.core.internal.JpaCorePackage;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-import org.eclipse.jpt.core.internal.content.orm.XmlPersistentType;
-import org.eclipse.jpt.core.internal.mappings.IEmbeddable;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.IMappedSuperclass;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsImages;
-
-public class XmlPersistentTypeItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-			IStructuredItemContentProvider,
-			ITreeItemContentProvider, 
-			IItemLabelProvider
-{
-	public XmlPersistentTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	
-	@Override
-	protected Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(OrmPackage.Literals.XML_PERSISTENT_TYPE__SPECIFIED_PERSISTENT_ATTRIBUTES);
-			childrenFeatures.add(OrmPackage.Literals.XML_PERSISTENT_TYPE__VIRTUAL_PERSISTENT_ATTRIBUTES);
-		}
-		return childrenFeatures;
-	}
-	
-	@Override
-	public Object getImage(Object object) {
-		ITypeMapping mapping = ((IPersistentType) object).getMapping();
-		
-		if (mapping instanceof IEntity) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.ENTITY);
-		}
-		else if (mapping instanceof IEmbeddable) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.EMBEDDABLE);
-		}
-		else if (mapping instanceof IMappedSuperclass) {
-			return JptUiMappingsImages.getImage(JptUiMappingsImages.MAPPED_SUPERCLASS);
-		}
-		else {
-			return null;
-		}
-	}
-	
-	@Override
-	public String getText(Object object) {
-		return ((XmlPersistentType) object).getClass_();
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(XmlPersistentType.class)) {
-			case JpaCorePackage.IPERSISTENT_TYPE__MAPPING_KEY:
-			case OrmPackage.XML_PERSISTENT_TYPE__CLASS:
-				fireNotifyChanged(
-					new ViewerNotification(
-						notification, notification.getNotifier(), false, true));
-				return;
-			
-			case OrmPackage.XML_PERSISTENT_TYPE__SPECIFIED_PERSISTENT_ATTRIBUTES:
-			case OrmPackage.XML_PERSISTENT_TYPE__VIRTUAL_PERSISTENT_ATTRIBUTES:
-				fireNotifyChanged(
-					new ViewerNotification(
-						notification, notification.getNotifier(), true, false));
-				return;
-		}
-		
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlRootContentNodeItemProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlRootContentNodeItemProvider.java
deleted file mode 100644
index 969c7c8..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlRootContentNodeItemProvider.java
+++ /dev/null
@@ -1,55 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappings;
-import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
-
-public class XmlRootContentNodeItemProvider extends ItemProviderAdapter
-	implements IEditingDomainItemProvider, 
-			IStructuredItemContentProvider,
-			ITreeItemContentProvider, 
-			IItemLabelProvider
-{
-	public XmlRootContentNodeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-	
-	@Override
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(OrmPackage.Literals.XML_ROOT_CONTENT_NODE__ENTITY_MAPPINGS);
-		}
-		return childrenFeatures;
-	}
-	
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EntityMappings.class)) {
-		case OrmPackage.XML_ROOT_CONTENT_NODE__ENTITY_MAPPINGS:
-			fireNotifyChanged(
-				new ViewerNotification(
-					notification, notification.getNotifier(), true, false));
-			return;
-		}
-		super.notifyChanged(notification);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlStructureProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlStructureProvider.java
deleted file mode 100644
index ca7dddc..0000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/structure/XmlStructureProvider.java
+++ /dev/null
@@ -1,36 +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
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.xml.structure;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-
-public class XmlStructureProvider implements IJpaStructureProvider {
-
-	public String fileContentType() {
-		return JptCorePlugin.ORM_XML_CONTENT_TYPE;
-	}
-	
-	public ITreeContentProvider buildContentProvider() {
-		return new AdapterFactoryContentProvider(new JpaCoreXmlItemProviderAdapterFactory());
-	}
-	
-	public ILabelProvider buildLabelProvider() {
-		return new AdapterFactoryLabelProvider(new JpaCoreXmlItemProviderAdapterFactory());
-	}
-	
-	public void dispose() {
-		// TODO Auto-generated method stub
-		
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.classpath b/jpa/tests/org.eclipse.jpt.core.tests/.classpath
deleted file mode 100644
index db34e47..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
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 08395a8..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.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/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 88638b5..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:20 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a2f6604..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:58:31 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 3c61d8d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.core.tests
-Bundle-Version: 1.0.1
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.jdt.core,
- org.eclipse.jem,
- org.eclipse.jpt.core,
- org.eclipse.jpt.utility,
- org.eclipse.wst.common.emf,
- org.eclipse.wst.common.project.facet.core,
- org.junit
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.core.tests.internal;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.content.java.mappings;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.jdtutility;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.model;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.platform;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.projects;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/about.html b/jpa/tests/org.eclipse.jpt.core.tests/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/jpa/tests/org.eclipse.jpt.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>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>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/build.properties b/jpa/tests/org.eclipse.jpt.core.tests/build.properties
deleted file mode 100644
index 9bf11f7..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/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
-###############################################################################
-javacSource = 1.5
-javacTarget = 1.5
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               plugin.properties
-source.. = src/
-output.. = bin/
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.core.tests/plugin.properties
deleted file mode 100644
index 6ebf8db..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/plugin.properties
+++ /dev/null
@@ -1,22 +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 API Core Tests
-providerName=Eclipse.org
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java
deleted file mode 100644
index baf5150..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java
+++ /dev/null
@@ -1,38 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.core.tests.internal.content.java.mappings.JptCoreContentJavaMappingsTests;
-import org.eclipse.jpt.core.tests.internal.jdtutility.JptCoreJdtUtilityTests;
-import org.eclipse.jpt.core.tests.internal.model.JptCoreModelTests;
-import org.eclipse.jpt.core.tests.internal.platform.JptCorePlatformTests;
-
-/**
- * Runs all JPT Core Tests
- */
-public class JptCoreTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreTests.class.getName());
-		suite.addTest(JptCoreContentJavaMappingsTests.suite());
-		suite.addTest(JptCoreModelTests.suite());
-		suite.addTest(JptCoreJdtUtilityTests.suite());
-		suite.addTest(JptCorePlatformTests.suite());
-		return suite;
-	}
-	
-	private JptCoreTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/ProjectUtility.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/ProjectUtility.java
deleted file mode 100644
index ac9e78a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/ProjectUtility.java
+++ /dev/null
@@ -1,91 +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.core.tests.internal;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Copied from org.eclipse.wst.common.tests
- */
-public class ProjectUtility {
-    public static IProject[] getAllProjects() {
-    	IProject[] projects = new IProject[0];
-    	try {
-        projects =  ResourcesPlugin.getWorkspace().getRoot().getProjects();
-    	} catch (AssertionFailedException ex) {
-    		// Catch Malformed tree exception that occurs from time to time...
-    	}
-    	return projects;
-    }
-    public static void deleteAllProjects() throws Exception {
-        //closing projects and tread work in here is a hack because of a BeanInfo bug holding
-        //onto jars loaded in another VM
-        
-//        for (int i = 0; i < projects.length; i++) {
-//            if (projects[i].exists()) {
-//                projects[i].close(null); // This should signal the extra VM to kill itself
-//            }
-//        }
- //       Thread.yield(); // give the VM a chance to die
-        IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-
-			public void run(IProgressMonitor monitor) {
-				IProject[] projects = getAllProjects();
-				for (int i = 0; i < projects.length; i++) {
-					IProject project = projects[i];
-					boolean success = false;
-					Exception lastException = null;
-					// Don't make 2^12 is about 4 seconds which is the max we
-					// will wait for the VM to die
-					for (int j = 0; j < 13 && !success; j++) {
-						try {
-							if (project.exists()) {
-								project.delete(true, true, null);
-								ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
-							}
-							success = true;
-						} catch (Exception e) {
-							lastException = e;
-							if (project.exists()) {
-								try {
-									project.close(null);
-									project.open(null);
-								} catch (Exception e2) {
-									// do nothing
-								}
-							}
-							try {
-								Thread.sleep((int) Math.pow(2, j));
-							} catch (InterruptedException e1) {
-								// do nothing
-							} // if the VM isn't dead, try sleeping
-						}
-					}
-					if (!success && lastException != null) {
-						//Logger.getLogger().log("Problem while deleting: " + lastException.getMessage());
-//						 Assert.fail("Caught Exception=" +
-//						 lastException.getMessage() + " when deleting project=" + project.getName());
-					}
-				}
-			}
-		};
-		try {
-			ResourcesPlugin.getWorkspace().run(runnable, null);
-		} catch (CoreException ce) {
-			// do nothing
-		}
-        //verifyNoProjects();
-    }
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JavaEntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JavaEntityTests.java
deleted file mode 100644
index bbf7a95..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JavaEntityTests.java
+++ /dev/null
@@ -1,52 +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.core.tests.internal.content.java.mappings;
-
-import java.util.Iterator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.internal.content.java.IJavaTypeMapping;
-import org.eclipse.jpt.core.internal.content.java.mappings.JPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaEntityTests extends JpaJavaTestCase {
-
-	public JavaEntityTests(String name) {
-		super(name);
-	}
-
-	private void createTestEntity1() throws CoreException {
-		this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuffer sb) {
-				sb.append("@Entity");
-			}
-		});
-		this.synchPersistenceXml();
-	}
-
-	public void testGetName() throws Exception {
-		this.createTestEntity1();
-		IJavaTypeMapping typeMapping = this.javaPersistentTypeNamed(FULLY_QUALIFIED_TYPE_NAME).getMapping();
-		assertEquals(TYPE_NAME, typeMapping.getName());
-	}
-
-// TODO we can only execute 1 test for now...
-//	public void testGetKey() throws Exception {
-//		this.createTestEntity1();
-//		IJavaTypeMapping typeMapping = this.javaPersistentTypeNamed(FULLY_QUALIFIED_TYPE_NAME).getMapping();
-//		assertEquals(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, typeMapping.getKey());
-//	}
-//
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java
deleted file mode 100644
index ba028e9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JpaJavaTestCase.java
+++ /dev/null
@@ -1,62 +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.core.tests.internal.content.java.mappings;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.core.internal.content.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit;
-import org.eclipse.jpt.core.internal.jdtutility.Type;
-import org.eclipse.jpt.core.internal.synch.SynchronizeClassesJob;
-import org.eclipse.jpt.core.tests.internal.jdtutility.AnnotationTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-public abstract class JpaJavaTestCase extends AnnotationTestCase {
-
-	public JpaJavaTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected TestJavaProject buildJavaProject(String projectName, boolean autoBuild) throws Exception {
-		return new TestJpaProject(projectName, autoBuild);
-	}
-
-	protected TestJpaProject jpaProject() {
-		return (TestJpaProject) this.javaProject;
-	}
-
-	protected JavaPersistentType javaPersistentTypeNamed(String typeName) {
-		for (IJpaFile jpaFile : this.jpaProject().getJpaProject().jpaFiles(JavaCore.JAVA_SOURCE_CONTENT_TYPE)) {
-			JpaCompilationUnit cu = (JpaCompilationUnit) jpaFile.getContent();
-			for (JavaPersistentType pt : cu.getTypes()) {
-				if (pt.fullyQualifiedTypeName().equals(typeName)) {
-					return pt;
-				}
-			}
-		}
-		throw new IllegalArgumentException("missing type: " + typeName);
-	}
-
-	protected Type typeNamed(String typeName) {
-		return this.javaPersistentTypeNamed(typeName).getType();
-	}
-
-	protected void synchPersistenceXml() {
-		SynchronizeClassesJob job = new SynchronizeClassesJob(this.jpaProject().getProject().getFile("src/META-INF/persistence.xml"));
-		ClassTools.executeMethod(job, "run", IProgressMonitor.class, new NullProgressMonitor());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JptCoreContentJavaMappingsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JptCoreContentJavaMappingsTests.java
deleted file mode 100644
index ddbb6bd..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/content/java/mappings/JptCoreContentJavaMappingsTests.java
+++ /dev/null
@@ -1,28 +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.core.tests.internal.content.java.mappings;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptCoreContentJavaMappingsTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreContentJavaMappingsTests.class.getName());
-//		suite.addTestSuite(JavaEntityTests.class);
-		return suite;
-	}
-
-	private JptCoreContentJavaMappingsTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/AnnotationTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/AnnotationTestCase.java
deleted file mode 100644
index 87d6169..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/AnnotationTestCase.java
+++ /dev/null
@@ -1,429 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.MemberValuePair;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.NumberLiteral;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jdt.core.dom.StringLiteral;
-import org.eclipse.jpt.core.internal.jdtutility.FieldAttribute;
-import org.eclipse.jpt.core.internal.jdtutility.MethodAttribute;
-import org.eclipse.jpt.core.internal.jdtutility.Type;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-
-/**
- * Provide an easy(?) way to build an annotated source file.
- * The type must be created by calling one of the #createType() methods
- * before calling any of the various helper methods (i.e. the type is *not*
- * created during #setUp()).
- */
-public abstract class AnnotationTestCase extends TestCase {
-	protected TestJavaProject javaProject;
-
-	protected static final String CR = System.getProperty("line.separator");
-	protected static final String PROJECT_NAME = "AnnotationTestProject";
-	protected static final String PACKAGE_NAME = "test";
-	protected static final String TYPE_NAME = "AnnotationTestType";
-	protected static final String FULLY_QUALIFIED_TYPE_NAME = PACKAGE_NAME + "." + TYPE_NAME;
-	protected static final String FILE_NAME = TYPE_NAME + ".java";
-
-	protected static final String[] EMPTY_STRING_ARRAY = new String[0];
-
-
-	// ********** TestCase behavior **********
-
-	protected AnnotationTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.javaProject = this.buildJavaProject(PROJECT_NAME, false);  // false = no auto-build
-	}
-
-	protected TestJavaProject buildJavaProject(String projectName, boolean autoBuild) throws Exception {
-		return new TestJavaProject(projectName, autoBuild);  // false = no auto-build
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-//		this.dumpSource();
-		this.javaProject.dispose();
-		this.javaProject = null;
-		super.tearDown();
-	}
-
-	protected void dumpSource() throws Exception {
-		System.out.println("*** " + this.getName() + " ****");
-		System.out.println(this.source());
-		System.out.println();
-	}
-
-
-	// ********** type creation **********
-
-	/**
-	 * create an un-annotated type
-	 */
-	protected IType createTestType() throws CoreException {
-		return this.createTestType(new DefaultAnnotationWriter());
-	}
-
-	/**
-	 * shortcut for simply adding an annotation to the 'id' field
-	 */
-	protected IType createTestType(final String annotationImport, final String idFieldAnnotation) throws CoreException {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return (annotationImport == null) ?
-					EmptyIterator.<String>instance()
-				:
-					new SingleElementIterator<String>(annotationImport);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuffer sb) {
-				sb.append(idFieldAnnotation);
-			}
-		});
-	}
-
-	/**
-	 * shortcut for simply adding a fully-qualified annotation to the 'id' field
-	 */
-	protected IType createTestType(final String idFieldAnnotation) throws CoreException {
-		return this.createTestType(null, idFieldAnnotation);
-	}
-
-	protected IType createTestType(AnnotationWriter annotationWriter) throws CoreException {
-		return this.javaProject.createType(PACKAGE_NAME, FILE_NAME, this.createSourceWriter(annotationWriter));
-	}
-
-	protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter) {
-		return new AnnotatedSourceWriter(annotationWriter);
-	}
-
-	protected void appendSourceTo(StringBuffer sb, AnnotationWriter annotationWriter) {
-		sb.append(CR);
-		for (Iterator<String> stream = annotationWriter.imports(); stream.hasNext(); ) {
-			sb.append("import ");
-			sb.append(stream.next());
-			sb.append(";");
-			sb.append(CR);
-		}
-		annotationWriter.appendTypeAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("public class ").append(TYPE_NAME).append(" {").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendIdFieldAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    private int id;").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendNameFieldAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    private String name;").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendGetIdMethodAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    public int getId() {").append(CR);
-		sb.append("        return this.id;").append(CR);
-		sb.append("    }").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendSetIdMethodAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    public void setId(int id) {").append(CR);
-		sb.append("        this.id = id;").append(CR);
-		sb.append("    }").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendGetNameMethodAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    public String getName() {").append(CR);
-		sb.append("        return this.name;").append(CR);
-		sb.append("    }").append(CR);
-		sb.append(CR);
-		sb.append("    ");
-		annotationWriter.appendSetNameMethodAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("    public void setTestField(String testField) {").append(CR);
-		sb.append("        this.testField = testField;").append(CR);
-		sb.append("    }").append(CR);
-		sb.append(CR);
-		sb.append("}").append(CR);
-	}
-
-
-	// ********** queries **********
-
-	protected IType jdtType() throws JavaModelException {
-		return this.javaProject.findType(FULLY_QUALIFIED_TYPE_NAME);
-	}
-
-	protected Type testType() throws JavaModelException {
-		return new Type(this.jdtType());
-	}
-
-	protected FieldAttribute idField() throws JavaModelException {
-		return this.fieldNamed("id");
-	}
-
-	protected FieldAttribute nameField() throws JavaModelException {
-		return this.fieldNamed("name");
-	}
-
-	protected FieldAttribute fieldNamed(String fieldName) throws JavaModelException {
-		return new FieldAttribute(this.jdtType().getField(fieldName));
-	}
-
-	protected MethodAttribute idGetMethod() throws JavaModelException {
-		return this.methodNamed("getId");
-	}
-
-	protected MethodAttribute nameGetMethod() throws JavaModelException {
-		return this.methodNamed("getName");
-	}
-
-	protected MethodAttribute methodNamed(String methodName) throws JavaModelException {
-		return this.method(methodName, EMPTY_STRING_ARRAY);
-	}
-
-	protected MethodAttribute method(String methodName, String[] parameterTypeSignatures) throws JavaModelException {
-		return new MethodAttribute(this.jdtType().getMethod(methodName, parameterTypeSignatures));
-	}
-
-	protected String source() throws JavaModelException {
-		return this.jdtType().getOpenable().getBuffer().getContents();
-	}
-
-
-	// ********** test validation **********
-
-	protected void assertSourceContains(String s) throws JavaModelException {
-		String source = this.source();
-		boolean found = source.indexOf(s) > -1;
-		if ( ! found) {
-			String msg = "source does not contain the expected string: " + s + " (see System console)";
-			System.out.println("*** " + this.getName() + " ****");
-			System.out.println(msg);
-			System.out.println(source);
-			System.out.println();
-			fail(msg);
-		}
-	}
-
-	protected void assertSourceDoesNotContain(String s) throws JavaModelException {
-		String source = this.source();
-		int pos = source.indexOf(s);
-		if (pos != -1) {
-			String msg = "unexpected string in source (position: " + pos + "): " + s + " (see System console)";
-			System.out.println("*** " + this.getName() + " ****");
-			System.out.println(msg);
-			System.out.println(source);
-			System.out.println();
-			fail(msg);
-		}
-	}
-
-
-	// ********** manipulate annotations **********
-
-	/**
-	 * Return the *first* member value pair for the specified annotation element
-	 * with the specified name.
-	 * Return null if the annotation has no such element.
-	 */
-	protected MemberValuePair memberValuePair(NormalAnnotation annotation, String elementName) {
-		for (MemberValuePair pair : this.values(annotation)) {
-			if (pair.getName().getFullyQualifiedName().equals(elementName)) {
-				return pair;
-			}
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	protected List<MemberValuePair> values(NormalAnnotation na) {
-		return na.values();
-	}
-
-	/**
-	 * check for null member value pair
-	 */
-	protected Expression valueInternal(MemberValuePair pair) {
-		return (pair == null) ? null : pair.getValue();
-	}
-
-	/**
-	 * Return the value of the *first* annotation element
-	 * with the specified name.
-	 * Return null if the annotation has no such element.
-	 */
-	protected Expression annotationElementValue(NormalAnnotation annotation, String elementName) {
-		return this.valueInternal(this.memberValuePair(annotation, elementName));
-	}
-
-	/**
-	 * Return the value of the *first* annotation element
-	 * with the specified name.
-	 * Return null if the annotation has no such element.
-	 */
-	protected Expression annotationElementValue(SingleMemberAnnotation annotation, String elementName) {
-		return elementName.equals("value") ? annotation.getValue() : null;
-	}
-
-	/**
-	 * Return the value of the *first* annotation element
-	 * with the specified name.
-	 * Return null if the annotation has no such element.
-	 * (An element name of "value" will return the value of a single
-	 * member annotation.)
-	 */
-	protected Expression annotationElementValue(Annotation annotation, String elementName) {
-		if (annotation.isNormalAnnotation()) {
-			return this.annotationElementValue((NormalAnnotation) annotation, elementName);
-		}
-		if (annotation.isSingleMemberAnnotation()) {
-			return this.annotationElementValue((SingleMemberAnnotation) annotation, elementName);
-		}
-		return null;
-	}
-
-	/**
-	 * Build a number literal and set its initial value to the specified literal.
-	 */
-	protected NumberLiteral newNumberLiteral(AST ast, int value) {
-		return ast.newNumberLiteral(Integer.toString(value));
-	}
-
-	/**
-	 * Build a string literal and set its initial value.
-	 */
-	protected StringLiteral newStringLiteral(AST ast, String value) {
-		StringLiteral stringLiteral = ast.newStringLiteral();
-		stringLiteral.setLiteralValue(value);
-		return stringLiteral;
-	}
-
-	protected MemberValuePair newMemberValuePair(AST ast, SimpleName name, Expression value) {
-		MemberValuePair pair = ast.newMemberValuePair();
-		pair.setName(name);
-		pair.setValue(value);
-		return pair;
-	}
-
-	protected MemberValuePair newMemberValuePair(AST ast, String name, Expression value) {
-		return this.newMemberValuePair(ast, ast.newSimpleName(name), value);
-	}
-
-	protected MemberValuePair newMemberValuePair(AST ast, String name, String value) {
-		return this.newMemberValuePair(ast, name, this.newStringLiteral(ast, value));
-	}
-
-	protected MemberValuePair newMemberValuePair(AST ast, String name, int value) {
-		return this.newMemberValuePair(ast, name, this.newNumberLiteral(ast, value));
-	}
-
-	/**
-	 * Add the specified member value pair to the specified annotation.
-	 * Return the resulting annotation.
-	 */
-	protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, MemberValuePair pair) {
-		this.values(annotation).add(pair);
-		return annotation;
-	}
-
-	/**
-	 * Add the specified member value pair to the specified annotation.
-	 * Return the resulting annotation.
-	 */
-	protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, String name, int value) {
-		return this.addMemberValuePair(annotation, this.newMemberValuePair(annotation.getAST(), name, value));
-	}
-
-	/**
-	 * Add the specified member value pair to the specified annotation.
-	 * Return the resulting annotation.
-	 */
-	protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, String name, String value) {
-		return this.addMemberValuePair(annotation, this.newMemberValuePair(annotation.getAST(), name, value));
-	}
-
-
-	// ********** member classes **********
-
-	public interface AnnotationWriter {
-		Iterator<String> imports();
-		void appendTypeAnnotationTo(StringBuffer sb);
-		void appendIdFieldAnnotationTo(StringBuffer sb);
-		void appendNameFieldAnnotationTo(StringBuffer sb);
-		void appendGetIdMethodAnnotationTo(StringBuffer sb);
-		void appendSetIdMethodAnnotationTo(StringBuffer sb);
-		void appendGetNameMethodAnnotationTo(StringBuffer sb);
-		void appendSetNameMethodAnnotationTo(StringBuffer sb);
-	}
-
-	public static class DefaultAnnotationWriter implements AnnotationWriter {
-		public Iterator<String> imports() {return EmptyIterator.instance();}
-		public void appendTypeAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendIdFieldAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendNameFieldAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendGetIdMethodAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendSetIdMethodAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendGetNameMethodAnnotationTo(StringBuffer sb) {/* do nothing */}
-		public void appendSetNameMethodAnnotationTo(StringBuffer sb) {/* do nothing */}
-	}
-
-	public static class AnnotationWriterWrapper implements AnnotationWriter {
-		private final AnnotationWriter aw;
-		public AnnotationWriterWrapper(AnnotationWriter aw) {
-			super();
-			this.aw = aw;
-		}
-		public Iterator<String> imports() {return aw.imports();}
-		public void appendTypeAnnotationTo(StringBuffer sb) {aw.appendTypeAnnotationTo(sb);}
-		public void appendIdFieldAnnotationTo(StringBuffer sb) {aw.appendIdFieldAnnotationTo(sb);}
-		public void appendNameFieldAnnotationTo(StringBuffer sb) {aw.appendNameFieldAnnotationTo(sb);}
-		public void appendGetIdMethodAnnotationTo(StringBuffer sb) {aw.appendGetIdMethodAnnotationTo(sb);}
-		public void appendSetIdMethodAnnotationTo(StringBuffer sb) {aw.appendSetIdMethodAnnotationTo(sb);}
-		public void appendGetNameMethodAnnotationTo(StringBuffer sb) {aw.appendGetNameMethodAnnotationTo(sb);}
-		public void appendSetNameMethodAnnotationTo(StringBuffer sb) {aw.appendSetNameMethodAnnotationTo(sb);}
-	}
-
-	public class AnnotatedSourceWriter implements SourceWriter {
-		private AnnotationWriter annotationWriter;
-		public AnnotatedSourceWriter(AnnotationWriter annotationWriter) {
-			super();
-			this.annotationWriter = annotationWriter;
-		}
-		public void appendSourceTo(StringBuffer sb) {
-			AnnotationTestCase.this.appendSourceTo(sb, this.annotationWriter);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/CombinationIndexedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/CombinationIndexedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index 10a259c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/CombinationIndexedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,728 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.MemberValuePair;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.StringLiteral;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.CombinationIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.IndexedAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.IndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.MemberIndexedAnnotationAdapter;
-
-public class CombinationIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public CombinationIndexedDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testGetAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-	}
-
-	public void testGetAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-	}
-
-	public void testGetAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-		String value = ((StringLiteral) ((MemberValuePair) ((NormalAnnotation) annotation).values().get(0)).getValue()).getLiteralValue();
-		assertEquals("ADDRESS_ID2", value);
-	}
-
-	public void testGetAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-		String value = ((StringLiteral) ((MemberValuePair) ((NormalAnnotation) annotation).values().get(0)).getValue()).getLiteralValue();
-		assertEquals("ADDRESS_ID2", value);
-	}
-
-	public void testGetAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn");
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns");
-		this.assertSourceDoesNotContain("JoinColumn");
-	}
-
-	public void testRemoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns");
-		this.assertSourceDoesNotContain("ADDRESS_ID2");
-		this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")");
-	}
-
-	public void testRemoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns");
-		this.assertSourceDoesNotContain("ADDRESS_ID2");
-		this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")");
-	}
-
-	public void testRemoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "String comment(); JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(comment=\"test\",columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(comment=\"test\",columns=@annot.JoinColumn(name=\"ADDRESS_ID1\"))");
-	}
-
-	public void testRemoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns(null)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.removeAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(null)");
-	}
-
-	public void testRemoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("JoinColumns");
-	}
-
-	public void testRemoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({null, @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		this.assertSourceContains("@annot.JoinColumn");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn");
-	}
-
-	public void testRemoveAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), null})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
-		String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})";
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
-		String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 3);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({null, null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		this.assertSourceContains("@annot.JoinColumn");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn");
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("JoinColumn");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("JoinColumn");
-		this.assertSourceDoesNotContain("JoinColumns");
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn");
-		this.assertSourceDoesNotContain("JoinColumns");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns={@JoinColumn,@JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn," + CR + "    @JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(77)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("JoinColumn");
-		this.assertSourceDoesNotContain("JoinColumns");
-		this.assertSourceDoesNotContain("77");
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns=@JoinColumn)");
-		this.assertSourceDoesNotContain("77");
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(77)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns={@JoinColumn(77),@JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(77),@annot.JoinColumn(88)})");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns={@JoinColumn(text=\"blah\", num=42),@JoinColumn})");
-	}
-
-	public void testNewMarkerAnnotation23() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
-		String expected = "@JoinColumns(columns={@JoinColumn(text=\"blah\", num=42),null,@JoinColumn})";
-		this.assertSourceDoesNotContain(expected);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation24() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
-		String expected1 = "@JoinColumns({";
-		String expected2 = "@JoinColumn(text=\"blah\", num=42),null,";
-		String expected3 = "@JoinColumn})";
-		this.assertSourceDoesNotContain(expected1);
-		this.assertSourceDoesNotContain(expected2);
-		this.assertSourceDoesNotContain(expected3);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1);
-		this.assertSourceContains(expected2);
-		this.assertSourceContains(expected3);
-	}
-
-	public void testNewMarkerAnnotation25() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected1 = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,";  // the line gets split
-		String expected2 = "@JoinColumn})";
-		this.assertSourceDoesNotContain(expected1);
-		this.assertSourceDoesNotContain(expected2);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 4);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1);
-		this.assertSourceContains(expected2);
-	}
-
-	public void testNewMarkerAnnotation26() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected1 = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,";  // the line gets split
-		String expected2 = "@JoinColumn})";
-		this.assertSourceDoesNotContain(expected1);
-		this.assertSourceDoesNotContain(expected2);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 4);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1);
-		this.assertSourceContains(expected2);
-	}
-
-	public void testMoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
-		String expected = "@JoinColumns(columns={null,@JoinColumn(name=\"ADDRESS_ID0\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID1\")";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("JoinColumns");
-	}
-
-	public void testMoveAnnotation2a() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID1\")";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 1);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("JoinColumns");
-	}
-
-	public void testMoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
-		String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID4\")})");
-		String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID0\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})");
-		String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})";
-		this.assertSourceDoesNotContain(expected);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})";
-		this.createTestType(expected);  // the source should be unchanged
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("@annot.JoinColumns");
-	}
-
-	public void testMoveAnnotation10a() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID0\")";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("@annot.JoinColumns");
-	}
-
-	public void testMoveAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceDoesNotContain("JoinColumn");
-	}
-
-	public void testMoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		String expected = "@JoinColumn(name=\"ADDRESS_ID2\")";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-		this.assertSourceDoesNotContain("@annot.JoinColumns");
-	}
-
-	public void testMoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})");
-		String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})";
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(), cidaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JDTToolsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JDTToolsTests.java
deleted file mode 100644
index 706e606..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JDTToolsTests.java
+++ /dev/null
@@ -1,86 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jpt.core.internal.jdtutility.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.FieldAttribute;
-import org.eclipse.jpt.core.internal.jdtutility.JDTTools;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleDeclarationAnnotationAdapter;
-
-public class JDTToolsTests extends AnnotationTestCase {
-
-	public JDTToolsTests(String name) {
-		super(name);
-	}
-
-	private void createEnumAndMembers(String enumName, String enumBody) throws Exception {
-		this.javaProject.createType("enums", enumName + ".java", "public enum " + enumName + " { " + enumBody + " }");
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testResolveEnum1() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		this.createTestType("@annot.TestAnnotation(foo=enums.TestEnum.BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		FieldAttribute field = this.idField();
-
-		String actual = JDTTools.resolveEnum((Name) field.annotationElementExpression(daea));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum2() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		this.createTestType("static enums.TestEnum.BAZ", "@annot.TestAnnotation(foo=BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		FieldAttribute field = this.idField();
-
-		String actual = JDTTools.resolveEnum((Name) field.annotationElementExpression(daea));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum3() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		this.createTestType("static enums.TestEnum.*", "@annot.TestAnnotation(foo=BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		FieldAttribute field = this.idField();
-
-		String actual = JDTTools.resolveEnum((Name) field.annotationElementExpression(daea));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum4() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		this.createTestType("enums.TestEnum", "@annot.TestAnnotation(foo=TestEnum.BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		FieldAttribute field = this.idField();
-
-		String actual = JDTTools.resolveEnum((Name) field.annotationElementExpression(daea));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JptCoreJdtUtilityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JptCoreJdtUtilityTests.java
deleted file mode 100644
index a6a0fb6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/JptCoreJdtUtilityTests.java
+++ /dev/null
@@ -1,34 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptCoreJdtUtilityTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreJdtUtilityTests.class.getName());
-		suite.addTestSuite(MemberAnnotationElementAdapterTests.class);
-		suite.addTestSuite(CombinationIndexedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(JDTToolsTests.class);
-		suite.addTestSuite(NestedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(NestedIndexedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(SimpleDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(TypeTests.class);
-		return suite;
-	}
-
-	private JptCoreJdtUtilityTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/MemberAnnotationElementAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/MemberAnnotationElementAdapterTests.java
deleted file mode 100644
index b07c314..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/MemberAnnotationElementAdapterTests.java
+++ /dev/null
@@ -1,948 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import java.util.Arrays;
-
-import org.eclipse.jpt.core.internal.ITextRange;
-import org.eclipse.jpt.core.internal.jdtutility.ASTNodeTextRange;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationStringArrayExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.BooleanStringExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.CharacterStringExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.EnumArrayDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.ExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.NestedIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.NumberStringExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.PrimitiveTypeStringExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleTypeStringExpressionConverter;
-import org.eclipse.jpt.core.internal.jdtutility.StringExpressionConverter;
-
-public class MemberAnnotationElementAdapterTests extends AnnotationTestCase {
-
-	public MemberAnnotationElementAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	private void createEnum(String enumName, String enumBody) throws Exception {
-		this.javaProject.createType("enums", enumName + ".java", "public enum " + enumName + " { " + enumBody + " }");
-	}
-
-	public void testGetValue1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType("@annot.Foo(bar=\"xxx\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("xxx", aea.getValue());
-	}
-
-	public void testGetValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		this.createTestType("@annot.Foo(bar=48)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", NumberStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("48", aea.getValue());
-	}
-
-	public void testGetValue3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		this.createTestType("@annot.Foo(bar='c')");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", CharacterStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("c", aea.getValue());
-	}
-
-	public void testGetValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValue5() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType("@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))");
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValue6() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean value();");
-		this.createTestType("@annot.Foo(false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValueNull1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueNull2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueNull3() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType("@annot.Foo(@annot.Bar(jimmy=@annot.Baz))");
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa3, "fred");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueStringConcatenation() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType("@annot.Foo(bar=\"xxx\" + \"yyy\" + \"zzz\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("xxxyyyzzz", aea.getValue());
-	}
-
-	public void testGetValueStringConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		// just a bit hacky:
-		this.createTestType("private static final String FOO_BAR = \"xxx\"; @annot.Foo(bar=FOO_BAR + \"yyy\" + \"zzz\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("xxxyyyzzz", aea.getValue());
-	}
-
-	public void testGetValueNumberArithmetic() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		this.createTestType("@annot.Foo(bar=47 - 7 + 2 * 1 / 1)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("42", aea.getValue());
-	}
-
-	public void testGetValueNumberShift() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		this.createTestType("@annot.Foo(bar=2 << 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("8", aea.getValue());
-	}
-
-	public void testGetValueNumberConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		// just a bit hacky:
-		this.createTestType("private static final int FOO_BAR = 77; @annot.Foo(bar=FOO_BAR)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("77", aea.getValue());
-	}
-
-	public void testGetValueCharacterConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		// just a bit hacky:
-		this.createTestType("private static final char FOO_BAR = 'Q'; @annot.Foo(bar=FOO_BAR)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("Q", aea.getValue());
-	}
-
-	public void testGetValueCharacterCast() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		this.createTestType("@annot.Foo(bar=(char) 0x41)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("A", aea.getValue());
-	}
-
-	public void testGetValueBooleanOperator1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=7 > 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("true", aea.getValue());
-	}
-
-	public void testGetValueBooleanOperator2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=7 == 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValueBooleanOperator3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=(7 != 2) && false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValueBooleanOperator4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=(7 != 2) ? false : true)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-	}
-
-	public void testGetValueInvalidValue1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType("@annot.Foo(bar=77)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType("@annot.Foo(bar=bazzzz)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		this.createTestType("@annot.Foo(bar=bazzzz)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		this.createTestType("@annot.Foo(bar=\"bazzzz\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue5() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=\"java.lang.Object\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", SimpleTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue6() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		this.createTestType("@annot.Foo(bar=enums.TestEnum.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue7() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String value = "\"false\"";
-		String element = "fred=" + value;
-		String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(" + element + ")))";
-		this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueInvalidValue8() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar={true, false})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {null, null}, aea.getValue()));
-	}
-
-	public void testGetValueInvalidValue9() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar=77)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {null}, aea.getValue()));
-	}
-
-	public void testASTNode1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String value = "\"xxx\"";
-		String element = "bar=" + value;
-		String annotation = "@annot.Foo(" + element + ")";
-		this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		ITextRange textRange = new ASTNodeTextRange(aea.astNode());
-		assertEquals(this.source().indexOf(value), textRange.getOffset());
-		assertEquals(value.length(), textRange.getLength());
-		assertEquals(7, textRange.getLineNumber());
-	}
-
-	public void testASTNode2() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String value = "false";
-		String element = "fred=" + value;
-		String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(" + element + ")))";
-		this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("false", aea.getValue());
-		ITextRange textRange = new ASTNodeTextRange(aea.astNode());
-		assertEquals(value.length(), textRange.getLength());
-	}
-
-	public void testASTNode3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String element = "\"xxx\"";
-		String annotation = "@annot.Foo(" + element + ")";
-		this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		ITextRange textRange = new ASTNodeTextRange(aea.astNode());
-		assertEquals(this.source().indexOf(element), textRange.getOffset());
-		assertEquals(element.length(), textRange.getLength());
-	}
-
-	public void testASTNode4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo";
-		this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		ITextRange textRange = new ASTNodeTextRange(aea.astNode());
-		assertEquals(this.source().indexOf(annotation), textRange.getOffset());
-		assertEquals(annotation.length(), textRange.getLength());
-	}
-
-	public void testSetValue1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testSetValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar", false);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@Foo");
-	}
-
-	public void testSetValue3() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceDoesNotContain("Foo");
-		this.assertSourceDoesNotContain("Bar");
-	}
-
-	public void testSetValue3a() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar", false);
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz", false);
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@annot.Foo(@Bar)");
-	}
-
-	public void testSetValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(bar=\"xxx\")");
-	}
-
-	public void testSetValue5() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("true");
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=true)))");
-	}
-
-	public void testSetValue6() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", BooleanStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("true");
-		this.assertSourceContains("@Foo(@Bar(jimmy=@Baz(fred=true)))");
-	}
-
-	public void testSetValue7() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("yyy");
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@annot.Foo(bar=\"yyy\")");
-	}
-
-	public void testSetValue8() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(bar=\"xxx\")");
-	}
-
-	public void testSetValue9() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value(); String bar();");
-		String annotation = "@annot.Foo(\"zzz\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@Foo(value=\"zzz\", bar=\"xxx\")");
-	}
-
-	public void testSetValue10() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar(); String baz();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "baz");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("yyy");
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@annot.Foo(bar=\"xxx\", baz = \"yyy\")");
-	}
-
-	public void testSetValue11() throws Exception {
-		this.createAnnotationAndMembers("Baz", "int fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		String annotation = "@annot.Foo(@annot.Bar(jimmy={@annot.Baz(fred=0), @annot.Baz(fred=1), @annot.Baz(fred=2), @annot.Baz(fred=3)}))";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "jimmy", 2, "annot.Baz");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa3, "fred", NumberStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		assertEquals("2", aea.getValue());
-		aea.setValue("48");
-		this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy={@annot.Baz(fred=0), @annot.Baz(fred=1), @annot.Baz(fred=48), @annot.Baz(fred=3)}))");
-	}
-
-	public void testSetValue12() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(\"xxx\")");
-	}
-
-	public void testSetValue13() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo(\"zzz\")";
-		this.createTestType(annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceDoesNotContain(annotation);
-		this.assertSourceContains("@annot.Foo(\"xxx\")");
-	}
-
-	public void testSimpleTypeLiteral1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=java.lang.Object.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", SimpleTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("java.lang.Object", aea.getValue());
-	}
-
-	public void testSimpleTypeLiteral2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", SimpleTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		aea.setValue("java.lang.Object");
-		this.assertSourceContains("@Foo(bar=java.lang.Object.class)");
-	}
-
-	public void testSimpleTypeLiteral3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=int.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", SimpleTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testSimpleTypeLiteral4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=java.util.Map.Entry.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", SimpleTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("java.util.Map.Entry", aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=int.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", PrimitiveTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("int", aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", PrimitiveTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		aea.setValue("int");
-		this.assertSourceContains("@Foo(bar=int.class)");
-	}
-
-	public void testPrimitiveTypeLiteral3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=java.lang.Object.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", PrimitiveTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		this.createTestType("@annot.Foo(bar=void.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", PrimitiveTypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("void", aea.getValue());
-	}
-
-	public void testGetValueEnum1() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		this.createTestType("@annot.Foo(bar=enums.TestEnum.XXX)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("enums.TestEnum.XXX", aea.getValue());
-	}
-
-	public void testGetValueEnum2() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		this.createTestType("static enums.TestEnum.XXX", "@annot.Foo(bar=XXX)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("enums.TestEnum.XXX", aea.getValue());
-	}
-
-	public void testGetValueEnum3() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		this.createTestType("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testGetValueEnum4() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		this.createTestType("enums.TestEnum", "@annot.Foo(bar=TestEnum.XXX)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		assertEquals("enums.TestEnum.XXX", aea.getValue());
-	}
-
-	public void testSetValueEnum1() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		String annotation = "@annot.Foo(bar=XXX)";
-		this.createTestType("static enums.TestEnum.XXX", annotation);
-		this.assertSourceContains(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		aea.setValue(null);
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testSetValueEnum2() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		String annotation = "@Foo(bar=XXX)";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(), daea);
-		aea.setValue("enums.TestEnum.XXX");
-		this.assertSourceContains("import static enums.TestEnum.XXX;");
-		this.assertSourceContains(annotation);
-	}
-
-	public void testGetValueStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar={\"string0\", \"string1\"})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue()));
-	}
-
-	public void testGetValueStringArrayConcatenation() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar={\"stri\" + \"ng0\", \"s\" + \"tring1\"})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue()));
-	}
-
-	public void testGetValueStringArrayEmpty() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar={})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testGetValueStringArraySingleElement() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo(bar=\"string0\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"string0"}, aea.getValue()));
-	}
-
-	public void testGetValueNullStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		this.createTestType("@annot.Foo()");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testSetValueStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String annotation = "@Foo(bar={\"string0\",\"string1\"})";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[] {"string0", "string1"});
-		this.assertSourceContains(annotation);
-	}
-
-	public void testSetValueStringArrayEmptyRemove() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String annotation = "@Foo";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceDoesNotContain(annotation);
-	}
-
-	public void testSetValueStringArrayEmpty() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String annotation = "@Foo(bar={})";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		ExpressionConverter<String[]> expressionConverter = new AnnotationStringArrayExpressionConverter(StringExpressionConverter.instance(), false);
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", expressionConverter);
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceContains(annotation);
-	}
-
-	public void testSetValueStringArraySingleElement() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String annotation = "@Foo(bar=\"string0\")";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[] {"string0"});
-		this.assertSourceContains(annotation);
-	}
-
-	public void testGetValueEnumArray() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo(bar={enums.TestEnum.XXX, enums.TestEnum.YYY})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"}, aea.getValue()));
-	}
-
-	public void testGetValueEnumArrayInvalidEntry() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo(bar={enums.TestEnum.XXX, 88})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", null}, aea.getValue()));
-	}
-
-	public void testGetValueEnumArrayEmpty() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo(bar={})");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testGetValueEnumArraySingleElement() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo(bar=enums.TestEnum.XXX)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX"}, aea.getValue()));
-	}
-
-	public void testGetValueEnumArraySingleElementInvalid() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo(bar=\"\")");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[] {null}, aea.getValue()));
-	}
-
-	public void testGetValueNullEnumArray() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		this.createTestType("@annot.Foo()");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testSetValueEnumArray() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String annotation = "@Foo(bar={XXX,YYY})";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"});
-		this.assertSourceContains("import static enums.TestEnum.XXX;");
-		this.assertSourceContains("import static enums.TestEnum.YYY;");
-		this.assertSourceContains(annotation);
-	}
-
-	public void testSetValueEnumArrayEmptyRemove() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String annotation = "@Foo";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceDoesNotContain(annotation);
-	}
-
-	public void testSetValueEnumArrayEmpty() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String annotation = "@Foo(bar={})";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar", true, false);
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceContains(annotation);
-	}
-
-	public void testSetValueEnumArraySingleElement() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String annotation = "@Foo(bar=XXX)";
-		this.createTestType();
-		this.assertSourceDoesNotContain(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(), daea);
-		aea.setValue(new String[] {"enums.TestEnum.XXX"});
-		this.assertSourceContains("import static enums.TestEnum.XXX;");
-		this.assertSourceContains(annotation);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index e82d42c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,763 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jdt.core.dom.StringLiteral;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.Member;
-import org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.ModifiedDeclaration;
-import org.eclipse.jpt.core.internal.jdtutility.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleDeclarationAnnotationAdapter;
-
-public class NestedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public NestedDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testGetAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar)");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testGetAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String value();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar(yana=@annot.Baz))");
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "nestedAnnotation", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "yana", "annot.Baz");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa3);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testGetAnnotationNull1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo()");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String nestedAnnotation();");
-		this.createTestType("@annot.Foo(nestedAnnotation=\"annot.Bar\")");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Bar2", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar2 nestedAnnotation();");
-		this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar2)");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=@annot.Bar)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation1a() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=@annot.Bar)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar", false);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains("Foo");
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=\"annot.Bar\")";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Bar2", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar2 nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=@annot.Bar2)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String value();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz nestedAnnotation2();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation1();");
-		String na = "@annot.Foo(nestedAnnotation1=@annot.Bar(nestedAnnotation2=@annot.Baz))";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daaFoo = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daaBar = new NestedDeclarationAnnotationAdapter(daaFoo, "nestedAnnotation1", "annot.Bar");
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(daaBar, "nestedAnnotation2", "annot.Baz");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceDoesNotContain("Foo");
-		this.assertSourceDoesNotContain("Bar");
-		this.assertSourceDoesNotContain("Baz");
-	}
-
-	public void testRemoveAnnotation5a() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String value();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz nestedAnnotation2();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation1();");
-		String na = "@annot.Foo(nestedAnnotation1=@annot.Bar(nestedAnnotation2=@annot.Baz))";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daaFoo = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daaBar = new NestedDeclarationAnnotationAdapter(daaFoo, "nestedAnnotation1", "annot.Bar", false);
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(daaBar, "nestedAnnotation2", "annot.Baz", false);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains("@annot.Foo(nestedAnnotation1=@Bar)");
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotation=@Bar)");
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(@Bar)");
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotation=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "Object value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar value();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewSingleMemberAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotation=@Bar(\"test string literal\"))");
-	}
-
-	void editNewSingleMemberAnnotation1(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) aa.getAnnotation();
-		assertNull(annotation);
-
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(\"test string literal\"))");
-	}
-
-	void editNewSingleMemberAnnotation2(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation=@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation3(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation4(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotation=@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation5(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "Object value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation6(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String xxx();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation7(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value(); String xxx();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation8(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewNormalAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotation=@Bar(yyy=\"test string literal\"))");
-	}
-
-	void editNewNormalAnnotation1(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(yyy=\"test string literal\"))");
-	}
-
-	void editNewNormalAnnotation2(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation=@Bar(yyy=\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation3(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(yyy=\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation4(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotation=@Bar(yyy=\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation5(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "Object value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(yyy=\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation6(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar nestedAnnotation();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation7(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-	public void testNewNormalAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String yyy();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar value();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation8(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "yyy", "test string literal");
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedIndexedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedIndexedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index e361b43..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/NestedIndexedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,2209 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.NumberLiteral;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.IndexedAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.IndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.Member;
-import org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.MemberIndexedAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.ModifiedDeclaration;
-import org.eclipse.jpt.core.internal.jdtutility.NestedIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleDeclarationAnnotationAdapter;
-
-public class NestedIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public NestedIndexedDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotation(String annotationName) throws Exception {
-		this.createAnnotationAndMembers(annotationName, "");
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testGetAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar, @annot.Bar(\"two\")})");
-		// 0
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-
-		// 1
-		daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 1, "annot.Bar");
-		aa = new MemberAnnotationAdapter(this.idField(), daa);
-		annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isSingleMemberAnnotation());
-	}
-
-	public void testGetAnnotation2() throws Exception {
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana=@annot.Baz))");
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Baz");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa3);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testGetAnnotation3() throws Exception {
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana={@annot.Baz}))");
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Baz");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa3);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-
-		// name mismatch
-		daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Xyz");
-		aa = new MemberAnnotationAdapter(this.idField(), daa3);
-		annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull1() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo()");
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull2() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull3() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=\"annot.Bar\")");
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull4() throws Exception {
-		this.createAnnotation("NotBar");
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar, @annot.Bar(\"two\")})");
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull6() throws Exception {
-		this.createAnnotation("Xyz");
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana={@annot.Baz}))");
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Xyz");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa3);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1)})";
-		String expected = "@annot.Foo(nestedAnnotations={null, @annot.Bar(1)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={\"annot.Bar1\", \"annot.Bar2\", \"annot.Bar3\"})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.NotBar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.NotBar(0), @annot.NotBar(1)})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=@annot.Bar)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		assertNull(aa.getAnnotation());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation5a() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=@annot.Bar)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar", false);
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation().isMarkerAnnotation());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains("import annot.Foo;");
-		this.assertSourceContains("@Foo");
-	}
-
-	public void testRemoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=\"annot.Bar\")";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.NotBar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=@annot.NotBar)";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na);
-	}
-
-	public void testRemoveAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1), @annot.Bar(2), @annot.Bar(3)})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation().isNormalAnnotation());
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})");
-	}
-
-	public void testRemoveAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1), @annot.Bar(2), @annot.Bar(3)})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation().isSingleMemberAnnotation());
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains("@annot.Foo({@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})");
-	}
-
-	public void testRemoveAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1)})";
-		String expected = "@annot.Foo({null, @annot.Bar(1)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 0, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1)})";
-		String expected = "@annot.Foo(@annot.Bar(0))";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2)})";
-		String expected = "@annot.Foo(@annot.Bar(0))";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({null, @annot.Bar(1)})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), null})";
-		String expected = "@annot.Foo(@annot.Bar(0))";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})";
-		String expected = "@annot.Foo({@annot.Bar(0), null, null, @annot.Bar(3)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})";
-		String expected = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 3, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "value").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2)})";
-		String expected = "@annot.Foo(nestedAnnotations=@annot.Bar(0))";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation18() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={null, @annot.Bar(1)})";
-		this.createTestType(na);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testRemoveAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), null})";
-		String expected = "@annot.Foo(nestedAnnotations=@annot.Bar(0))";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation20() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})";
-		String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, null, @annot.Bar(3)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testRemoveAnnotation21() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})";
-		String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2)})";
-		this.createTestType(na);
-		this.assertSourceDoesNotContain(expected);
-		this.assertSourceContains(na);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 3, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(), daa2);
-		Annotation annotation = aa2.getAnnotation();
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na);
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations=@Bar)");
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("Foo");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(@Bar)");
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] value();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		assertNull(aa.getAnnotation());
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations={null,null,null,null,null,@Bar})");
-	}
-
-	public void testNewMarkerAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(\"something\")");
-		this.assertSourceDoesNotContain("Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(value=\"something\", nestedAnnotations={null,null,null,null,null,@Bar})");
-	}
-
-	public void testNewMarkerAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		String expected = "@annot.Foo({@Bar, \"two\"})";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("Bar})");  // split line
-	}
-
-	public void testNewMarkerAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar})");
-	}
-
-	public void testNewMarkerAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar})";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		String expected = "@annot.Foo(nestedAnnotations={@Bar})";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation18() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("Bar})");  // split line
-	}
-
-	public void testNewMarkerAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=\"something\")");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation20() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation21() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar})");
-	}
-
-	public void testNewMarkerAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation23() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))");
-		String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(88),null,@Bar})";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation24() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(88))");
-		String expected = "@annot.Foo({@annot.Bar(88),null,@Bar})";
-		this.assertSourceDoesNotContain(expected);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected);
-	}
-
-	public void testNewMarkerAnnotation25() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar(88), @annot.Bar(77)})");
-		String expected1 = "@annot.Foo(nestedAnnotations={@annot.Bar(88), @annot.Bar(77), null, null,";  // the line gets split
-		String expected2 = "@Bar})";
-		this.assertSourceDoesNotContain(expected1);
-		this.assertSourceDoesNotContain(expected2);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 4, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1);
-		this.assertSourceContains(expected2);
-	}
-
-	public void testNewMarkerAnnotation26() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(88), @annot.Bar(77)})");
-		String expected1 = "@annot.Foo({@annot.Bar(88), @annot.Bar(77), null, null,";  // the line gets split
-		String expected2 = "@Bar})";
-		this.assertSourceDoesNotContain(expected1);
-		this.assertSourceDoesNotContain(expected2);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 4, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1);
-		this.assertSourceContains(expected2);
-	}
-
-	public void testNewSingleMemberAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotations=@Bar(88))");
-	}
-
-	void editNewSingleMemberAnnotation1(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(88))");
-	}
-
-	void editNewSingleMemberAnnotation2(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation3(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation4(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation5(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation6(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation7(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] value();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation8(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations={null,null,null,null,null,@Bar(MISSING)})");  // ???
-	}
-
-	public void testNewSingleMemberAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(\"something\")");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Foo(value=\"something\", nestedAnnotations={null,null,null,null,null,@Bar(MISSING)})");  // ???
-	}
-
-	public void testNewSingleMemberAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		String expected = "@annot.Foo({@Bar(88), \"two\"})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation11(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation11(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Bar(MISSING)})");  // split line
-	}
-
-	public void testNewSingleMemberAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation13(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation13(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar(MISSING)})");
-	}
-
-	public void testNewSingleMemberAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation15(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation15(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar(88)})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation16(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation16(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		String expected = "@annot.Foo(nestedAnnotations={@Bar(88)})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation17(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation17(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation18() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Bar(MISSING)})");  // ???
-	}
-
-	public void testNewSingleMemberAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=\"something\")");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation19(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation19(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation20() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation20(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation20(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewSingleMemberAnnotation21() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar(MISSING)})");
-	}
-
-	public void testNewSingleMemberAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(77))");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation22(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewSingleMemberAnnotation22(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		SingleMemberAnnotation annotation = daa.newSingleMemberAnnotation(declaration);
-		NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral();
-		numberLiteral.setToken("88");
-		annotation.setValue(numberLiteral);
-	}
-
-	public void testNewNormalAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotations=@Bar(xxx=88))");
-	}
-
-	void editNewNormalAnnotation1(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(xxx=88))");
-	}
-
-	void editNewNormalAnnotation2(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations=@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation3(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation4(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value=\"something\", nestedAnnotations=@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation5(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation6(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String xxx();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation7(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value(); String xxx();");
-		this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation8(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String xxx();");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations={null,null,null,null,null,@Bar()})");
-	}
-
-	public void testNewNormalAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String value();");
-		this.createTestType("@annot.Foo(\"something\")");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Foo(value=\"something\", nestedAnnotations={null,null,null,null,null,@Bar()})");
-	}
-
-	public void testNewNormalAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		String expected = "@annot.Foo({@Bar(xxx=88), \"two\"})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation11(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation11(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Bar()})");  // split line
-	}
-
-	public void testNewNormalAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation13(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation13(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar()})");
-	}
-
-	public void testNewNormalAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int xxx();");
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation15(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation15(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar(xxx=88)})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation16(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation16(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		String expected = "@annot.Foo(nestedAnnotations={@Bar(xxx=88)})";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation17(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation17(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation18() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Bar()})");  // split line
-	}
-
-	public void testNewNormalAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=\"something\")");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation19(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation19(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation20() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int xxx();");
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation20(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation20(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testNewNormalAnnotation21() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int xxx();");
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar");
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar()})");
-	}
-
-	public void testNewNormalAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(77))");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(xxx=88))";
-		this.assertSourceDoesNotContain(expected);
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation22(declaration);
-			}
-		});
-		this.assertSourceContains(expected);
-	}
-
-	void editNewNormalAnnotation22(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		NormalAnnotation annotation = daa.newNormalAnnotation(declaration);
-		this.addMemberValuePair(annotation, "xxx", 88);
-	}
-
-	public void testMoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(00))");
-		String expected = "@annot.Foo({null,@annot.Bar(00)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({null, @annot.Bar(11)})");
-		String expected = "@annot.Foo(@annot.Bar(11))";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), @annot.Bar(33)})");
-		String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11), @annot.Bar(22)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), @annot.Bar(33), @annot.Bar(44)})");
-		String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})");
-		String expected = "@annot.Foo({@annot.Bar(00), @annot.Bar(11), null, @annot.Bar(22)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})");
-		String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22), @annot.Bar(00)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})");
-		String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})");
-		String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})";
-		this.assertSourceDoesNotContain(expected);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22)})";
-		this.createTestType(expected);  // the source should be unchanged
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11)})");
-		String expected = "@annot.Foo(@annot.Bar(00))";
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo(@annot.Bar(00))");
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceDoesNotContain("Foo");
-	}
-
-	public void testMoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), null, @annot.Bar(22)})");
-		String expected = "@annot.Foo(@annot.Bar(22))";
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-	public void testMoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), null, @annot.Bar(33)})");
-		String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11)})";
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(), idaa);
-		Annotation annotation = iaa.getAnnotation();
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/SimpleDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/SimpleDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index 0e014b6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/SimpleDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,204 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.MemberValuePair;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.NumberLiteral;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jdt.core.dom.StringLiteral;
-import org.eclipse.jpt.core.internal.jdtutility.AnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.Member;
-import org.eclipse.jpt.core.internal.jdtutility.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.jdtutility.ModifiedDeclaration;
-import org.eclipse.jpt.core.internal.jdtutility.SimpleDeclarationAnnotationAdapter;
-
-public class SimpleDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public SimpleDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotation(String annotationName) throws Exception {
-		this.javaProject.createType("annot", annotationName + ".java", "public @interface " + annotationName + " {}");
-	}
-
-	public void testGetAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Foo", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testGetAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo(1) @annot.Foo(2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("annot.Foo", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isSingleMemberAnnotation());
-		Expression value = ((SingleMemberAnnotation) annotation).getValue();
-		assertEquals(ASTNode.NUMBER_LITERAL, value.getNodeType());
-		assertEquals("1", ((NumberLiteral) value).getToken());
-	}
-
-	public void testGetAnnotation3() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("annot.Foo", "@Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-		assertEquals("Foo", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testGetAnnotationNull1() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-	}
-
-	public void testGetAnnotationNull2() throws Exception {
-		this.createAnnotation("Foo");
-		this.createAnnotation("Fop");
-		this.createTestType("@annot.Fop");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-		this.assertSourceContains("@annot.Fop");
-	}
-
-	public void testGetAnnotationNull3() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo");
-		// un-qualified name
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-		this.assertSourceContains("@annot.Foo");
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo");
-		this.assertSourceContains("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("@annot.Foo");
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo(1) @annot.Foo(2)");
-		this.assertSourceContains("@annot.Foo(1) @annot.Foo(2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("@annot.Foo(1)");
-		this.assertSourceContains("@annot.Foo(2)");
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("import annot.Foo;");
-		this.assertSourceContains("@Foo");
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType("@annot.Foo(88)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(), daa);
-		Annotation annotation = aa.getAnnotation();
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("import annot.Foo;");
-		this.assertSourceContains("@Foo");
-		this.assertSourceDoesNotContain("@annot.Foo(88)");
-	}
-
-	public void testNewSingleMemberAnnotation() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SimpleDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation(declaration);
-			}
-		});
-		this.assertSourceContains("import annot.Foo;");
-		this.assertSourceContains("@Foo(\"test string literal\")");
-	}
-
-	void editNewSingleMemberAnnotation(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newSingleMemberAnnotation(declaration);
-		StringLiteral stringLiteral = annotation.getAST().newStringLiteral();
-		stringLiteral.setLiteralValue("test string literal");
-		annotation.setValue(stringLiteral);
-	}
-
-	public void testNewNormalAnnotation() throws Exception {
-		this.createAnnotation("Foo");
-		this.createTestType();
-		this.assertSourceDoesNotContain("@Foo");
-		this.idField().edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SimpleDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation(declaration);
-			}
-		});
-		this.assertSourceContains("import annot.Foo;");
-		this.assertSourceContains("@Foo(bar=\"test string literal\")");
-	}
-
-	void editNewNormalAnnotation(ModifiedDeclaration declaration) {
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration);
-		assertNull(annotation);
-		annotation = daa.newNormalAnnotation(declaration);
-		MemberValuePair mvp = this.newMemberValuePair(annotation.getAST(), "bar", "test string literal");
-		this.values(annotation).add(mvp);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/TypeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/TypeTests.java
deleted file mode 100644
index 6371156..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jdtutility/TypeTests.java
+++ /dev/null
@@ -1,67 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.jdtutility;
-
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jpt.core.internal.ITextRange;
-import org.eclipse.jpt.core.internal.jdtutility.Type;
-
-public class TypeTests extends AnnotationTestCase {
-
-	private IType jdtType;
-	private Type testType;
-
-
-	public TypeTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.jdtType = this.createTestType();
-		this.testType = new Type(this.jdtType);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.testType = null;
-		this.jdtType = null;
-		super.tearDown();
-	}
-
-	public void testGetJdtMember() throws Exception {
-		assertEquals(this.jdtType, this.testType.getJdtMember());
-	}
-
-	public void testIsAbstract() throws Exception {
-		assertFalse(this.testType.isAbstract());
-	}
-
-	public void testTopLevelDeclaringType() throws Exception {
-		assertEquals(this.testType, this.testType.topLevelDeclaringType());
-	}
-
-	public void testGetDeclaringType() throws Exception {
-		assertNull(this.testType.getDeclaringType());
-	}
-
-	public void testGetName() throws Exception {
-		assertEquals(TYPE_NAME, this.testType.getName());
-	}
-
-	public void testTextRange() throws Exception {
-		String source = this.jdtType.getOpenable().getBuffer().getContents();
-		ITextRange textRange = this.testType.textRange();
-		String body = source.substring(textRange.getOffset());
-		assertTrue(body.startsWith("public class " + TYPE_NAME));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JptCoreModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JptCoreModelTests.java
deleted file mode 100644
index d7d2ffe..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JptCoreModelTests.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.core.tests.internal.model;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptCoreModelTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreModelTests.class.getPackage().getName());
-		suite.addTestSuite(ModelInitializationTests.class);
-		return suite;
-	}
-
-	private JptCoreModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java
deleted file mode 100644
index 620ec25..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/ModelInitializationTests.java
+++ /dev/null
@@ -1,90 +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
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.model;
-
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.internal.IJpaModel;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-import org.eclipse.jpt.core.tests.internal.ProjectUtility;
-import org.eclipse.jpt.core.tests.internal.projects.TestFacetedProject;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-public class ModelInitializationTests extends TestCase {
-	private IJpaModel jpaModel;
-	
-	
-	public ModelInitializationTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		ProjectUtility.deleteAllProjects();
-		this.jpaModel = JptCorePlugin.getJpaModel();
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		ProjectUtility.deleteAllProjects();
-		this.jpaModel = null;
-		super.tearDown();
-	}
-
-	/** 
-	 * Builds a project with the java and utility facets installed, and with
-	 * pre-existing entities added.
-	 */
-	private TestFacetedProject buildTestProject() throws CoreException {
-		TestFacetedProject testProject = new TestFacetedProject(ClassTools.shortClassNameForObject(this), true);
-		testProject.installFacet("jst.java", "5.0");
-		testProject.installFacet("jst.utility", "1.0");
-		testProject.createFile(
-			new Path("src/test.pkg/TestEntity.java"),
-			"package test.pkg; @Entity public class TestEntity {}");
-		testProject.createFile(
-			new Path("src/test.pkg/TestEntity2.java"),
-			"package test.pkg; @Entity public class TestEntity2 {}");
-		return testProject;
-	}	
-		
-	public void testBasic() {
-		assertNotNull(this.jpaModel);
-	}
-	
-	public void testFacetInstallation() throws CoreException {
-		TestFacetedProject testProject = buildTestProject();
-		assertNull(this.jpaModel.getJpaProject(testProject.getProject()));
-		testProject.installFacet("jpt.jpa", "1.0");
-		assertEquals(1, CollectionTools.size(this.jpaModel.jpaProjects()));
-		IJpaProject jpaProject = this.jpaModel.getJpaProject(testProject.getProject());
-		assertNotNull(jpaProject);
-		assertEquals(4, CollectionTools.size(jpaProject.jpaFiles()));
-		assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity.java"))));
-		assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity2.java"))));
-	}
-	
-	public void testProjectOpening() throws CoreException {
-		TestFacetedProject testProject = buildTestProject();
-		testProject.installFacet("jpt.jpa", "1.0");
-		testProject.close();
-		assertTrue(! testProject.getProject().isOpen());
-		testProject.open();
-		IJpaProject jpaProject = this.jpaModel.getJpaProject(testProject.getProject());
-		assertNotNull(jpaProject);
-		assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity.java"))));
-		assertNotNull(jpaProject.getJpaFile(testProject.getProject().getFile(new Path("src/test.pkg/TestEntity2.java"))));
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java
deleted file mode 100644
index 94c306e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.eclipse.jpt.core.tests.internal.platform;
-
-import java.io.IOException;
-import junit.framework.TestCase;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal;
-import org.eclipse.jpt.core.internal.content.orm.OrmFactory;
-import org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal;
-import org.eclipse.jpt.core.internal.content.orm.XmlRootContentNode;
-import org.eclipse.jpt.core.internal.content.persistence.JavaClassRef;
-import org.eclipse.jpt.core.internal.content.persistence.Persistence;
-import org.eclipse.jpt.core.internal.content.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.internal.content.persistence.PersistenceXmlRootContentNode;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-public class BaseJpaPlatformTests extends TestCase
-{
-	protected TestJpaProject jpaProject;
-
-	protected static final String PROJECT_NAME = "PlatformTestProject";
-	protected static final String PACKAGE_NAME = "platform.test";
-	protected static final String PERSISTENCE_XML_LOCATION = "src/META-INF/persistence.xml";
-	protected static final String ORM_XML_LOCATION = "src/META-INF/orm.xml";
-	
-	
-	public BaseJpaPlatformTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		jpaProject = 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 {
-		jpaProject.dispose();
-		jpaProject = null;
-		super.tearDown();
-	}
-	
-	
-	public void testPersistentTypes() throws CoreException, IOException {
-		IFile persistenceXmlIFile = jpaProject.getProject().getFile(PERSISTENCE_XML_LOCATION);
-		IJpaFile persistenceXmlJpaFile = jpaProject.getJpaProject().getJpaFile(persistenceXmlIFile);
-		PersistenceXmlRootContentNode persistenceRoot = (PersistenceXmlRootContentNode) persistenceXmlJpaFile.getContent();
-		Persistence persistence = persistenceRoot.getPersistence();
-		
-		IFile ormXmlIFile = jpaProject.getProject().getFile(ORM_XML_LOCATION);
-		IJpaFile ormXmlJpaFile = jpaProject.getJpaProject().getJpaFile(ormXmlIFile);
-		XmlRootContentNode ormRoot = (XmlRootContentNode) ormXmlJpaFile.getContent();
-		EntityMappingsInternal entityMappings = ormRoot.getEntityMappings();
-		
-		// add xml persistent type
-		XmlEntityInternal xmlEntity = OrmFactory.eINSTANCE.createXmlEntityInternal();
-		xmlEntity.setSpecifiedName("XmlEntity");
-		entityMappings.getTypeMappings().add(xmlEntity);
-		entityMappings.eResource().save(null);
-		
-		assertEquals(1, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME)));
-		
-		// add java persistent type
-		jpaProject.createType(PACKAGE_NAME, "JavaEntity.java", 
-				"@Entity public class JavaEntity {}"
-			);
-		JavaClassRef javaClassRef = PersistenceFactory.eINSTANCE.createJavaClassRef();
-		javaClassRef.setJavaClass(PACKAGE_NAME + ".JavaEntity");
-		persistence.getPersistenceUnits().get(0).getClasses().add(javaClassRef);
-		persistence.eResource().save(null);
-		
-		assertEquals(2, CollectionTools.size(jpaProject.getJpaProject().getPlatform().persistentTypes(PROJECT_NAME)));
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java
deleted file mode 100644
index 589e631..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JptCorePlatformTests.java
+++ /dev/null
@@ -1,28 +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.core.tests.internal.platform;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptCorePlatformTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCorePlatformTests.class.getName());
-//		suite.addTestSuite(BaseJpaPlatformTests.class);
-		return suite;
-	}
-
-	private JptCorePlatformTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java
deleted file mode 100644
index 6b638fa..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.core.tests.internal.projects;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public class TestFacetedProject extends TestPlatformProject {
-	private IFacetedProject facetedProject;
-
-
-	// ********** constructors/initialization **********
-
-	public TestFacetedProject(String projectName) throws CoreException {
-		this(projectName, true);
-	}
-
-	public TestFacetedProject(String projectName, boolean autoBuild) throws CoreException {
-		super(projectName, autoBuild);
-		this.facetedProject = this.createFacetedProject();
-	}
-
-	private IFacetedProject createFacetedProject() throws CoreException {
-		return ProjectFacetsManager.create(this.getProject(), true, null);		// true = "convert if necessary"
-	}
-
-
-	// ********** public methods **********
-
-	public IFacetedProject getFacetedProject() {
-		return this.facetedProject;
-	}
-
-	public void installFacet(String facetName, String versionName) throws CoreException {
-		IProjectFacetVersion facetVersion = ProjectFacetsManager.getProjectFacet(facetName).getVersion(versionName);
-		this.facetedProject.installProjectFacet(facetVersion, null, null);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java
deleted file mode 100644
index a19529b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.core.tests.internal.projects;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jdt.core.search.TypeNameRequestor;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * This builds and holds a "Java" project.
- * Support for adding packages and types.
- */
-public class TestJavaProject extends TestFacetedProject {
-
-	private IJavaProject javaProject;
-	private IPackageFragmentRoot sourceFolder;
-
-
-	// ********** constructors/initialization **********
-
-	public TestJavaProject() throws CoreException {
-		this("TestJavaProject");
-	}
-
-	public TestJavaProject(String projectName) throws CoreException {
-		this(projectName, false);
-	}
-
-	public TestJavaProject(String projectName, boolean autoBuild) throws CoreException {
-		super(projectName, autoBuild);
-		this.installFacet("jst.java", "5.0");
-		this.javaProject = JavaCore.create(this.getProject());
-		this.sourceFolder = this.javaProject.getPackageFragmentRoot(this.getProject().getFolder("src"));
-	}
-
-	protected void addJar(String jarPath) throws JavaModelException {
-		this.addClasspathEntry(JavaCore.newLibraryEntry(new Path(jarPath), null, null));
-	}
-
-	private void addClasspathEntry(IClasspathEntry entry) throws JavaModelException {
-		this.javaProject.setRawClasspath(CollectionTools.add(this.javaProject.getRawClasspath(), entry), null);
-	}
-	
-
-	// ********** public methods **********
-
-	public IPackageFragment createPackage(String packageName) throws CoreException {
-		return this.sourceFolder.createPackageFragment(packageName, false, null);	// false = "no force"
-	}
-
-	/**
-	 * The source should NOT contain a package declaration;
-	 * it will be added here.
-	 */
-	public IType createType(String packageName, String compilationUnitName, String source) throws CoreException {
-		return this.createType(this.createPackage(packageName), compilationUnitName, new SimpleSourceWriter(source));
-	}
-
-	/**
-	 * The source should NOT contain a package declaration;
-	 * it will be added here.
-	 */
-	public IType createType(String packageName, String compilationUnitName, SourceWriter sourceWriter) throws CoreException {
-		return this.createType(this.createPackage(packageName), compilationUnitName, sourceWriter);
-	}
-
-	/**
-	 * The source should NOT contain a package declaration;
-	 * it will be added here.
-	 */
-	public IType createType(IPackageFragment packageFragment, String compilationUnitName, SourceWriter sourceWriter) throws CoreException {
-		StringBuffer sb = new StringBuffer(2000);
-		sb.append("package ").append(packageFragment.getElementName()).append(";").append(CR);
-		sb.append(CR);
-		sourceWriter.appendSourceTo(sb);
-		String source = sb.toString();
-		ICompilationUnit cu = packageFragment.createCompilationUnit(compilationUnitName, source, false, null);	// false = "no force"
-		return cu.findPrimaryType();
-	}
-
-	public IType findType(String fullyQualifiedName) throws JavaModelException {
-		return this.javaProject.findType(fullyQualifiedName);
-	}
-
-	@Override
-	public void dispose() throws CoreException {
-		this.waitForIndexer();
-		this.sourceFolder = null;
-		this.javaProject = null;
-		super.dispose();
-	}
-
-
-	// ********** internal methods **********
-
-	private void waitForIndexer() throws JavaModelException {
-		new SearchEngine().searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE,
-			null,
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE,
-			IJavaSearchConstants.CLASS,
-			SearchEngine.createJavaSearchScope(new IJavaElement[0]),
-			new TypeNameRequestor() {/* do nothing */},
-			IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null
-		);
-	}
-
-
-	// ********** member classes **********
-
-	public interface SourceWriter {
-		void appendSourceTo(StringBuffer sb);
-	}
-
-	public class SimpleSourceWriter implements SourceWriter {
-		private final String source;
-		public SimpleSourceWriter(String source) {
-			super();
-			this.source = source;
-		}
-		public void appendSourceTo(StringBuffer sb) {
-			sb.append(source);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java
deleted file mode 100644
index 68f01e8..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.core.tests.internal.projects;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.internal.IJpaProject;
-import org.eclipse.jpt.core.internal.JptCorePlugin;
-
-public class TestJpaProject extends TestJavaProject {
-	private IJpaProject jpaProject;
-
-	public static final String JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.jpa.jar";
-
-	// ********** constructors/initialization **********
-
-	public TestJpaProject() throws CoreException {
-		this("TestJpaProject");
-	}
-
-	public TestJpaProject(String projectName) throws CoreException {
-		this(projectName, false);
-	}
-	
-	public TestJpaProject(String projectName, boolean autoBuild) throws CoreException {
-		super(projectName, autoBuild);
-		this.installFacet("jst.utility", "1.0");
-		this.installFacet("jpt.jpa", "1.0");
-		this.addJar(this.jarName());
-		this.jpaProject = JptCorePlugin.getJpaProject(this.getProject());
-	}
-
-	protected String jarName() {
-		String jarName = System.getProperty(JAR_NAME_SYSTEM_PROPERTY);
-		if (jarName == null) {
-			throw new RuntimeException("missing Java system property: \"" + JAR_NAME_SYSTEM_PROPERTY + "\"");
-		}
-		return jarName;
-	}
-
-
-	// ********** public methods **********
-
-	public IJpaProject getJpaProject() {
-		return this.jpaProject;
-	}
-
-	@Override
-	public void dispose() throws CoreException {
-		this.jpaProject = null;
-		super.dispose();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java
deleted file mode 100644
index 7fbca79..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.core.tests.internal.projects;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * This builds and holds a "general" project.
- * Support for adding natures, folders, and files.
- */
-public class TestPlatformProject {
-
-	private final IProject project;
-
-	/** carriage return */
-	public static final String CR = System.getProperty("line.separator");
-
-
-	// ********** constructors/initialization **********
-
-	public TestPlatformProject() throws CoreException {
-		this(false);
-	}
-
-	public TestPlatformProject(boolean autoBuild) throws CoreException {
-		this("TestProject", autoBuild);
-	}
-
-	public TestPlatformProject(String projectName, boolean autoBuild) throws CoreException {
-		super();
-		this.setAutoBuild(autoBuild);  // workspace-wide setting
-		this.project = this.createPlatformProject(projectName);
-	}
-
-	private void setAutoBuild(boolean autoBuild) throws CoreException {
-		IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
-		description.setAutoBuilding(autoBuild);
-		ResourcesPlugin.getWorkspace().setDescription(description);
-	}
-
-	private IProject createPlatformProject(String projectName) throws CoreException {
-		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-		p.create(null);
-		p.open(null);
-		return p;
-	}
-
-
-	// ********** public methods **********
-
-	public IProject getProject() {
-		return this.project;
-	}
-
-	public void addProjectNature(String natureID) throws CoreException {
-		IProjectDescription description = this.project.getDescription();
-		description.setNatureIds((String[]) CollectionTools.add(description.getNatureIds(), natureID));
-		this.project.setDescription(description, null);
-	}
-
-	public void removeProjectNature(String natureID) throws CoreException {
-		IProjectDescription description = this.project.getDescription();
-		description.setNatureIds((String[]) CollectionTools.removeAllOccurrences(description.getNatureIds(), natureID));
-		this.project.setDescription(description, null);
-	}
-
-	/**
-	 * Create a folder with the specified name directly under the project.
-	 */
-	public IFolder createFolder(String folderName) throws CoreException {
-		return this.createFolder(this.project, new Path(folderName));
-	}
-
-	/**
-	 * Create a folder in the specified container with the specified name.
-	 */
-	public IFolder createFolder(IContainer container, String folderName) throws CoreException {
-		return this.createFolder(container, new Path(folderName));
-	}
-	
-	/**
-	 * Create a folder in the specified container with the specified path.
-	 */
-	public IFolder createFolder(IContainer container, IPath folderPath) throws CoreException {
-		IFolder folder = container.getFolder(folderPath);
-		if ( ! folder.exists()) {
-			folder.create(false, true, null);		// false = "no force"; true = "local"
-		}
-		return folder;
-	}
-	
-	/**
-	 * Create a file with the specified name and content directly under the project.
-	 */
-	public IFile createFile(String fileName, String content) throws CoreException {
-		return this.createFile(this.project, fileName, content);
-	}
-	
-	/**
-	 * Create a file in the specified container with the specified name and content.
-	 */
-	public IFile createFile(IContainer container, String fileName, String content) throws CoreException {
-		return createFile(container, new Path(fileName), content);
-	}
-	
-	/**
-	 * Create a file in the project with the specified [relative] path
-	 * and content.
-	 */
-	public IFile createFile(IPath filePath, String content) throws CoreException {
-		return this.createFile(this.project, filePath, content);
-	}
-	
-	/**
-	 * Create a file in the specified container with the specified path and content.
-	 */
-	public IFile createFile(IContainer container, IPath filePath, String content) throws CoreException {
-		return this.createFile(container, filePath, new ByteArrayInputStream(content.getBytes()));
-	}
-	
-	/**
-	 * Create a file in the specified container with the specified path and contents.
-	 */
-	public IFile createFile(IContainer container, IPath filePath, InputStream content) throws CoreException {
-		int len = filePath.segmentCount() - 1;
-		for (int i = 0; i < len; i++) {
-			container = container.getFolder(new Path(filePath.segment(i)));
-			if ( ! container.exists()) {
-				((IFolder) container).create(true, true, null);		// true = "force"; true = "local"
-			}
-		}
-
-		IFile file = container.getFile(new Path(filePath.lastSegment()));
-		if (file.exists()) {
-			file.delete(true, null);		// true = "force"
-		}
-		file.create(content, true, null);		// true = "force"
-		return file;
-	}
-
-	public void open() throws CoreException {
-		this.project.open(null);
-		waitForJobs();
-	}
-
-	public void close() throws CoreException {
-		this.project.close(null);
-		waitForJobs();
-	}
-
-	public void dispose() throws CoreException {
-		this.project.delete(true, true, null);		// true = "delete content"; true = "force"
-		for (int i = 1; this.project.exists(); i++) {
-			waitForJobs();
-			System.out.println("Project still exists: " + i);
-		}
-	}
-
-
-	// ********** static methods **********
-
-	/**
-	 * Wait until all background tasks are complete.
-	 */
-	public static void waitForJobs() {
-		while (Job.getJobManager().currentJob() != null) {
-			try {
-				Thread.sleep(100);	// let other threads get something done
-			} catch (InterruptedException ex) {
-				throw new RuntimeException(ex);
-			}
-		}
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/test.xml b/jpa/tests/org.eclipse.jpt.core.tests/test.xml
deleted file mode 100644
index 702dee3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/test.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<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, and library-file -->
-	<property name="plugin-name" value="org.eclipse.jpt.core.tests"/>
-	<property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
-
-	<!-- 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="core-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.jpt.core.tests.internal.JptCoreTests" />
-			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-		</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">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml"/>
-			<property name="output-file" value="${plugin-name}.xml"/>
-		</ant>
-	</target>
-</project>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/.classpath b/jpa/tests/org.eclipse.jpt.db.tests/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.db.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
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 f5b0127..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.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.db.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.db.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index eb01aca..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.db.tests
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.jpt.db.tests.internal.JptDbTestsPlugin
-Bundle-Localization: plugin
-Eclipse-LazyStart: false
-Require-Bundle: org.eclipse.core.runtime,
- org.junit,
- org.eclipse.datatools.connectivity,
- org.eclipse.datatools.connectivity.db.generic,
- org.eclipse.jpt.utility,
- org.eclipse.jpt.db
-Export-Package: org.eclipse.jpt.db.tests.internal.platforms
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/build.properties b/jpa/tests/org.eclipse.jpt.db.tests/build.properties
deleted file mode 100644
index cd0d010..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/build.properties
+++ /dev/null
@@ -1,15 +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.db.tests/config/derby101.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/derby101.properties
deleted file mode 100644
index 6101413..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/derby101.properties
+++ /dev/null
@@ -1,30 +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
-###############################################################################
-#  Platform Property names & Default
-#
-#  profileName  - jpatest
-#  profileDescription  - JDBC Profile for JPA Testing
-#  userName  - jpatest
-#  userPassword  - (empty)
-#  databasedriverJarList  - (mandatory)
-#  databaseName  - testdb
-#  databaseUrl  - (mandatory)
-# 
-profileName = derby101
-profileDescription = Derby  Embedded JDBC Profile for Testing
-# set user name
-userName = jpatest
-userPassword =
-# set path to Derby driver here (example: databasedriverJarList = c:/derbydb/lib/derby.jar )
-databasedriverJarList = 
-databaseName = testdb
-# set database URL here (example: databaseUrl = jdbc:derby:c:/derbydb/testdb;create=true )  
-databaseUrl =
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties
deleted file mode 100644
index 498fc7d..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties
+++ /dev/null
@@ -1,29 +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
-###############################################################################
-#  Platform Property names & Default
-#
-#  profileName  - jpatest
-#  profileDescription  - JDBC Profile for JPA Testing
-#  userName  - jpatest
-#  userPassword  - (empty)
-#  databasedriverJarList  - jar list separate by comma (mandatory) 
-#  databaseName  - testdb
-#  databaseUrl  - (mandatory)
-#
-profileName = oracleXE10g
-profileDescription = XE 10g Release 2 (10.2) Thin JDBC Profile for Testing
-userName = scott
-userPassword = tiger
-# set path to Oracle driver here (example: databasedriverJarList = c:/oracle/jdbc/lib/ojdbc14.jar )
-databasedriverJarList = 
-databaseName = testdb
-# set database URL here (example: databaseUrl = jdbc:oracle:thin:@localhost:1521:testdb )  
-databaseUrl = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties
deleted file mode 100644
index 3207919..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties
+++ /dev/null
@@ -1,29 +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
-###############################################################################
-#  Platform Property names & Default
-#
-#  profileName  - jpatest
-#  profileDescription  - JDBC Profile for JPA Testing
-#  userName  - jpatest
-#  userPassword  - (empty)
-#  databasedriverJarList  - jar list separate by comma (mandatory) 
-#  databaseName  - testdb
-#  databaseUrl  - (mandatory)
-#
-profileName = oracle9i
-profileDescription = Oracle Thin JDBC Profile for Testing
-userName = scott
-userPassword = tiger
-# set path to Oracle driver here (example: databasedriverJarList = c:/oracle/jdbc/lib/ojdbc14.jar )
-databasedriverJarList =
-databaseName = testdb
-# set database URL here (example: databaseUrl = jdbc:oracle:thin:@server:1521:testdb )  
-databaseUrl =
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver2005.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver2005.properties
deleted file mode 100644
index 8451351..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver2005.properties
+++ /dev/null
@@ -1,30 +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
-###############################################################################
-#  Platform Property names & Default
-#
-#  profileName  - jpatest
-#  profileDescription  - JDBC Profile for JPA Testing
-#  userName  - jpatest
-#  userPassword  - (empty)
-#  databasedriverJarList  - (mandatory)
-#  databaseName  - testdb
-#  databaseUrl  - (mandatory)
-# 
-profileName = sqlserver2005
-profileDescription = MS SQL Server 2005 JDBC Profile for Testing
-# set user name
-userName = 
-userPassword = 
-# set path to Derby driver here (example: databasedriverJarList = c:/sqlserver/lib/sqljdbc.jar )
-databasedriverJarList = 
-databaseName = testdb
-# set database URL here (example: databaseUrl = jdbc:sqlserver://localhost:1433;databaseName=testdb )  
-databaseUrl = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.db.tests/plugin.properties
deleted file mode 100644
index b04fe27..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/plugin.properties
+++ /dev/null
@@ -1,25 +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.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTests.java
deleted file mode 100644
index 2326ea3..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTests.java
+++ /dev/null
@@ -1,39 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-import org.eclipse.jpt.db.tests.internal.platforms.AllPlatformTests;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- *  JptDbTests
- */
-public class JptDbTests {
-
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c", JptDbTests.class.getName()});
-    }
-    
-    public static Test suite() {
-        TestSuite suite = new TestSuite( ClassTools.packageNameFor( JptDbTests.class));
-    
-        suite.addTest( AllPlatformTests.suite());
-    
-        return suite;
-    }
-    
-    private JptDbTests() {
-        super();
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTestsPlugin.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTestsPlugin.java
deleted file mode 100644
index dfced34..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTestsPlugin.java
+++ /dev/null
@@ -1,54 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- *  JptDbTestsPlugin
- */
-public class JptDbTestsPlugin extends Plugin {
-
-	// The shared instance
-	private static JptDbTestsPlugin plugin;
-
-	public static final String BUNDLE_ID = "org.eclipse.jpt.db.tests"; //$NON-NLS-1$
-
-	/**
-	 * Returns the shared instance
-	 */
-	public static JptDbTestsPlugin getDefault() {
-		return plugin;
-	}
-	
-	/**
-	 * The constructor
-	 */
-	public JptDbTestsPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/AllPlatformTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/AllPlatformTests.java
deleted file mode 100644
index af9c423..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/AllPlatformTests.java
+++ /dev/null
@@ -1,42 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- *  AllPlatformTests
- */
-public class AllPlatformTests {
-
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c",  AllPlatformTests.class.getName()});
-    }
-
-    public static Test suite() {
-        TestSuite suite = new TestSuite( ClassTools.packageNameFor( AllPlatformTests.class));
-
-        // TODO - Uncomment the platform to test.
-//        suite.addTest( Derby101Tests.suite());
-//        suite.addTest( Oracle9iTests.suite());
-//        suite.addTest( Oracle10gTests.suite());
-//        suite.addTest( SQLServer2005Tests.suite());
-
-        return suite;
-    }
-
-    private AllPlatformTests() {
-        super();
-    }
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DTPPlatformTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DTPPlatformTests.java
deleted file mode 100644
index 46deffc..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DTPPlatformTests.java
+++ /dev/null
@@ -1,385 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.NoSuchElementException;
-import java.util.Properties;
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-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.db.generic.IDBDriverDefinitionConstants;
-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.internal.ConnectivityPlugin;
-import org.eclipse.jpt.db.internal.Connection;
-import org.eclipse.jpt.db.internal.ConnectionProfile;
-import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
-import org.eclipse.jpt.db.internal.DTPConnectionProfileWrapper;
-import org.eclipse.jpt.db.internal.Database;
-import org.eclipse.jpt.db.internal.Schema;
-import org.eclipse.jpt.db.internal.Table;
-import org.eclipse.jpt.db.tests.internal.JptDbTestsPlugin;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- *  Base class for all supported DTP platform.
- */
-public abstract class DTPPlatformTests extends TestCase {
-
-    protected ConnectionProfileRepository connectionRepository;
-    
-    private Properties platformProperties;
-	private String currentDbVendor;
-	private String currentDbVersion;
-
-	private static final String PLATFORM_CONFIG_DIRECTORY = "config";	//$NON-NLS-1$
-	
-	private static final String PROFILE_NAME_PROPERTY = "profileName";	//$NON-NLS-1$
-	private static final String PROFILE_DESCRIPTION_PROPERTY = "profileDescription";	//$NON-NLS-1$
-	private static final String USER_NAME_PROPERTY = "userName";	//$NON-NLS-1$
-	private static final String USER_PASSWORD_PROPERTY = "userPassword";	//$NON-NLS-1$
-	private static final String DB_DRIVER_JAR_PROPERTY = "databasedriverJarList";	//$NON-NLS-1$
-	private static final String DB_NAME_PROPERTY = "databaseName";	//$NON-NLS-1$
-	private static final String DB_URL_PROPERTY = "databaseUrl";	//$NON-NLS-1$
-	
-	private static final String PROFILE_NAME_DEFAULT = "jpatest";	//$NON-NLS-1$
-	private static final String PROFILE_DESCRIPTION_DEFAULT = "JDBC Profile for JPA Testing";	//$NON-NLS-1$
-	private static final String USER_NAME_DEFAULT = "userName";	//$NON-NLS-1$
-	private static final String USER_PASSWORD_DEFAULT = "";	//$NON-NLS-1$
-	private static final String DB_NAME_DEFAULT = "testdb";	//$NON-NLS-1$
-	
-	private static final String MISSING_PROPERTY_MESSAGE = "Enter missing property in platform config file (config/database.properties)";	
-
-    public DTPPlatformTests( String name) {
-        super( name);
-        
-        this.connectionRepository = ConnectionProfileRepository.instance();
-    }
-
-	protected void setUp() throws Exception {
-        super.setUp();
-        this.connectionRepository.initializeListeners();
-        
-        if( this.platformIsNew()) {
-        	this.loadPlatformProperties();
-        	
-        	this.buildDriverDefinitionFile( IDriverMgmtConstants.DRIVER_FILE);
-        	this.buildConnectionProfile( this.profileName());
-        	this.currentDbVendor = this.databaseVendor();
-        	this.currentDbVersion = this.databaseVersion();
-        }
-        this.verifyProfileNamed( this.profileName());
-	}
-
-	protected void tearDown() throws Exception {
-        super.tearDown();
-        
-        this.connectionRepository.disposeListeners();
-	}
-
-	// ********** tests **********
-
-	public void testConnection() throws Exception {
-
-		this.connect();
-		
-        this.verifyDatabaseVersionNumber();
-        this.verifyConnection();
-        this.verifyDatabaseContent();
-
-        this.disconnect();
-    }
-    
-	public void testGetProfiles() {
-		// Getting the profile directly from DTP ProfileManager
-		IConnectionProfile[] profiles = ProfileManager.getInstance().getProfiles();
-		Assert.assertNotNull( profiles);
-		Assert.assertTrue( profiles.length > 0);
-	}
-
-	public void testGetProfilesByProvider() {
-		// Get Profiles By ProviderID
-		IConnectionProfile[] profiles = ProfileManager.getInstance().getProfileByProviderID( this.getProfile().getProviderId());
-		Assert.assertNotNull( profiles);
-		Assert.assertTrue( profiles.length > 0);
-	}
-	
-	public void testGetProfileByName() {
-		// Get Profile By Name
-		IConnectionProfile dtpProfile = ProfileManager.getInstance().getProfileByName( this.profileName());
-		Assert.assertNotNull( dtpProfile);
-		Assert.assertTrue( dtpProfile.getName().equals( this.profileName()));
-	}
-	
-	public void testGetProfileByInstanceId() {
-		// Get Profile By InstanceID
-		IConnectionProfile dtpProfile = ProfileManager.getInstance().getProfileByInstanceID( this.getProfile().getInstanceId());
-		Assert.assertNotNull( dtpProfile);
-		Assert.assertTrue( dtpProfile.getName().equals( this.profileName()));
-	}
-
-	// ********** internal tests **********
-
-    private void verifyDatabaseVersionNumber() {
-    	Database database = this.getProfile().getDatabase();
-    	Assert.assertNotNull( database);
-    	
-        String actualVersionNumber = database.getVersion();
-        String expectedVersionNumber = this.databaseVersion();
-        String errorMessage = "Expected version number: " + expectedVersionNumber + " but the actual version number was: " + actualVersionNumber;
-        assertTrue( errorMessage, actualVersionNumber.indexOf( expectedVersionNumber) != -1);
-
-        String actualVendor = database.getVendor();
-        String expectedVendor = this.databaseVendor();
-        errorMessage = "Expected vendor: " + expectedVendor + " but the actual vendor was: " + actualVendor;
-        assertEquals( errorMessage, actualVendor, expectedVendor);
-    }
-    
-    private void verifyConnection() {
-    	Connection connection = this.getProfile().getConnection();
-    	Assert.assertNotNull( connection);
-
-        String actualFactory = connection.getFactoryId();
-        String expectedFactory = DTPConnectionProfileWrapper.CONNECTION_TYPE;
-    	String errorMessage = "Expected factory: " + expectedFactory + " but the actual factory was: " + actualFactory;
-    	assertEquals( errorMessage, actualFactory, expectedFactory);
-    }
-    
-    private void verifyDatabaseContent() {
-    	Database database = this.getProfile().getDatabase();
-    	Assert.assertTrue( database.schemataSize() > 0);
-		
-        Schema schema = database.schemaNamed( this.getProfile().getUserName());
-		if( schema != null) {
-			Assert.assertTrue( schema.sequencesSize() >= 0);
-			
-			Object[] tableNames = CollectionTools.array( schema.tableNames());
-			if( tableNames.length >= 1) {
-				Table table = schema.tableNamed(( String)tableNames[ 0]);
-				Assert.assertTrue( table.columnsSize() >= 0);
-				Assert.assertTrue( table.foreignKeyColumnsSize() >= 0);
-				Assert.assertTrue( table.foreignKeysSize() >= 0);
-				Assert.assertTrue( table.primaryKeyColumnsSize() >= 0);
-			}
-		}
-    }
-
-    private void verifyProfileNamed( String profileName) {
-    	
-    	ConnectionProfile profile = this.getProfileNamed( profileName);
-    	Assert.assertTrue( "ConnectionProfile not found", profileName.equals( profile.getName()));
-    }
-
-	// ***** Platform specific behavior *****
-
-    protected abstract String databaseVendor();
-    protected abstract String databaseVersion();
-
-    protected abstract String driverName();
-    protected abstract String driverDefinitionType();
-    protected abstract String driverDefinitionId();
-    protected abstract String driverClass();
-
-    protected abstract String getConfigName();
-
-	// ***** Behavior *****
-
-    protected void connect() {
-
-        this.getProfile().connect();
-		Assert.assertTrue( "Connect failed.", this.getProfile().isConnected());
-    }
-    
-    protected void disconnect() {
-    	
-    	this.getProfile().disconnect();
-        Assert.assertFalse( "Disconnect failed.", this.getProfile().isConnected());
-    }
-    
-	// ********** queries **********
-
-    protected Schema getSchemaNamed( String schemaName) { 
-
-	    return this.getProfile().getDatabase().schemaNamed( schemaName);
-    }
-	
-    protected Collection getTables() {
-		
-        Schema schema = this.getSchemaNamed( this.getProfile().getUserName());
-		if( schema == null) {
-			return new ArrayList();
-		}
-		return CollectionTools.collection( schema.tables());
-    }
-
-    protected Table getTableNamed( String tableName) { 
-
-	    Schema schema =  this.getSchemaNamed( this.getProfile().getUserName());
-	    Assert.assertNotNull( schema);
-	
-		return schema.tableNamed( tableName);
-    }
-
-    protected String providerId() {
-        return DTPConnectionProfileWrapper.CONNECTION_PROFILE_TYPE;
-    }
-     
-    protected String passwordIsSaved() {
-        return "true";
-    }
-	
-    protected String profileName() {
-    	return this.platformProperties.getProperty( PROFILE_NAME_PROPERTY, PROFILE_NAME_DEFAULT);
-    }    
-    
-    protected String profileDescription() {
-    	return this.platformProperties.getProperty( PROFILE_DESCRIPTION_PROPERTY, PROFILE_DESCRIPTION_DEFAULT);
-    }    
-    
-    protected String userName() {
-    	return this.platformProperties.getProperty( USER_NAME_PROPERTY, USER_NAME_DEFAULT);
-    }
-    
-    protected String userPassword() {
-    	return this.platformProperties.getProperty( USER_PASSWORD_PROPERTY, USER_PASSWORD_DEFAULT);
-    }    
-    
-    protected String databaseName() {
-    	return this.platformProperties.getProperty( DB_NAME_PROPERTY, DB_NAME_DEFAULT);
-    }
-    
-    protected String databasedriverJarList() {
-    	String dbDriverJarList = this.platformProperties.getProperty( DB_DRIVER_JAR_PROPERTY);
-    	if ( StringTools.stringIsEmpty( dbDriverJarList)) {
-    		throw new NoSuchElementException( MISSING_PROPERTY_MESSAGE);
-    	}
-    	return dbDriverJarList;
-    }
-    
-    protected String databaseUrl() {
-    	String dbUrl = this.platformProperties.getProperty( DB_URL_PROPERTY);
-    	if ( StringTools.stringIsEmpty( dbUrl)) {
-    		throw new NoSuchElementException( MISSING_PROPERTY_MESSAGE);
-    	}
-    	return dbUrl;
-    }
-
-    private ConnectionProfile getProfile() {
-
-    	return this.getProfileNamed( this.profileName());
-    }
-
-    protected ConnectionProfile getProfileNamed( String profileName) {
-    	
-    	return ConnectionProfileRepository.instance().profileNamed( profileName);
-    }
-   
-    private String getTestPluginBundleId() {
-		return JptDbTestsPlugin.BUNDLE_ID;
-	}
-
-	private IPath getDriverDefinitionLocation() {
-		return ConnectivityPlugin.getDefault().getStateLocation();
-	}
-	
-	private String getConfigPath() {
-    	return this.getConfigDir() + "/" + this.getConfigName();
-    }
-	
-	private String getConfigDir() {
-    	return PLATFORM_CONFIG_DIRECTORY;
-    }
-
-	private boolean platformIsNew() {
-		return( !this.databaseVendor().equals( this.currentDbVendor) || this.databaseVersion().equals( this.currentDbVersion));
-	}
-	
-    private void loadPlatformProperties() throws IOException {
-		
-		if( this.platformProperties == null) {
-			URL configUrl = Platform.getBundle( this.getTestPluginBundleId()).getEntry( this.getConfigPath());
-
-			this.platformProperties = new Properties();
-			this.platformProperties.load( configUrl.openStream());
-		}
-	}
-	
-	private Properties buildDriverProperties() {
-		Properties driverProperties = new Properties();
-		driverProperties.setProperty( DTPConnectionProfileWrapper.DRIVER_DEFINITION_TYPE_PROP_ID, this.driverDefinitionType());
-		driverProperties.setProperty( DTPConnectionProfileWrapper.DRIVER_JAR_LIST_PROP_ID, this.databasedriverJarList());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.USERNAME_PROP_ID, this.userName());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.driverClass());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_NAME_PROP_ID, this.databaseName());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.PASSWORD_PROP_ID, this.userPassword());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.URL_PROP_ID, this.databaseUrl());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.databaseVendor());
-		driverProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.databaseVersion());
-		return driverProperties;
-	}
-
-	private Properties buildBasicProperties() {
-		Properties basicProperties = new Properties();
-		basicProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_NAME_PROP_ID, this.databaseName());
-		basicProperties.setProperty( IDBDriverDefinitionConstants.USERNAME_PROP_ID, this.userName());
-		basicProperties.setProperty( IDBDriverDefinitionConstants.PASSWORD_PROP_ID, this.userPassword());
-		basicProperties.setProperty( DTPConnectionProfileWrapper.DRIVER_DEFINITION_PROP_ID, this.driverDefinitionId());
-		
-		basicProperties.setProperty( IDBDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.driverClass());
-		basicProperties.setProperty( IDBDriverDefinitionConstants.URL_PROP_ID, this.databaseUrl());
-		basicProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.databaseVendor());
-		basicProperties.setProperty( IDBDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.databaseVersion());
-		
-		basicProperties.setProperty( DTPConnectionProfileWrapper.DATABASE_SAVE_PWD_PROP_ID, this.passwordIsSaved());
-		return basicProperties;
-	}
-
-	private void buildConnectionProfile( String profileName) throws ConnectionProfileException {
-		
-		ProfileManager profileManager = ProfileManager.getInstance();
-		Assert.assertNotNull( profileManager);
-		IConnectionProfile profile = profileManager.getProfileByName( profileName);
-		if( profile == null) {
-			Properties basicProperties = buildBasicProperties();
-			ProfileManager.getInstance().createProfile( profileName, this.profileDescription(), this.providerId(), basicProperties);
-		}
-	}
-
-	private void buildDriverDefinitionFile( String driverFileName) throws CoreException {
-		
-		XMLFileManager.setStorageLocation( this.getDriverDefinitionLocation());
-		XMLFileManager.setFileName( driverFileName);
-		IPropertySet[] propsets = new IPropertySet[ 1];
-		String driverName = this.driverName();
-		String driverId = this.driverDefinitionId();
-		PropertySetImpl propertySet = new PropertySetImpl( driverName, driverId);
-		propertySet.setProperties( driverId, this.buildDriverProperties());
-		propsets[ 0] = propertySet;
-
-		XMLFileManager.saveNamedPropertySet( propsets);
-		
-		File driverDefinitioneFile =  this.getDriverDefinitionLocation().append( driverFileName).toFile();
-		Assert.assertTrue( driverDefinitioneFile.exists());
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Derby101Tests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Derby101Tests.java
deleted file mode 100644
index 7e510cf..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Derby101Tests.java
+++ /dev/null
@@ -1,64 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-
-/**
- *  Derby 10.1 Embedded Driver Test
- */
-public class Derby101Tests extends DTPPlatformTests {
-	
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c", Derby101Tests.class.getName()});
-    }
-
-    public static Test suite() {
-        return new TestSuite( Derby101Tests.class);
-    }
-    
-    public Derby101Tests( String name) {
-        super( name);
-    }
-    
-    protected String databaseVendor() {
-        return "Derby";
-    }
-
-    protected String databaseVersion() {
-        return "10.1";
-    }
-	
-    protected String providerId() {
-        return "org.eclipse.datatools.connectivity.db.derby.embedded.connectionProfile";
-    }
-    
-    protected String driverName() {
-        return "Derby Embedded JDBC Driver";
-    }
-    
-    protected String driverDefinitionType() {
-        return "org.eclipse.datatools.connectivity.db.derby101.genericDriverTemplate";
-    }
-    
-    protected String driverDefinitionId() {
-        return "DriverDefn.Derby Embedded JDBC Driver";
-    }
-    
-    protected String driverClass() {
-        return "org.apache.derby.jdbc.EmbeddedDriver";
-    }
-	
-    protected String getConfigName() {
-    	return "derby101.properties";
-    }
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gTests.java
deleted file mode 100644
index 70d3a3d..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gTests.java
+++ /dev/null
@@ -1,60 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-
-/**
- *  Oracle 10g Thin Driver Test
- */
-public class Oracle10gTests extends DTPPlatformTests {
-
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c", Oracle10gTests.class.getName()});
-    }
-
-    public static Test suite() {
-        return new TestSuite( Oracle10gTests.class);
-    }
-    
-    public Oracle10gTests( String name) {
-        super( name);
-    }
-
-	protected String databaseVendor() {
-		return "Oracle";
-	}
-
-	protected String databaseVersion() {
-		return "10";
-	}
-
-	protected String driverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	protected String driverDefinitionId() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	protected String driverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.10.driverTemplate";
-	}
-
-	protected String driverName() {
-		return "Oracle 10g Thin Driver";
-	}
-	
-    protected String getConfigName() {
-    	return "oracle10g.properties";
-    }
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle9iTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle9iTests.java
deleted file mode 100644
index 3923081..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle9iTests.java
+++ /dev/null
@@ -1,60 +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
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-
-/**
- *  Oracle 9i Thin Driver Test
- */
-public class Oracle9iTests extends DTPPlatformTests {
-
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c", Oracle9iTests.class.getName()});
-    }
-
-    public static Test suite() {
-        return new TestSuite( Oracle9iTests.class);
-    }
-    
-    public Oracle9iTests( String name) {
-        super( name);
-    }
-
-	protected String databaseVendor() {
-		return "Oracle";
-	}
-
-	protected String databaseVersion() {
-		return "9";
-	}
-
-	protected String driverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	protected String driverDefinitionId() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	protected String driverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.9.driverTemplate";
-	}
-
-	protected String driverName() {
-		return "Oracle 9i Thin Driver";
-	}
-	
-    protected String getConfigName() {
-    	return "oracle9i.properties";
-    }
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServer2005Tests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServer2005Tests.java
deleted file mode 100644
index a0f5034..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServer2005Tests.java
+++ /dev/null
@@ -1,64 +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.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.swingui.TestRunner;
-
-/**
- *  SQL Server 2005 Driver Test
- */
-public class SQLServer2005Tests extends DTPPlatformTests {
-	
-    public static void main( String[] args) {
-        TestRunner.main( new String[] { "-c", SQLServer2005Tests.class.getName()});
-    }
-
-    public static Test suite() {
-        return new TestSuite( SQLServer2005Tests.class);
-    }
-    
-    public SQLServer2005Tests( String name) {
-        super( name);
-    }
-    
-    protected String databaseVendor() {
-        return "SQLServer";
-    }
-
-    protected String databaseVersion() {
-        return "2005";
-    }
-	
-    protected String providerId() {
-        return "org.eclipse.datatools.connectivity.db.generic.connectionProfile";
-    }
-    
-    protected String driverName() {
-        return "Microsoft SQL Server 2005 JDBC Driver";
-    }
-    
-    protected String driverDefinitionType() {
-        return "org.eclipse.datatools.enablement.msft.sqlserver.2005.driverTemplate";
-    }
-    
-    protected String driverDefinitionId() {
-        return "DriverDefn.Microsoft SQL Server 2005 JDBC Driver";
-    }
-    
-    protected String driverClass() {
-        return "com.microsoft.sqlserver.jdbc.SQLServerDriver";
-    }
-	
-    protected String getConfigName() {
-    	return "sqlserver2005.properties";
-    }
-}